Ce document du Google Cloud Well-Architected Framework : perspective de l'IA et du ML présente les principes et les recommandations permettant d'optimiser le coût 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 Well-Architected Framework.
Les systèmes d'IA et de ML peuvent vous aider à dégager des insights précieux 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 de vastes ressources et un délai de rentabilisation rapide sans investissements initiaux importants pour les charges de travail d'IA et de ML. Pour maximiser la valeur commerciale et aligner les dépenses sur vos objectifs commerciaux, vous devez comprendre les facteurs de coût, optimiser les coûts de manière proactive, configurer des contrôles des dépenses et adopter des pratiques FinOps.
Les recommandations de ce document sont mises en correspondance avec les 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 d'IA et de 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 les dépenses de manière précise, Google Cloud fournit des outils complets de facturation et de gestion des coûts, tels que les suivants :
- Rapports et tables Cloud Billing
- Tableaux de bord, budgets et alertes Data Studio
- Cloud Monitoring
- Cloud Logging
Pour prendre des décisions éclairées concernant l'allocation et l'optimisation des ressources, tenez compte des recommandations suivantes.
Définissez vos objectifs commerciaux et vos 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 parties prenantes pour comprendre les priorités de l'entreprise. Définissez des objectifs d'IA et de ML spécifiques, mesurables, atteignables, pertinents et limités dans le temps (SMART). Par exemple, un objectif SMART est : "Réduire de 15 % le temps de traitement des discussions pour le service client en six mois en utilisant un chatbot IA".
Pour progresser vers vos objectifs commerciaux 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 Monitoring.
- Métriques de valeur commerciale, telles que la croissance des revenus, les économies, la satisfaction client, l'efficacité, la précision et l'adoption. Vous pouvez suivre ces métriques à l'aide des analyses BigQuery et des tableaux de bord Looker.
Métriques spécifiques à un secteur d'activité, telles que les suivantes :
- Secteur du commerce : mesurer l'augmentation des revenus et le taux de désabonnement
- Secteur de la santé : mesurer le temps passé avec les patients et les résultats des patients
- Secteur financier : mesurer la réduction de la fraude
Métriques spécifiques au projet. Vous pouvez suivre ces métriques à l'aide des tests sur Gemini Enterprise Agent Platform et de l'évaluation.
- IA prédictive : mesurer la justesse et la précision
- IA générative : mesurer l'adoption, la satisfaction et la qualité du contenu
- IA de vision par ordinateur : mesurer la précision
Favoriser une culture de la sensibilisation aux coûts et de l'optimisation continue
Adoptez les principes FinOps pour vous assurer que chaque projet d'IA et de ML dispose d'une estimation des coûts 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 sont attribués à des propriétaires et que les responsabilités sont clairement définies.
Pour en savoir plus, consultez Favoriser une culture de sensibilisation aux coûts dans le pilier d'optimisation des coûts du Well-Architected Framework.
Générer de la valeur et optimiser en continu grâce à l'itération et aux commentaires
Associez vos applications d'IA et de ML directement à vos objectifs commerciaux 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 :
- Surveiller en continu et analyser les données : surveillez les KPI et les coûts pour identifier les écarts et les opportunités d'optimisation.
- Effectuer des ajustements basés sur les données : optimisez les stratégies, les modèles, l'infrastructure et l'allocation des ressources en fonction des insights sur les données.
- Affiner de manière itérative : adaptez les objectifs d'entreprise et les KPI en fonction de ce que vous avez appris et de l'évolution des besoins de l'entreprise. Cette itération vous aide à maintenir la pertinence et l'alignement stratégique.
- Établir une boucle de rétroaction : examinez les performances, les coûts et la valeur avec les parties prenantes pour éclairer l'optimisation continue et la planification des projets futurs.
Gérer les données de facturation avec Cloud Billing et des étiquettes
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 les outils Google Cloudpour 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 étiqueter les ressources Google Cloud
- Structurez vos projets et vos ressources selon 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 ressources Google Cloud à l'aide d'organisations, de dossiers et de projets. Pour en savoir plus, consultez Choisir une hiérarchie de ressources pour votre zone de destination Google Cloud .
- Appliquez des libellés pertinents à vos ressources. Vous pouvez utiliser des étiquettes 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 étiquettes 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 tous vos projets d'IA et de ML. Des conventions d'étiquetage cohérentes permettent de s'assurer que vos données de facturation sont organisées et peuvent être facilement analysées.
Utiliser les 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ête 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 d'hyperparamètres ou l'inférence.
- Pour identifier les anomalies de coûts 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 d'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é de répartition des coûts de Google Cloud. La répartition des coûts favorise la responsabilité et la transparence.
- Pour obtenir des insights sur les habitudes de dépenses, explorez les rapports sur la facturation Cloud 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 devez surveiller et créer des rapports en continu. 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 domaines d'optimisation et d'assurer l'alignement entre les objectifs commerciaux et les coûts.
Créer un système de reporting
Créez des rapports planifiés et partagez-les avec les parties prenantes concernées.
Utilisez Monitoring pour collecter des métriques à partir de différentes sources, y compris vos applications, votre infrastructure et les services Google Cloud tels que Compute Engine, Google Kubernetes Engine (GKE) et Cloud Run Functions. Pour visualiser les métriques et les journaux en temps réel, vous pouvez utiliser le tableau de bord 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 des modèles, les appels d'API ou les KPI au niveau de l'entreprise.
Utilisez 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 des ressources telles que le processeur, la mémoire, le 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 des mesures 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 Data Studio pour créer des tableaux de bord et des rapports interactifs. Connectez les tableaux de bord et les rapports à différentes sources de données, y compris BigQuery et 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 lassitude vis-à-vis des alertes. Créez des règles d'alerte dans 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 journaux 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 d'autres pertes financières.
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 services Google Cloud 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 inactives. 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 se concentre sur d'autres tâches.
- Plus d'agilité : vous pouvez répondre rapidement à l'évolution de la demande et maintenir une haute disponibilité pour vos applications.
Les sections suivantes résument les techniques que vous pouvez utiliser pour implémenter l'autoscaling à différentes étapes de vos projets d'IA.
Formation
- Utilisez des services gérés comme Gemini Enterprise Agent Platform ou GKE, qui offrent des fonctionnalités d'autoscaling intégrées pour les jobs d'entraînement.
- Configurez des règles d'autoscaling pour ajuster le nombre d'instances d'entraînement en fonction de métriques telles que l'utilisation du processeur, l'utilisation de la mémoire et la longueur de la file d'attente des jobs.
- Utilisez des métriques de scaling personnalisées pour affiner le comportement de l'autoscaling pour vos charges de travail spécifiques.
Inférence
- Déployez vos modèles sur des plates-formes évolutives telles que Gemini Enterprise Agent Platform Inference, GPU sur GKE ou Cloud TPU sur GKE.
- Utilisez les fonctionnalités d'autoscaling pour ajuster le nombre d'instances répliquées en fonction de métriques telles que le taux de demandes, la latence et l'utilisation des ressources.
- Implémentez l'équilibrage de charge pour répartir le trafic de manière uniforme entre les instances répliquées et assurer une haute disponibilité.
Commencer avec des modèles et des ensembles de données de petite taille
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, offre les avantages suivants :
- Réduction des coûts dès le départ : une puissance de calcul, un stockage et un temps de traitement réduits peuvent entraîner une baisse des coûts lors des phases initiales d'expérimentation et de développement.
- 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 les directions prometteuses.
- Complexité réduite : 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 du risque 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 des exemples 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'intégralité de l'ensemble de données.
- Expérimentez à l'aide de notebooks : commencez par des instances plus petites et effectuez un scaling si nécessaire. Vous pouvez utiliser Gemini Enterprise Agent Platform Workbench, un environnement de notebook Jupyter géré qui convient parfaitement pour tester différentes architectures de modèles et différents ensembles de données.
Commencez par des modèles plus simples ou pré-entraînés : utilisez Model Garden 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.
Évolutivité pour l'optimisation des ressources : utilisez l'infrastructure flexible de Google Cloudpour faire évoluer les ressources selon vos besoins. Commencez par des instances plus petites, puis ajustez leur taille ou leur nombre si nécessaire.
Découvrir les besoins en ressources par l'expérimentation
Les besoins en ressources pour les 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 en effectuant 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 correctement les ressources que vous avez utilisées pour l'entraînement et la mise en service.
Nous vous recommandons de suivre l'approche suivante pour les tests :
- Commencez par une 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 le simulateur de coûtGoogle Cloud pour les nouvelles charges de travail ou un rapport sur la facturation existant.
- Comprendre vos quotas : avant de lancer des tests de grande envergure, familiarisez-vous avec les quotas de votre projet Google Cloud pour les ressources et les API que vous prévoyez d'utiliser. 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 travailler dans les limites des 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 Cloud TPU, ainsi que la capacité de stockage. Gemini Enterprise Agent Platform Managed Training et Agent Platform Inference vous permettent de tester différents types et configurations de machines.
Surveiller 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 justesse 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 Agent Platform.
- Pour collecter et analyser des métriques de performances détaillées, utilisez Monitoring.
- Pour afficher les coûts, utilisez les rapports Cloud Billing et les tableaux de bord 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 Agent Platform TensorBoard.
Analyser les coûts : comparez le coût et les performances de chaque configuration pour identifier l'option la plus rentable.
Établissez des seuils de ressources et des objectifs d'amélioration en fonction des quotas : définissez des seuils pour le moment où le scaling commence à générer des rendements décroissants en termes de performances, tels qu'une réduction minimale du temps d'entraînement ou de la latence pour une augmentation significative des coûts. Tenez compte des quotas du projet lorsque vous définissez ces seuils. Déterminez le point où les coûts et les implications potentielles sur les quotas d'un scaling supplémentaire ne sont plus justifiés par les gains de performances.
Affiner de manière itérative : 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 correspond aux seuils de rentabilité établis.
Utiliser les MLOps pour réduire les inefficacités
Comme les organisations utilisent de plus en plus le ML pour stimuler l'innovation et l'efficacité, il devient essentiel de gérer efficacement le cycle de vie du ML. Les opérations de 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 le MLOps sur les facteurs de coûts
Pour tirer parti des MLOps afin d'optimiser les coûts, identifiez les principaux facteurs de coûts dans le cycle de vie du ML. Vous pouvez ensuite adopter et implémenter des pratiques MLOps alignées sur les facteurs de coût. Hiérarchisez et adoptez les fonctionnalités MLOps qui répondent aux facteurs de coût les plus importants. Cette approche permet de garantir une transition gérable et réussie vers des économies significatives.
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 du code, des données et des modèles. Le contrôle des versions garantit la reproductibilité, facilite la collaboration et évite les retouches 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 de CI/CD garantissent une utilisation efficace des ressources et minimisent les coûts associés aux interventions manuelles.
- Observabilité : Monitoring et 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 des modèles : Gemini Enterprise Agent Platform Pipelines simplifie les processus de réentraînement des modèles de manière périodique ou lorsque les performances se dégradent. Lorsque vous utilisez les pipelines Agent Platform pour le réentraînement, cela vous aide à vous assurer que vos modèles restent précis et efficaces, ce qui peut éviter une consommation inutile de ressources et maintenir des performances optimales.
- Tests et évaluations automatisés : Agent Platform vous aide à accélérer et à standardiser l'évaluation des modèles. Mettez en œuvre 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 de manière précoce, à éviter des problèmes coûteux en production et à réduire le besoin de tests manuels approfondis.
Pour en savoir plus, consultez 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 efficaces de gestion et de gouvernance des données sont essentielles pour optimiser les coûts. Des données bien organisées peuvent encourager les équipes à réutiliser les ensembles de données, à éviter les doublons inutiles et à réduire les efforts nécessaires pour obtenir des données de haute qualité. En gérant les données de manière proactive, 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 utiles.
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'atout le plus précieux pour les entreprises qui entreprennent leur 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 et à 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, de renforcer la sécurité, d'améliorer l'utilisation et de réduire la redondance.
Établir un framework de gouvernance des données
Il existe de nombreux frameworks préexistants pour la gouvernance des données, tels que ceux publiés par l'EDM Council, avec des options disponibles pour différents secteurs et tailles d'organisation. 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 à mettre en œuvre un framework de gouvernance des données robuste :
Knowledge Catalog 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 au même endroit. Cela permet de réduire le coût de distribution et de maintenance des données, de faciliter la découverte des données et de promouvoir la réutilisation.
- Pour organiser les données, utilisez les abstractions de Knowledge Catalog et configurez des domaines de données et des produits de données.
- Pour administrer l'accès aux éléments de données et aux ressources de gouvernance, utilisez les groupes Google et les rôles IAM (Identity and Access Management) de Knowledge Catalog.
- Pour simplifier les processus de qualité des données, activez la qualité automatique des données.
Knowledge Catalog 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 ingérées dans le catalogue. 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 éléments 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 à Knowledge Catalog 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 éléments de données sélectionnés peuvent être affichés sous forme de fiches.
- Utilisez les salles blanches de données 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 BigQuery Sharing.
Rendre les ensembles de données et les caractéristiques réutilisables tout au long du cycle de vie du ML
Pour réaliser des gains d'efficacité et des économies significatifs, réutilisez les ensembles de données et les caractéristiques dans plusieurs projets de ML. En évitant les efforts redondants d'ingénierie des données et de développement de caractéristiques, 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 caractéristiques :
- Les professionnels des données et du ML peuvent publier des produits de données pour maximiser leur réutilisation par les équipes. Les produits de données peuvent ensuite être découverts et utilisés via Knowledge Catalog et BigQuery Sharing.
- Pour les ensembles de données tabulaires et structurés, vous pouvez utiliser Agent Platform Feature Store pour favoriser la réutilisation et simplifier la gestion des caractéristiques 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 embeddings vectoriels en incluant des métadonnées dans vos index Vector Search.
Automatiser et simplifier avec le MLOps
L'un des principaux avantages de l'adoption des pratiques MLOps est la réduction des coûts technologiques et de personnel. L'automatisation vous aide à éviter la duplication des activités de ML et à réduire la charge de travail des data scientists et des ingénieurs en ML.
Pour automatiser et simplifier le développement de ML avec MLOps, tenez compte des recommandations suivantes.
Automatisez et standardisez la collecte et le traitement des données
Pour réduire le temps et les efforts de développement de 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écapitule 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 de l'accès en écriture (statique ou dynamique), le volume de données (élevé ou faible) et le format des données (structurées, non structurées ou semi-structurées). Pour en savoir plus, consultez Bases de donnéesGoogle Cloud .
- Lacs de données tels que Cloud Storage avec BigLake.
- Knowledge Catalog pour gouverner les données de différentes sources.
- Plates-formes d'événements de traitement en flux continu 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 de données provenant de diverses sources, avec intégration de composants de ML. Pour une architecture basée sur les événements, vous pouvez combiner Dataflow avec Eventarc afin de traiter efficacement les données pour le ML. Pour améliorer l'efficacité des jobs MLOps et ML, utilisez les GPU et les fonctionnalités d'ajustement adapté.
- Cloud Run Functions : pour l'ingestion de données basée sur des événements, déclenchée par des modifications dans les 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 pour la transformation et le chargement des données :
- Utilisez des outils tels que Dataflow ou Dataform pour automatiser les transformations de données telles que le scaling des caractéristiques, l'encodage des variables catégorielles et la création de caractéristiques par lot, en flux continu ou en temps réel. Les outils que vous sélectionnez dépendent de vos exigences et des services choisis.
- Utilisez Feature Store pour automatiser la création et la gestion des caractéristiques. Vous pouvez centraliser les caractéristiques 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 Knowledge Catalog. Il vous aide à standardiser les définitions de données et à assurer la cohérence au sein de votre organisation.
Pour appliquer la standardisation et éviter les coûts de maintenance de plusieurs implémentations personnalisées, utilisez des pipelines d'entraînement et une orchestration automatisés. Pour en savoir plus, consultez la section suivante.
Automatisez les pipelines d'entraînement et réutilisez les composants existants
Pour améliorer l'efficacité et la productivité dans les MLOps, les pipelines d'entraînement automatisés sont essentiels. Google Cloud propose un ensemble robuste d'outils et de services 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 des modèles, d'assurer 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 | Google Cloud services et fonctionnalités |
|---|---|
| Orchestration : définissez des workflows de ML complexes composés de plusieurs étapes et dépendances. Vous pouvez définir chaque étape comme une tâche conteneurisée distincte, ce qui vous permet de gérer et de faire évoluer 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é. | Stocker des modèles de pipeline Kubeflow dans un dépôt Kubeflow Pipelines dans Artifact Registry. |
| Réutilisabilité : 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 Logging et Monitoring. Pour en savoir plus, consultez Surveiller les ressources en continu avec des tableaux de bord, des alertes et des rapports. |
Étendre la réutilisabilité au-delà des pipelines
Recherchez des opportunités d'étendre la réutilisabilité au-delà des pipelines d'entraînement. Voici des exemples de fonctionnalités Google Cloud qui vous permettent de réutiliser des caractéristiques, des ensembles de données, des modèles et du code de ML.
- Feature Store fournit un dépôt centralisé pour organiser, stocker et livrer les caractéristiques de ML. Il vous permet de réutiliser des caractéristiques 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 à des caractéristiques pour des cas d'utilisation en ligne et hors connexion.
- Les ensembles de données Agent Platform permettent aux équipes de créer et de gérer des ensembles de données de manière centralisée, afin que votre organisation puisse maximiser la réutilisabilité et réduire la duplication des données. Vos équipes peuvent rechercher et découvrir les ensembles de données à l'aide de Knowledge Catalog.
- Model Registry sur Gemini Enterprise Agent Platform vous permet de stocker, de gérer et de déployer vos modèles entraînés. Model Registry vous permet de réutiliser les modèles dans les pipelines suivants ou pour la prédiction en ligne, ce qui vous aide à tirer parti des efforts d'entraînement précédents.
- Les conteneurs personnalisés vous permettent d'empaqueter votre code d'entraînement et vos dépendances dans des conteneurs, et 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 temps de mise en production et les ressources nécessaires à l'entraînement et à la surveillance continus. 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 minimiser le gaspillage de ressources de calcul.
Utiliser l'évaluation et l'expérimentation de modèles économes en ressources
Commencez un projet d'IA par des tests avant de déployer votre solution à plus grande échelle. Dans vos tests, suivez différentes 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 améliorer la reproductibilité et la comparaison des résultats, utilisez le suivi des métadonnées en plus de la gestion des versions du code, comme les fonctionnalités de Git. Pour éviter de perdre des informations ou de déployer la mauvaise version en production, utilisez les tests sur Agent Platform avant d'implémenter des jobs de déploiement ou d'entraînement à grande échelle.
Agent Platform 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 UI et une API conviviales pour les charges de travail prêtes pour la production.
- Analysez les métriques de performances du modèle et comparez les métriques de 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 Model Monitoring sur Gemini Enterprise Agent Platform pour accéder directement aux modèles créés dans Model Registry. Agent Platform 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 des 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 d'Agent Platform. Agent Platform 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 traitez des modèles complexes et des ensembles de données volumineux.
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é d'Agent Platform. Cette approche vous permet d'entraîner vos modèles sur plusieurs machines, ce qui contribue à réduire considérablement le temps d'entraînement et les coûts associés. Utilisez des outils comme ceux-ci :
- Réglage d'Agent Platform pour effectuer un affinage supervisé de Gemini, Imagen et d'autres modèles.
- Entraînement géré Agent Platform ou Ray sur Gemini Enterprise Agent Platform pour l'entraînement distribué personnalisé.
Choisissez des frameworks de ML optimisés, comme Keras et PyTorch, qui sont compatibles avec l'entraînement distribué et l'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 points à améliorer. Utilisez des techniques d'explicabilité pour mieux comprendre les prédictions de votre modèle.
- Basées 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ées sur des exemples : pour renvoyer une liste d'exemples (généralement à partir de l'ensemble d'entraînement) les plus semblables à l'entrée, utilisez 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 redé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 tester le ML de manière rentable. Un notebook fournit un espace interactif et collaboratif permettant aux data scientists et aux ingénieurs d'explorer les données, de développer des modèles, de partager des connaissances et d'itérer efficacement. La collaboration et le partage de connaissances via des 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 d'acheter et de gérer du matériel coûteux pour votre environnement de développement, vous pouvez utiliser l'infrastructure évolutive et à la demande d'Agent Platform Workbench et de Colab Enterprise.
Agent Platform Workbench est un environnement de développement basé sur des notebooks Jupyter pour l'ensemble du workflow de data science. Vous pouvez interagir avec Agent Platform et d'autres services Google Cloudà partir du notebook Jupyter d'une instance. Les intégrations et fonctionnalités d'Agent Platform Workbench vous permettent d'effectuer les opérations suivantes :
- Accéder à des données et les explorer à partir d'un notebook Jupyter à l'aide des intégrations BigQuery et Cloud Storage.
- Automatiser les mises à jour récurrentes d'un modèle à l'aide d'exécutions programmées du code qui s'exécute sur Agent Platform
- Traitez rapidement les données en exécutant un notebook sur un cluster Managed Service pour Apache Spark.
- Exécuter un notebook en tant qu'étape dans un pipeline à l'aide d'Agent Platform 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 IAM.
- Interagir avec les fonctionnalités intégrées à Agent Platform et BigQuery.
Pour suivre les modifications et revenir aux versions précédentes si nécessaire, vous pouvez intégrer vos notebooks à des outils de contrôle des versions tels que Git.
Commencez avec des modèles existants et pré-entraînés
L'entraînement de modèles complexes à partir de zéro, en particulier les modèles de deep learning, nécessite des ressources de calcul et du temps considérables. Pour accélérer le processus de sélection et de développement de votre modèle, commencez par des modèles existants et pré-entraînés. Ces modèles, qui sont entraînés sur de vastes 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 le temps 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 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 ouverts comme Gemma et Llama.
- Modèles tiers de partenaires comme Anthropic.
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 leurs applications sans avoir à créer de modèles à partir de zéro.
- L'API Cloud Vision vous permet d'obtenir des insights à partir d'images. Cette API est utile pour des applications telles que l'analyse d'images, la modération de contenu et la saisie automatisée de données.
- L'API Cloud Natural Language vous permet d'analyser du texte pour en comprendre la structure et la signification. Cette API est utile pour des tâches telles que l'analyse des commentaires des clients, la catégorisation de 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 grand nombre de langues et de dialectes.
- L'API Document AI traite les documents pour extraire, classer et comprendre les données. 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 permet d'accéder 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 volumineuses et de temps de calcul, affinez vos modèles pré-entraînés sur des ensembles de données spécifiques. Nous vous recommandons les approches suivantes :
- Apprentissage par transfert : 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 (optimisation du réglage des paramètres) : adaptez les modèles à de nouvelles tâches ou de nouveaux domaines sans affinage complet. Cette approche nécessite beaucoup moins de ressources de calcul et un ensemble de données plus petit.
- Affinage supervisé : adaptez 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 un job d'entraînement personnalisé.
Explorer et tester Agent Studio sur Gemini Enterprise Agent Platform
Agent Studio vous permet de tester, de prototyper 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 contenus multimédias, la traduction et la reconnaissance vocale. Cet accès unifié peut vous aider à réduire le temps passé à rechercher et à intégrer des 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 financiers significatifs et une efficacité accrue.
Coûts opérationnels réduits
Pour réduire la complexité et le coût de la gestion de l'infrastructure, utilisez des services gérés tels que les suivants :
- L'entraînement géré Agent Platform 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, le scaling et la maintenance de l'infrastructure, ce qui vous permet de réduire les coûts opérationnels.
- Agent Platform Inference gère le scaling de l'infrastructure, l'équilibrage de charge et le routage des requêtes. Vous bénéficiez d'une haute disponibilité et de performances élevées sans intervention manuelle.
- Ray sur Gemini Enterprise Agent Platform 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 (réglage des hyperparamètres, réglage des modèles, entraînement de modèles distribués et apprentissage par renforcement à partir des 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 Optimiser l'allocation des ressources.
Contributeurs
Auteurs :
- Isaac Lo | Responsable du développement commercial de l'IA
- Anastasia Prokaeva | Field Solutions Architect, IA générative
- Amy Southwood | Technical Solutions Consultant, Data Analytics, and AI
Autres contributeurs :
- Filipe Gracio, PhD | Ingénieur client, spécialiste en IA/ML
- Kumar Dhanagopal Développeur de solutions multiproduits
- Marwan Al Shawi | Partner Customer Engineer
- Nicolas Pintaux | Ingénieur client, spécialiste de la modernisation des applications