Ce document du framework Well-Architected: perspective sur l'IA et le ML fournit un aperçu des principes et des recommandations pour optimiser les coûts de vos systèmes d'IA tout au long du cycle de vie du ML. En adoptant une approche proactive et éclairée de la gestion des coûts, votre organisation peut exploiter tout le potentiel des systèmes d'IA et de ML, tout en maintenant une discipline financière. Les recommandations de ce document sont conformes au pilier d'optimisation des coûts du Google Cloud framework Well-Architected Framework.
Les systèmes d'IA et de ML peuvent vous aider à dégager des insights utiles et des capacités prédictives à partir des données. Par exemple, vous pouvez réduire les frictions dans les processus internes, améliorer l'expérience utilisateur et obtenir des insights plus précis sur les clients. Le cloud offre d'immenses quantités de ressources et un délai de retour sur investissement rapide, sans investissement initial important pour les charges de travail d'IA et de ML. Pour maximiser la valeur ajoutée et aligner les dépenses sur vos objectifs commerciaux, vous devez comprendre les moteurs de coûts, optimiser de manière proactive les coûts, configurer des contrôles des dépenses et adopter des pratiques de FinOps.
Les recommandations de ce document sont associées aux principes fondamentaux suivants:
- Définir et mesurer les coûts et les retours
- Optimiser l'allocation des ressources
- Appliquer des pratiques de gestion et de gouvernance des données
- Automatiser et simplifier avec MLOps
- Utiliser des services gérés et des modèles pré-entraînés
Définir et mesurer les coûts et les retours
Pour gérer efficacement les coûts de l'IA et du ML dans Google Cloud, vous devez définir et mesurer les coûts des ressources cloud et la valeur commerciale de vos initiatives d'IA et de ML. Pour vous aider à suivre vos dépenses de manière détaillée, Google Cloud fournit des outils de facturation et de gestion des coûts complets, comme les suivants:
- Rapports et tableaux Cloud Billing
- Tableaux de bord, budgets et alertes Looker Studio
- Cloud Monitoring
- Cloud Logging
Pour prendre des décisions éclairées sur l'allocation et l'optimisation des ressources, tenez compte des recommandations suivantes.
Définir des objectifs commerciaux et des KPI
Alignez les choix techniques de vos projets d'IA et de ML sur les objectifs commerciaux et les indicateurs clés de performance (KPI).
Définir des objectifs stratégiques et des KPI axés sur le ROI
Assurez-vous que les projets d'IA et de ML sont alignés sur des objectifs stratégiques tels que la croissance des revenus, la réduction des coûts, la satisfaction client et l'efficacité. Impliquez les personnes concernées pour comprendre les priorités de l'entreprise. Définissez des objectifs d'IA et de ML qui sont spécifiques, mesurables, réalisables, pertinents et limités dans le temps (SMART). Par exemple, voici un objectif SMART: "Réduire le temps de traitement des discussions par le service client de 15% en six mois grâce à un chatbot basé sur l'IA".
Pour progresser vers vos objectifs d'entreprise et mesurer le retour sur investissement (ROI), définissez des KPI pour les catégories de métriques suivantes:
- Coûts des ressources d'entraînement, d'inférence, de stockage et de réseau, y compris les coûts unitaires spécifiques (tels que le coût par inférence, point de données ou tâche). Ces métriques vous aident à identifier les opportunités d'optimisation de l'efficacité et des coûts. Vous pouvez suivre ces coûts à l'aide des rapports Cloud Billing et des tableaux de bord Cloud Monitoring.
- Métriques de valeur commerciale telles que la croissance des revenus, les économies de coûts, la satisfaction client, l'efficacité, la précision et l'adoption. Vous pouvez suivre ces métriques à l'aide des données analytiques BigQuery et des tableaux de bord Looker.
Métriques spécifiques au secteur, comme les suivantes:
- Secteur du commerce de détail: mesurer le rehaussement des revenus et le taux de désabonnement
- Secteur de la santé: mesurer le temps passé par les patients et leurs résultats
- Secteur financier: mesurer la réduction des fraudes
Métriques spécifiques au projet. Vous pouvez suivre ces métriques à l'aide de Vertex AI Experiments et d'évaluations.
- IA prédictive: mesurer la justesse et la précision
- IA générative: mesurer l'adoption, la satisfaction et la qualité des contenus
- IA de vision par ordinateur: mesurer la précision
Favoriser une culture de sensibilisation aux coûts et d'optimisation continue
Adoptez les principes de FinOps pour vous assurer que chaque projet d'IA et de ML dispose de coûts estimés et de moyens de mesurer et de suivre les coûts réels tout au long de son cycle de vie. Assurez-vous que les coûts et les avantages commerciaux de vos projets ont des propriétaires et une responsabilité claire.
Pour en savoir plus, consultez la section Favoriser une culture de sensibilisation aux coûts dans le pilier "Optimisation des coûts" du Google Cloud framework Well-Architected Framework.
Générer de la valeur et une optimisation continue grâce aux itérations et aux commentaires
Mappez vos applications d'IA et de ML directement sur vos objectifs métier, et mesurez le ROI.
Pour valider vos hypothèses de ROI, commencez par des projets pilotes et utilisez le cycle d'optimisation itératif suivant:
- Surveillez en permanence et analysez les données: surveillez les KPI et les coûts pour identifier les écarts et les opportunités d'optimisation.
- Apportez des ajustements basés sur les données: optimisez les stratégies, les modèles, l'infrastructure et l'allocation des ressources en vous basant sur les insights issus des données.
- Affinez de manière itérée: adaptez les objectifs commerciaux et les KPI en fonction de ce que vous avez appris et des besoins de votre entreprise en constante évolution. Cette itération vous aide à maintenir la pertinence et l'alignement stratégique.
- Établissez une boucle de rétroaction: examinez les performances, les coûts et la valeur avec les personnes concernées pour orienter l'optimisation en cours et la planification des projets futurs.
Gérer les données de facturation avec Cloud Billing et les libellés
Une optimisation efficace des coûts nécessite une visibilité sur la source de chaque élément de coût. Les recommandations de cette section peuvent vous aider à utiliser des Google Cloud outils pour obtenir des insights précis sur vos coûts d'IA et de ML. Vous pouvez également attribuer des coûts à des projets, des équipes et des activités d'IA et de ML spécifiques. Ces insights constituent la base de l'optimisation des coûts.
Organiser et libeller les ressources Google Cloud
- Structurez vos projets et vos ressources dans une hiérarchie qui reflète votre structure organisationnelle et vos workflows d'IA et de ML. Pour suivre et analyser les coûts à différents niveaux, organisez vos Google Cloud ressources à l'aide d'organisations, de dossiers et de projets. Pour en savoir plus, consultez la section Choisir une hiérarchie de ressources pour votre Google Cloud zone de destination.
- Appliquez des libellés pertinents à vos ressources. Vous pouvez utiliser des libellés qui indiquent le projet, l'équipe, l'environnement, le nom du modèle, l'ensemble de données, le cas d'utilisation et les exigences de performances. Les libellés fournissent un contexte précieux pour vos données de facturation et permettent une analyse précise des coûts.
- Maintenez la cohérence de vos conventions d'étiquetage dans l'ensemble de vos projets d'IA et de ML. Des conventions d'étiquetage cohérentes permettent d'organiser vos données de facturation et de les analyser facilement.
Utiliser des outils de facturation
- Pour faciliter l'analyse et la création de rapports détaillés, exportez les données de facturation vers BigQuery. BigQuery dispose de puissantes fonctionnalités de requêtes qui vous permettent d'analyser les données de facturation pour vous aider à comprendre vos coûts.
- Pour agréger les coûts par libellés, projets ou périodes spécifiques, vous pouvez écrire des requêtes SQL personnalisées dans BigQuery. Ces requêtes vous permettent d'attribuer des coûts à des activités d'IA et de ML spécifiques, telles que l'entraînement de modèles, le réglage des hyperparamètres ou l'inférence.
- Pour identifier les anomalies de coût ou les pics de dépenses inattendus, utilisez les fonctionnalités d'analyse de BigQuery. Cette approche peut vous aider à détecter les problèmes ou les inefficacités potentiels dans vos charges de travail d'IA et de ML.
- Pour identifier et gérer les coûts inattendus, utilisez le tableau de bord de détection des anomalies dans Cloud Billing.
- Pour répartir les coûts entre différentes équipes ou différents services en fonction de l'utilisation des ressources, utilisez la fonctionnalité allocation des coûts de Google Cloud. L'allocation des coûts favorise la responsabilité et la transparence.
- Pour obtenir des insights sur les tendances de dépenses, explorez les rapports Cloud Billing prédéfinis. Vous pouvez filtrer et personnaliser ces rapports pour vous concentrer sur des projets ou des services d'IA et de ML spécifiques.
Surveiller les ressources en continu à l'aide de tableaux de bord, d'alertes et de rapports
Pour créer un moyen évolutif et résilient de suivre les coûts, vous avez besoin d'une surveillance et de rapports continus. Les tableaux de bord, les alertes et les rapports constituent la base d'un suivi efficace des coûts. Cette base vous permet de conserver un accès constant aux informations sur les coûts, d'identifier les axes d'optimisation et de vous assurer que les objectifs commerciaux et les coûts sont alignés.
Créer un système de signalement
Créez des rapports planifiés et partagez-les avec les personnes concernées.
Utilisez Cloud Monitoring pour collecter des métriques à partir de diverses sources, y compris vos applications, votre infrastructure et des services tels que Compute Engine, Google Kubernetes Engine (GKE) et les fonctions Cloud Run. Google Cloud Pour visualiser les métriques et les journaux en temps réel, vous pouvez utiliser le tableau de bord Cloud Monitoring prédéfini ou créer des tableaux de bord personnalisés. Les tableaux de bord personnalisés vous permettent de définir et d'ajouter des métriques pour suivre des aspects spécifiques de vos systèmes, tels que les performances du modèle, les appels d'API ou les KPI au niveau de l'entreprise.
Utilisez Cloud Logging pour collecter et stocker de manière centralisée les journaux de vos applications, systèmes et services. Google Cloud Utilisez les journaux aux fins suivantes:
- Suivez les coûts et l'utilisation de ressources telles que le processeur, la mémoire, l'espace de stockage et le réseau.
- Identifiez les cas de surprovisionnement (lorsque les ressources ne sont pas entièrement utilisées) et de sous-provisionnement (lorsque les ressources sont insuffisantes). Le surprovisionnement entraîne des coûts inutiles. Un sous-provisionnement ralentit les temps d'entraînement et peut entraîner des problèmes de performances.
- Identifiez les ressources inactives ou sous-utilisées, telles que les VM et les GPU, et prenez les mesures nécessaires pour les arrêter ou les redimensionner afin d'optimiser les coûts.
- Identifiez les pics de coûts pour détecter les augmentations soudaines et inattendues de l'utilisation des ressources ou des coûts.
Utilisez Looker ou Looker Studio pour créer des tableaux de bord et des rapports interactifs. Connectez les tableaux de bord et les rapports à diverses sources de données, y compris BigQuery et Cloud Monitoring.
Définir des seuils d'alerte en fonction des KPI clés
Pour vos KPI, déterminez les seuils qui doivent déclencher des alertes. Des seuils d'alerte pertinents peuvent vous aider à éviter la fatigue liée aux alertes. Créez des règles d'alerte dans Cloud Monitoring pour recevoir des notifications liées à vos KPI. Par exemple, vous pouvez recevoir des notifications lorsque la précision passe sous un certain seuil ou que la latence dépasse une limite définie. Les alertes basées sur les données de journal peuvent vous informer en temps réel des problèmes de coûts potentiels. Ces alertes vous permettent de prendre rapidement des mesures correctives et d'éviter toute autre perte financière.
Optimiser l'allocation des ressources
Pour optimiser les coûts de vos charges de travail d'IA et de ML dans Google Cloud, vous devez optimiser l'allocation des ressources. Pour vous aider à éviter les dépenses inutiles et à vous assurer que vos charges de travail disposent des ressources dont elles ont besoin pour fonctionner de manière optimale, alignez l'allocation des ressources sur les besoins de vos charges de travail.
Pour optimiser l'allocation des ressources cloud aux charges de travail d'IA et de ML, tenez compte des recommandations suivantes.
Utiliser l'autoscaling pour ajuster les ressources de façon dynamique
Utilisez des Google Cloud services compatibles avec l'autoscaling, qui ajuste automatiquement l'allocation des ressources en fonction de la demande actuelle. L'autoscaling offre les avantages suivants:
- Optimisation des coûts et des performances: vous évitez de payer pour des ressources inutilisées. En même temps, l'autoscaling garantit que vos systèmes disposent des ressources nécessaires pour fonctionner de manière optimale, même en cas de pic de charge.
- Efficacité améliorée: vous libérez votre équipe pour qu'elle puisse se concentrer sur d'autres tâches.
- Agilité accrue: vous pouvez répondre rapidement aux demandes en constante évolution et maintenir une haute disponibilité pour vos applications.
Le tableau suivant récapitule les techniques que vous pouvez utiliser pour implémenter l'autoscaling pour différentes étapes de vos projets d'IA.
Étape | Techniques d'autoscaling |
---|---|
Formation |
|
Inférence |
|
Commencer avec de petits modèles et ensembles de données
Pour réduire les coûts, testez les hypothèses de ML à petite échelle lorsque cela est possible et utilisez une approche itérative. Cette approche, avec des modèles et des ensembles de données plus petits, présente les avantages suivants:
- Coûts réduits dès le départ: moins de puissance de calcul, de stockage et de temps de traitement peuvent entraîner une réduction des coûts lors des phases d'expérimentation et de développement initiales.
- Itération plus rapide: le temps d'entraînement est réduit, ce qui vous permet d'itérer plus rapidement, d'explorer d'autres approches et d'identifier plus efficacement des directions prometteuses.
- Simplicité: débogage, analyse et interprétation des résultats plus simples, ce qui accélère les cycles de développement.
- Utilisation efficace des ressources: réduction des risques de surprovisionnement des ressources. Vous ne provisionnez que les ressources nécessaires à la charge de travail actuelle.
Tenez compte des recommandations suivantes:
- Utilisez d'abord un échantillon de données: entraînez vos modèles sur un sous-ensemble représentatif de vos données. Cette approche vous permet d'évaluer les performances du modèle et d'identifier les problèmes potentiels sans traiter l'ensemble de données complet.
- Expérimentez en utilisant des notebooks: commencez par des instances plus petites et faites évoluer en fonction des besoins. Vous pouvez utiliser Vertex AI Workbench, un environnement de notebook Jupyter géré qui est particulièrement adapté à l'expérimentation de différentes architectures de modèles et d'ensembles de données.
Commencez par des modèles plus simples ou pré-entraînés: utilisez Model Garden Vertex AI pour découvrir et explorer les modèles pré-entraînés. Ces modèles nécessitent moins de ressources de calcul. Augmentez progressivement la complexité en fonction des exigences de performances.
- Utilisez des modèles pré-entraînés pour des tâches telles que la classification d'images et le traitement du langage naturel. Pour réduire les coûts d'entraînement, vous pouvez d'abord affiner les modèles sur des ensembles de données plus petits.
- Utilisez BigQuery ML pour les données structurées. BigQuery ML vous permet de créer et de déployer des modèles directement dans BigQuery. Cette approche peut être rentable pour les tests initiaux, car vous pouvez profiter du modèle de tarification par requête pour BigQuery.
Évoluer pour optimiser les ressources: utilisez l'infrastructure flexible de Google Cloudpour faire évoluer les ressources en fonction des besoins. Commencez par des instances plus petites et ajustez leur taille ou leur nombre si nécessaire.
Identifier les exigences en termes de ressources grâce à des tests
Les besoins en ressources des charges de travail d'IA et de ML peuvent varier considérablement. Pour optimiser l'allocation des ressources et les coûts, vous devez comprendre les besoins spécifiques de vos charges de travail grâce à des tests systématiques. Pour identifier la configuration la plus efficace pour vos modèles, testez différentes configurations et analysez leurs performances. Ensuite, en fonction des exigences, dimensionnez les ressources que vous avez utilisées pour l'entraînement et le traitement.
Nous vous recommandons d'adopter l'approche suivante pour vos expérimentations:
- Commencez par un niveau de référence: commencez par une configuration de référence basée sur vos estimations initiales des exigences de la charge de travail. Pour créer une référence, vous pouvez utiliser l'outil d'estimation des coûts pour les nouveaux charges de travail ou un rapport de facturation existant. Pour en savoir plus, consultez Découvrez le coût réel de l'IA d'entreprise sur Google Cloud.
- Comprendre vos quotas: avant de lancer des tests approfondis, familiarisez-vous avec les quotas de votre projet pour les ressources et les API que vous prévoyez d'utiliser. Google Cloud Les quotas déterminent la plage de configurations que vous pouvez tester de manière réaliste. En vous familiarisant avec les quotas, vous pouvez respecter les limites de ressources disponibles pendant la phase d'expérimentation.
- Effectuez des tests systématiques: ajustez des paramètres tels que le nombre de processeurs, la quantité de mémoire, le nombre et le type de GPU et de TPU, ainsi que la capacité de stockage. Vertex AI Training et les prédictions Vertex AI vous permettent de tester différents types et configurations de machines.
Surveillez l'utilisation, les coûts et les performances: suivez l'utilisation des ressources, les coûts et les métriques de performances clés telles que le temps d'entraînement, la latence d'inférence et la précision du modèle pour chaque configuration que vous testez.
- Pour suivre l'utilisation des ressources et les métriques de performances, vous pouvez utiliser la console Vertex AI.
- Pour collecter et analyser des métriques de performances détaillées, utilisez Cloud Monitoring.
- Pour afficher les coûts, utilisez les rapports Cloud Billing et les tableaux de bord Cloud Monitoring.
- Pour identifier les goulots d'étranglement de performances dans vos modèles et optimiser l'utilisation des ressources, utilisez des outils de profilage tels que Vertex AI TensorBoard.
Analysez les coûts: comparez le coût et les performances de chaque configuration pour identifier l'option la plus rentable.
Définir des seuils de ressources et des cibles d'amélioration en fonction des quotas : définissez des seuils à partir desquels l'ajustement commence à produire des résultats décroissants en termes de performances, par exemple une réduction minimale du temps d'entraînement ou de la latence pour une augmentation significative des coûts. Tenez compte des quotas de projet lorsque vous définissez ces seuils. Déterminez le point où les coûts et les implications potentielles des quotas d'une nouvelle mise à l'échelle ne sont plus justifiés par les gains de performances.
Affinez de manière itérée: répétez le processus d'expérimentation avec des configurations affinées en fonction de vos résultats. Assurez-vous toujours que l'utilisation des ressources reste dans les limites de vos quotas alloués et qu'elle correspond aux seuils de coûts-avantages établis.
Utiliser MLOps pour réduire les inefficacités
À mesure que les entreprises utilisent de plus en plus le ML pour stimuler l'innovation et l'efficacité, la gestion efficace du cycle de vie du ML devient essentielle. Les opérations ML (MLOps) sont un ensemble de pratiques qui automatisent et simplifient le cycle de vie du ML, du développement du modèle au déploiement et à la surveillance.
Aligner les MLOps sur les facteurs de coût
Pour tirer parti des MLOps pour une efficacité en termes de coûts, identifiez les principaux facteurs de coût du cycle de vie du ML. Vous pouvez ensuite adopter et implémenter des pratiques MLOps adaptées aux moteurs de coûts. Priorisez et adoptez les fonctionnalités MLOps qui répondent aux facteurs de coût les plus importants. Cette approche permet de garantir un chemin gérable et efficace vers des économies de coûts importantes.
Implémenter le MLOps pour optimiser les coûts
Voici quelques pratiques MLOps courantes qui permettent de réduire les coûts:
- Contrôle des versions: des outils tels que Git peuvent vous aider à suivre les versions de code, de données et de modèles. Le contrôle des versions garantit la reproductibilité, facilite la collaboration et évite les révisions coûteuses pouvant être causées par des problèmes de gestion des versions.
- Intégration et livraison continues (CI/CD) : Cloud Build et Artifact Registry vous permettent d'implémenter des pipelines CI/CD pour automatiser la compilation, les tests et le déploiement de vos modèles de ML. Les pipelines CI/CD garantissent une utilisation efficace des ressources et minimisent les coûts associés aux interventions manuelles.
- Observabilité : Cloud Monitoring et Cloud Logging vous permettent de suivre les performances des modèles en production, d'identifier les problèmes et de déclencher des alertes pour une intervention proactive. L'observabilité vous permet de maintenir la précision du modèle, d'optimiser l'allocation des ressources et d'éviter les temps d'arrêt coûteux ou la dégradation des performances.
- Réentraînement de modèles : Vertex AI Pipelines simplifie les processus de réentraînement des modèles régulièrement ou lorsque les performances se dégradent. Lorsque vous utilisez Vertex AI Pipelines pour le réentraînement, vous vous assurez que vos modèles restent précis et efficaces, ce qui peut éviter une consommation de ressources inutile et maintenir des performances optimales.
- Tests et évaluations automatisés : Vertex AI vous aide à accélérer et à standardiser l'évaluation des modèles. Implémentez des tests automatisés tout au long du cycle de vie du ML pour garantir la qualité et la fiabilité de vos modèles. Ces tests peuvent vous aider à détecter les erreurs rapidement, à éviter les problèmes coûteux en production et à réduire le besoin de tests manuels étendus.
Pour en savoir plus, consultez la page MLOps: Pipelines de livraison continue et d'automatisation dans le machine learning.
Appliquer des pratiques de gestion et de gouvernance des données
Des pratiques de gestion et de gouvernance des données efficaces sont essentielles à l'optimisation des coûts. Des données bien organisées peuvent encourager les équipes à réutiliser des ensembles de données, à éviter les duplications inutiles et à réduire les efforts nécessaires pour obtenir des données de haute qualité. En gérant de manière proactive les données, vous pouvez réduire les coûts de stockage, améliorer la qualité des données et vous assurer que vos modèles de ML sont entraînés sur les données les plus pertinentes et les plus intéressantes.
Pour mettre en œuvre des pratiques de gestion et de gouvernance des données, tenez compte des recommandations suivantes.
Établir et adopter un framework de gouvernance des données
L'importance croissante de l'IA et du ML a fait des données l'actif le plus précieux pour les entreprises en pleine transformation numérique. Un framework robuste pour la gouvernance des données est une exigence cruciale pour gérer les charges de travail d'IA et de ML de manière rentable à grande échelle. Un framework de gouvernance des données avec des règles, des procédures et des rôles clairement définis fournit une approche structurée pour gérer les données tout au long de leur cycle de vie. Un tel framework permet d'améliorer la qualité des données, la sécurité, l'utilisation et de réduire la redondance.
Établir un cadre de gouvernance des données
Il existe de nombreux frameworks préexistants pour la gouvernance des données, comme ceux publiés par le EDM Council, avec des options disponibles pour différents secteurs et tailles d'organisations. Choisissez et adaptez un framework qui correspond à vos besoins et priorités spécifiques.
Implémenter le framework de gouvernance des données
Google Cloud fournit les services et outils suivants pour vous aider à implémenter un framework de gouvernance des données robuste:
Le catalogue universel Dataplex est une data fabric intelligente qui vous aide à unifier les données distribuées et à automatiser la gouvernance des données sans avoir à consolider les ensembles de données en un seul endroit. Cela permet de réduire les coûts de distribution et de maintenance des données, de faciliter la découverte des données et de favoriser leur réutilisation.
- Pour organiser les données, utilisez les abstractions du catalogue universel Dataplex et configurez des lacs et des zones de données logiques.
- Pour administrer l'accès aux lacs et zones de données, utilisez Google Groups et les rôles du catalogue universel Dataplex.
- Pour simplifier les processus de qualité des données, activez la qualité automatique des données.
Le catalogue universel Dataplex est également un service de gestion des métadonnées entièrement géré et évolutif. Le catalogue fournit une base qui garantit que les éléments de données sont accessibles et réutilisables.
- Les métadonnées des sources Google Cloud compatibles sont automatiquement intégrées au catalogue universel. Pour les sources de données en dehors de Google Cloud, créez des entrées personnalisées.
- Pour améliorer la visibilité et la gestion des composants de données, enrichissez les métadonnées techniques avec des métadonnées métier à l'aide d'aspects.
- Assurez-vous que les data scientists et les professionnels du ML disposent des autorisations suffisantes pour accéder au catalogue universel Dataplex et utiliser la fonction de recherche.
Le partage BigQuery vous permet d'échanger des éléments de données de manière efficace et sécurisée au sein de vos organisations afin de relever les défis liés à la fiabilité et aux coûts des données.
- Configurez des échanges de données et assurez-vous que les composants de données sélectionnés peuvent être affichés en tant que fiches.
- Utilisez des data clean room pour gérer de manière sécurisée l'accès aux données sensibles et collaborer efficacement avec des équipes et des organisations externes sur des projets d'IA et de ML.
- Assurez-vous que les data scientists et les professionnels du ML disposent des autorisations suffisantes pour afficher et publier des ensembles de données dans le partage BigQuery.
Rendre les ensembles de données et les fonctionnalités réutilisables tout au long du cycle de vie du ML
Pour des avantages en termes d'efficacité et de coûts, réutilisez les ensembles de données et les fonctionnalités dans plusieurs projets de ML. En évitant les efforts redondants d'ingénierie des données et de développement de fonctionnalités, votre organisation peut accélérer le développement de modèles, réduire les coûts d'infrastructure et libérer des ressources précieuses pour d'autres tâches critiques.
Google Cloud fournit les services et outils suivants pour vous aider à réutiliser des ensembles de données et des fonctionnalités:
- Les professionnels des données et du ML peuvent publier des produits de données pour maximiser la réutilisation entre les équipes. Les produits de données peuvent ensuite être découverts et utilisés via le catalogue universel Dataplex et le partage BigQuery.
- Pour les ensembles de données tabulaires et structurés, vous pouvez utiliser Vertex AI Feature Store pour favoriser la réutilisation et simplifier la gestion des fonctionnalités via BigQuery.
- Vous pouvez stocker des données non structurées dans Cloud Storage et les gérer à l'aide de tables d'objets BigQuery et d'URL signées.
- Vous pouvez gérer les représentations vectorielles continues en incluant des métadonnées dans vos index de recherche vectorielle.
Automatiser et simplifier avec le MLOps
L'un des principaux avantages de l'adoption des pratiques MLOps est la réduction des coûts liés à la technologie et au personnel. L'automatisation vous permet d'éviter la duplication des activités de ML et de réduire la charge de travail des data scientists et des ingénieurs en ML.
Pour automatiser et simplifier le développement du ML avec MLOps, tenez compte des recommandations suivantes.
Automatisez et standardisez la collecte et le traitement des données.
Pour réduire les efforts et le temps de développement du ML, automatisez et standardisez vos technologies de collecte et de traitement des données.
Automatiser la collecte et le traitement des données
Cette section résume les produits, outils et techniques que vous pouvez utiliser pour automatiser la collecte et le traitement des données.
Identifiez et choisissez les sources de données pertinentes pour vos tâches d'IA et de ML:
- Options de base de données telles que Cloud SQL, Spanner, AlloyDB pour PostgreSQL, Firestore et BigQuery Votre choix dépend de vos exigences, telles que la latence sur l'accès en écriture (statique ou dynamique), le volume de données (élevé ou faible) et le format de données (structuré, non structuré ou semi-structuré). Pour en savoir plus, consultez la section Bases de donnéesGoogle Cloud .
- Lacs de données tels que Cloud Storage avec BigLake.
- Catalogue universel Dataplex pour gérer les données provenant de différentes sources.
- Plates-formes d'événements de streaming telles que Pub/Sub, Dataflow ou Apache Kafka
- API externes
Pour chacune de vos sources de données, choisissez un outil d'ingestion:
- Dataflow: pour le traitement par lot et par flux des données provenant de différentes sources, avec intégration de composants ML. Pour une architecture orientée événements, vous pouvez combiner Dataflow avec Eventarc pour traiter efficacement les données à des fins de ML. Pour améliorer l'efficacité des jobs MLOps et ML, utilisez des GPU et des fonctionnalités d'ajustement adapté.
- Fonctions Cloud Run : pour l'ingestion de données basée sur des événements déclenchée par des modifications apportées aux sources de données pour les applications en temps réel.
- BigQuery: pour l'ingestion de données tabulaires classiques avec un accès fréquent.
Choisissez des outils de transformation et de chargement des données:
- Utilisez des outils tels que Dataflow ou Dataform pour automatiser les transformations de données, comme la mise à l'échelle des fonctionnalités, l'encodage des variables catégorielles et la création de nouvelles fonctionnalités par lot, en streaming ou en temps réel. Les outils que vous sélectionnez dépendent de vos exigences et des services que vous avez choisis.
- Utilisez Vertex AI Feature Store pour automatiser la création et la gestion des fonctionnalités. Vous pouvez centraliser les fonctionnalités pour les réutiliser dans différents modèles et projets.
Standardiser la collecte et le traitement des données
Pour découvrir, comprendre et gérer les éléments de données, utilisez des services de gestion des métadonnées tels que le catalogue universel Dataplex. Il vous aide à standardiser les définitions des données et à assurer la cohérence au sein de votre organisation.
Pour appliquer la standardisation et éviter les coûts liés à la maintenance de plusieurs implémentations personnalisées, utilisez des pipelines d'entraînement et d'orchestration automatisés. Pour en savoir plus, consultez la section suivante.
Automatiser les pipelines d'entraînement et réutiliser les composants existants
Pour accroître l'efficacité et la productivité dans le MLOps, les pipelines d'entraînement automatisés sont essentiels. Google Cloud propose un ensemble d'outils et de services robustes pour créer et déployer des pipelines d'entraînement, en mettant l'accent sur la réutilisation des éléments existants. Les pipelines d'entraînement automatisés permettent d'accélérer le développement de modèles, de garantir la cohérence et de réduire les efforts redondants.
Automatiser les pipelines d'entraînement
Le tableau suivant décrit les services et fonctionnalités Google Cloud que vous pouvez utiliser pour automatiser les différentes fonctions d'un pipeline d'entraînement.
Fonction | services et fonctionnalitésGoogle Cloud |
---|---|
Orchestration: définissez des workflows de ML complexes composés de plusieurs étapes et dépendances. Vous pouvez définir chaque étape en tant que tâche conteneurisée distincte, ce qui vous permet de gérer et d'adapter facilement les tâches individuelles. |
|
Gestion des versions: suivez et contrôlez les différentes versions des pipelines et des composants pour garantir la reproductibilité et l'auditabilité. | Stockez les modèles de pipeline Kubeflow dans un dépôt Kubeflow Pipelines dans Artifact Registry. |
Réutilisation: réutilisez les composants et artefacts de pipeline existants, tels que les ensembles de données préparés et les modèles entraînés, pour accélérer le développement. | Stockez vos modèles de pipeline dans Cloud Storage et partagez-les dans votre organisation. |
Surveillance: surveillez l'exécution du pipeline pour identifier et résoudre les problèmes. | Utilisez Cloud Logging et Cloud Monitoring. Pour en savoir plus, consultez la section Surveiller les ressources en continu avec des tableaux de bord, des alertes et des rapports. |
Élargir la réutilisation au-delà des pipelines
Recherchez des opportunités de réutilisation au-delà des pipelines de formation. Vous trouverez ci-dessous des exemples de fonctionnalités qui vous permettent de réutiliser des fonctionnalités, des ensembles de données, des modèles et du code de ML. Google Cloud
- Vertex AI Feature Store fournit un dépôt centralisé pour organiser, stocker et diffuser des fonctionnalités de ML. Il vous permet de réutiliser des fonctionnalités dans différents projets et modèles, ce qui peut améliorer la cohérence et réduire les efforts extraction de caractéristiques. Vous pouvez stocker, partager et accéder aux fonctionnalités pour les cas d'utilisation en ligne et hors connexion.
- Les ensembles de données Vertex AI permettent aux équipes de créer et de gérer des ensembles de données de manière centralisée, ce qui permet à votre organisation de maximiser la réutilisation et de réduire la duplication des données. Vos équipes peuvent rechercher et découvrir les ensembles de données à l'aide du catalogue universel Dataplex.
- Vertex AI Model Registry vous permet de stocker, de gérer et de déployer vos modèles entraînés. Le registre de modèles vous permet de réutiliser les modèles dans des pipelines ultérieurs ou pour les prédictions en ligne, ce qui vous permet de tirer parti des efforts d'entraînement précédents.
- Les conteneurs personnalisés vous permettent d'empaqueter votre code d'entraînement et ses dépendances dans des conteneurs, puis de les stocker dans Artifact Registry. Les conteneurs personnalisés vous permettent de fournir des environnements d'entraînement cohérents et reproductibles dans différents pipelines et projets.
Utiliser les services Google Cloud pour l'évaluation et le réglage des modèles
Google Cloud propose une suite d'outils et de services puissants pour simplifier et automatiser l'évaluation et le réglage des modèles. Ces outils et services peuvent vous aider à réduire le délai de mise en production et les ressources requises pour la formation et la surveillance continues. En utilisant ces services, vos équipes d'IA et de ML peuvent améliorer les performances des modèles avec moins d'itérations coûteuses, obtenir des résultats plus rapidement et réduire le gaspillage de ressources de calcul.
Utiliser une évaluation et une expérimentation du modèle économes en ressources
Commencez un projet d'IA par des tests avant de déployer votre solution à plus grande échelle. Dans vos tests, suivez diverses métadonnées telles que la version de l'ensemble de données, les paramètres du modèle et le type de modèle. Pour une meilleure reproductibilité et une meilleure comparaison des résultats, utilisez le suivi des métadonnées en plus du contrôle des versions du code, comme dans Git. Pour éviter de manquer d'informations ou de déployer la mauvaise version en production, utilisez Vertex AI Experiments avant d'implémenter des jobs de déploiement ou d'entraînement à grande échelle.
Vertex AI Experiments vous permet d'effectuer les opérations suivantes:
- Simplifiez et automatisez le suivi et la découverte des métadonnées grâce à une interface utilisateur et une API conviviales pour les charges de travail prêtes à la production.
- Analysez les métriques de performances du modèle et comparez les métriques entre plusieurs modèles.
Une fois le modèle entraîné, surveillez en continu les performances et la dérive des données au fil du temps pour les données entrantes. Pour simplifier ce processus, utilisez la surveillance des modèles Vertex AI pour accéder directement aux modèles créés dans Model Registry. Model Monitoring automatise également la surveillance des données et des résultats via des prédictions en ligne et par lot. Vous pouvez exporter les résultats vers BigQuery pour une analyse et un suivi plus approfondis.
Choisir les stratégies optimales pour automatiser l'entraînement
Pour le réglage des hyperparamètres, nous vous recommandons les approches suivantes:
- Pour automatiser le processus de recherche des hyperparamètres optimaux pour vos modèles, utilisez le réglage des hyperparamètres Vertex AI. Vertex AI utilise des algorithmes avancés pour explorer l'espace des hyperparamètres et identifier la meilleure configuration.
- Pour un réglage efficace des hyperparamètres, envisagez d'utiliser des techniques d'optimisation bayésienne, en particulier lorsque vous travaillez avec des modèles complexes et de grands ensembles de données.
Pour l'entraînement distribué, nous vous recommandons les approches suivantes:
Pour les ensembles de données volumineux et les modèles complexes, utilisez l'infrastructure d'entraînement distribué de Vertex AI. Cette approche vous permet d'entraîner vos modèles sur plusieurs machines, ce qui permet de réduire considérablement le temps d'entraînement et les coûts associés. Utilisez des outils tels que les suivants:
- Réglage Vertex AI pour effectuer un affinage supervisé de Gemini, Imagen et d'autres modèles.
- Entraînement Vertex AI ou Ray sur Vertex AI pour l'entraînement distribué personnalisé.
Choisissez des frameworks de ML optimisés, tels que Keras et PyTorch, qui prennent en charge l'entraînement distribué et une utilisation efficace des ressources.
Utiliser l'IA explicable
Il est essentiel de comprendre pourquoi un modèle prend certaines décisions et d'identifier les biais potentiels ou les axes d'amélioration. Utilisez Vertex Explainable AI pour obtenir des insights sur les prédictions de votre modèle. Vertex Explainable AI permet d'automatiser les explications basées sur les caractéristiques et les exemples associées à vos tests Vertex AI.
- Basé sur les caractéristiques: pour comprendre quelles caractéristiques ont le plus d'influence sur les prédictions de votre modèle, analysez les attributions de caractéristiques. Cette compréhension peut guider les efforts d'ingénierie des caractéristiques et améliorer l'interprétabilité du modèle.
- Basé sur des exemples : pour renvoyer une liste d'exemples (généralement à partir de l'ensemble d'entraînement) les plus similaires à l'entrée, Vertex AI utilise la recherche des voisins les plus proches. Comme des entrées similaires génèrent généralement des prédictions similaires, vous pouvez utiliser ces explications pour explorer et expliquer le comportement d'un modèle.
Utiliser des services gérés et des modèles pré-entraînés
Adoptez une approche incrémentielle pour la sélection et le développement de modèles. Cette approche vous permet d'éviter les coûts excessifs associés au démarrage à chaque fois. Pour contrôler les coûts, utilisez des frameworks de ML, des services gérés et des modèles pré-entraînés.
Pour tirer le meilleur parti des services gérés et des modèles pré-entraînés, tenez compte des recommandations suivantes.
Utiliser des notebooks pour l'exploration et les tests
Les environnements de notebook sont essentiels pour les tests de ML rentables. Un notebook fournit un espace interactif et collaboratif permettant aux data scientists et aux ingénieurs d'explorer des données, de développer des modèles, de partager des connaissances et d'effectuer des itérations efficaces. La collaboration et le partage des connaissances via les notebooks accélèrent considérablement le développement, les revues de code et le transfert de connaissances. Les notebooks permettent de simplifier les workflows et de réduire les efforts redondants.
Au lieu de vous procurer et de gérer du matériel coûteux pour votre environnement de développement, vous pouvez utiliser l'infrastructure évolutive et à la demande de Vertex AI Workbench et de Colab Enterprise.
Vertex AI Workbench est un environnement de développement basé sur des notebooks Jupyter pour l'ensemble du workflow de data science. Vous pouvez interagir avec Vertex AI et d'autres services Google Clouddepuis le notebook Jupyter d'une instance. Les intégrations et fonctionnalités de Vertex AI Workbench vous permettent de:
- Accéder à vos données et les explorer à partir d'un notebook Jupyter à l'aide des intégrations BigQuery et Cloud Storage.
- Automatisez les mises à jour récurrentes d'un modèle à l'aide d'exécutions programmées du code qui s'exécute sur Vertex AI.
- Traitez rapidement les données en exécutant un notebook sur un cluster Dataproc.
- Exécuter un notebook en tant qu'étape dans un pipeline à l'aide de Vertex AI Pipelines
Colab Enterprise est un environnement de notebook géré et collaboratif doté des fonctionnalités de sécurité et de conformité de Google Cloud. Colab Enterprise est idéal si les priorités de votre projet incluent le développement collaboratif et la réduction des efforts de gestion de l'infrastructure. Colab Enterprise s'intègre aux servicesGoogle Cloud et à l'assistance optimisée par l'IA qui utilise Gemini. Colab Enterprise vous permet d'effectuer les opérations suivantes:
- Travaillez dans des notebooks sans avoir à gérer l'infrastructure.
- Partagez un notebook avec un seul utilisateur, un groupe Google ou un domaine Google Workspace. Vous pouvez contrôler l'accès aux notebooks via Identity and Access Management (IAM).
- Interagir avec les fonctionnalités intégrées à Vertex AI et BigQuery
Pour suivre les modifications et revenir à des versions précédentes si nécessaire, vous pouvez intégrer vos notebooks à des outils de contrôle des versions tels que Git.
Commencer avec des modèles existants et pré-entraînés
L'entraînement de modèles complexes à partir de zéro, en particulier de modèles de deep learning, nécessite des ressources de calcul et du temps importants. Pour accélérer votre processus de sélection et de développement de modèles, commencez par des modèles existants et pré-entraînés. Ces modèles, qui sont entraînés sur d'immenses ensembles de données, éliminent le besoin d'entraîner des modèles à partir de zéro et réduisent considérablement les coûts et les délais de développement.
Réduire les coûts de formation et de développement
Sélectionnez un modèle ou une API appropriés pour chaque tâche de ML, puis combinez-les pour créer un processus de développement de ML de bout en bout.
Model Garden Vertex AI propose une vaste collection de modèles pré-entraînés pour des tâches telles que la classification d'images, la détection d'objets et le traitement du langage naturel. Les modèles sont regroupés dans les catégories suivantes:
- Modèles Google tels que la famille de modèles Gemini et Imagen pour la génération d'images.
- Modèles Open Source comme Gemma et Llama.
- Modèles tiers de partenaires tels qu'Anthropic et Mistral AI.
Google Cloud fournit des API d'IA et de ML qui permettent aux développeurs d'intégrer de puissantes fonctionnalités d'IA dans les applications sans avoir à créer des modèles à partir de zéro.
- L'API Cloud Vision vous permet de tirer des insights des images. Cette API est utile pour des applications telles que l'analyse d'images, la modération de contenu et la saisie de données automatisée.
- L'API Cloud Natural Language vous permet d'analyser le texte pour en comprendre la structure et le sens. Cette API est utile pour des tâches telles que l'analyse des commentaires des clients, la catégorisation du contenu et la compréhension des tendances sur les réseaux sociaux.
- L'API Speech-to-Text convertit les pistes audio en texte. Cette API est compatible avec un large éventail de langues et de dialectes.
- L'API Video Intelligence analyse le contenu vidéo pour identifier les objets, les scènes et les actions. Utilisez cette API pour l'analyse de contenu vidéo, la modération de contenu et la recherche de vidéos.
- L'API Document AI traite les documents pour en extraire, les classer et les comprendre. Cette API vous aide à automatiser les workflows de traitement des documents.
- L'API Dialogflow permet de créer des interfaces de conversation, telles que des chatbots et des assistants vocaux. Vous pouvez utiliser cette API pour créer des bots de service client et des assistants virtuels.
- L'API Gemini dans Vertex AI donne accès au modèle d'IA le plus performant et le plus polyvalent de Google.
Réduire les coûts de réglage
Pour réduire le besoin de données et de temps de calcul importants, affinez vos modèles pré-entraînés sur des ensembles de données spécifiques. Nous vous recommandons les approches suivantes:
- Transfert d'apprentissage: utilisez les connaissances d'un modèle pré-entraîné pour une nouvelle tâche, au lieu de partir de zéro. Cette approche nécessite moins de données et de temps de calcul, ce qui permet de réduire les coûts.
- Réglage de l'adaptateur (réglage avec optimisation des paramètres) : permet d'adapter les modèles à de nouvelles tâches ou à de nouveaux domaines sans affinage complet. Cette approche nécessite des ressources de calcul beaucoup moins importantes et un ensemble de données plus petit.
- Ajustement supervisé : adapte le comportement du modèle à un ensemble de données étiquetées. Cette approche simplifie la gestion de l'infrastructure sous-jacente et l'effort de développement requis pour une tâche d'entraînement personnalisée.
Explorer et tester des modèles avec Vertex AI Studio
Vertex AI Studio vous permet de tester, de créer des prototypes et de déployer rapidement des applications d'IA générative.
- Intégration à Model Garden: permet d'accéder rapidement aux derniers modèles et de les déployer efficacement pour gagner du temps et réduire les coûts.
- Accès unifié aux modèles spécialisés: consolide l'accès à un large éventail de modèles et d'API pré-entraînés, y compris ceux pour le chat, le texte, les médias, la traduction et la parole. Cet accès unifié peut vous aider à réduire le temps consacré à la recherche et à l'intégration de services individuels.
Utiliser des services gérés pour entraîner ou diffuser des modèles
Les services gérés peuvent vous aider à réduire le coût de l'entraînement des modèles et à simplifier la gestion de l'infrastructure, ce qui vous permet de vous concentrer sur le développement et l'optimisation des modèles. Cette approche peut entraîner des avantages économiques et une efficacité importants.
Coûts opérationnels réduits
Pour réduire la complexité et les coûts de gestion de l'infrastructure, utilisez des services gérés tels que les suivants:
- Vertex AI Training fournit un environnement entièrement géré pour entraîner vos modèles à grande échelle. Vous pouvez choisir parmi différents conteneurs prédéfinis avec des frameworks de ML populaires ou utiliser vos propres conteneurs personnalisés. Google Cloud gère le provisionnement, la mise à l'échelle et la maintenance de l'infrastructure, ce qui réduit les coûts opérationnels.
- Les prédictions Vertex AI gèrent l'ajustement de l'infrastructure, l'équilibrage de charge et le routage des requêtes. Vous bénéficiez d'une haute disponibilité et de performances sans intervention manuelle.
- Ray sur Vertex AI fournit un cluster Ray entièrement géré. Vous pouvez utiliser le cluster pour exécuter des charges de travail d'IA personnalisées complexes qui effectuent de nombreux calculs (ajustement des hyperparamètres, ajustement fin du modèle, entraînement distribué du modèle et apprentissage par renforcement à partir de commentaires humains) sans avoir à gérer votre propre infrastructure.
Utiliser des services gérés pour optimiser l'utilisation des ressources
Pour en savoir plus sur l'utilisation efficace des ressources, consultez la section Optimiser l'utilisation des ressources.
Contributeurs
Auteurs :
- Isaac Lo | Responsable du développement commercial pour l'IA
- Anastasia Prokaeva | Architecte de solutions sur le terrain, IA générative
- Amy Southwood | Consultante solutions techniques, analyse de données et IA
Autres contributeurs :
- Dr Filipe Gracio | Ingénieur client
- Kumar Dhanagopal Développeur de solutions multiproduits
- Marwan Al Shawi | Partner Customer Engineer
- Nicolas Pinteaux | Ingénieur client, spécialiste de la modernisation des applications