Ce document du framework Well-Architected : perspective de l'IA et du ML fournit une présentation des principes et des 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 framework Google Cloud Well-Architected.
Les systèmes d'IA et de ML peuvent vous aider à obtenir des insights précieux et des capacités prédictives à partir de vos 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 approfondis sur les clients. Le cloud offre de vastes ressources et un délai de rentabilité 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ûts, optimiser les coûts de manière proactive, configurer des contrôles des dépenses et adopter les pratiques 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 les 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 précisément vos dépenses, Google Cloud propose des outils complets de facturation et de gestion des coûts, tels que 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 concernant 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 les 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 qui soient spécifiques, mesurables, atteignables, pertinents et limités dans le temps (SMART). Par exemple, un objectif SMART est le suivant : "Réduire de 15 % le temps de traitement des discussions pour le service client d'ici 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 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 analyses BigQuery et des tableaux de bord Looker.
Métriques spécifiques au secteur, comme les suivantes :
- Secteur du commerce de détail : mesurez le rehaussement des revenus et le taux de désabonnement
- Secteur de la santé : mesurez le temps passé par les patients et les résultats pour les patients
- 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 de l'évaluation.
- IA prédictive : mesurer la précision et la justesse
- 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 sensibilisation aux coûts et d'optimisation continue
Adoptez les principes du FinOps pour vous assurer que chaque projet d'IA et de ML dispose d'estimations de 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 ont des propriétaires désignés et une responsabilité claire.
Pour en savoir plus, consultez Favoriser une culture de sensibilisation aux coûts dans le pilier "Optimisation des coûts" du Google Cloud Well-Architected Framework.
Générer de la valeur et optimiser en continu grâce aux itérations et aux commentaires
Mappez 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 :
- Surveillez en continu et analysez les données : surveillez les KPI et les coûts pour identifier les écarts et les opportunités d'optimisation.
- Effectuez 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.
- Affinez de manière itérative : adaptez vos objectifs commerciaux et vos KPI en fonction de ce que vous avez appris et de l'évolution des besoins de votre entreprise. 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 parties prenantes pour orienter l'optimisation continue et la planification des futurs projets.
Gérer les données de facturation avec la facturation Cloud et les libellés
Pour optimiser efficacement les coûts, vous devez connaître 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 spécifiques d'IA et de ML. Ces insights ouvrent la voie à l'optimisation des coûts.
Organiser et étiqueter les Google Cloud ressources
- Structurez vos projets et 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 ressources Google Cloud en utilisant des organisations, des dossiers et des 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 libellés indiquant 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.
- Veillez à ce que vos conventions de libellé soient cohérentes dans tous 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 les outils liés à la facturation
- Pour faciliter l'analyse et les 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 comprendre vos coûts.
- Pour agréger les coûts par libellé, projet ou période spécifique, vous pouvez écrire des requêtes SQL personnalisées dans BigQuery. Ces requêtes vous permettent d'attribuer des coûts à des activités spécifiques d'IA et de ML, telles que l'entraînement de modèles, le réglage d'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é Répartition 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 services d'IA et de ML spécifiques.
Surveiller les ressources en continu avec des tableaux de bord, des alertes et des 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 maintenir un accès constant aux informations sur les coûts, d'identifier les domaines d'optimisation et de garantir 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 Cloud Monitoring pour collecter des métriques provenant de diverses sources, y compris vos applications, votre infrastructure et les services Google Cloud tels que Compute Engine, Google Kubernetes Engine (GKE) et les fonctions Cloud Run. 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, comme les performances des modèles, 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 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 pleinement 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 ou des coûts des ressources.
Utilisez Looker ou Looker Studio pour créer des rapports et des tableaux de bord interactifs. Connectez les tableaux de bord et les rapports à différentes 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 tombe en dessous d'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 qui prennent en charge 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 charge maximale.
- Efficacité améliorée : vous permettez à votre équipe de se concentrer 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.
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 |
|
Commencez par 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 :
- Réduction des coûts dès le départ : moins de puissance de calcul, de stockage et de temps de traitement peuvent entraîner une baisse des coûts lors des phases initiales d'expérimentation et de développement.
- Itération plus rapide : moins de temps d'entraînement est nécessaire, ce qui vous permet d'itérer plus rapidement, d'explorer d'autres approches et d'identifier plus efficacement les pistes prometteuses.
- Complexité réduite : le débogage, l'analyse et l'interprétation des résultats sont plus simples, ce qui accélère les cycles de développement.
- Utilisation efficace des ressources : moins de 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 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'ensemble du jeu de données.
- Faites des tests à l'aide de notebooks : commencez par des instances plus petites et faites-les évoluer selon vos besoins. Vous pouvez utiliser Vertex AI Workbench, un environnement de notebooks Jupyter géré qui convient parfaitement pour expérimenter différentes architectures de modèles et ensembles de données.
Commencez par des modèles plus simples ou pré-entraînés : utilisez Vertex AI 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 affiner les modèles sur des ensembles de données plus petits au départ.
- 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 de BigQuery.
Adapter la taille pour optimiser les ressources : utilisez l'infrastructure flexible de Google Cloudpour adapter la taille des ressources selon vos besoins. Commencez par des instances de petite taille, puis ajustez leur taille ou leur nombre si nécessaire.
Découvrir les besoins en ressources grâce aux tests
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 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 correctement les ressources que vous avez utilisées pour l'entraînement et le service.
Nous vous recommandons d'adopter l'approche suivante pour vos tests :
- Commencez par une configuration de base : commencez par une configuration de base basée sur vos estimations initiales des exigences de la charge de travail. Pour créer une référence, vous pouvez utiliser l'estimateur de coûts pour les nouvelles charges de travail ou un rapport sur la 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 à grande échelle, 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 de ressources disponibles pendant la phase d'expérimentation.
- Expérimentez de manière systématique : ajustez les 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 Vertex AI Predictions vous permettent d'expérimenter 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 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éfinissez des seuils de ressources et des objectifs d'amélioration en fonction des quotas : définissez des seuils à partir desquels le scaling commence à générer des rendements décroissants en termes de performances, comme une réduction minime 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ù le coût et les implications potentielles en termes de quota d'une mise à l'échelle supplémentaire ne sont plus justifiés par les gains de performances.
Affinez de manière itérative : répétez le processus de test avec des configurations affinées en fonction de vos résultats. Assurez-vous toujours que l'utilisation des ressources reste dans les limites des quotas qui vous sont alloués et qu'elle correspond aux seuils de rentabilité établis.
Utiliser MLOps pour réduire les inefficacités
Les entreprises utilisent de plus en plus le ML pour favoriser l'innovation et l'efficacité. Il est donc 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 des modèles au déploiement et à la surveillance.
Aligner le MLOps sur les facteurs de coûts
Pour profiter du MLOps et réduire vos 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ûts. Priorisez et adoptez les fonctionnalités MLOps qui s'attaquent aux facteurs de coûts les plus importants. Cette approche permet de garantir une voie gérable et efficace vers des économies 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 comme 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 qui peuvent être causées par des problèmes de version.
- Intégration et livraison continues (CI/CD) : Cloud Build et Artifact Registry vous permettent d'implémenter des pipelines CI/CD pour automatiser la création, le test 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 des modèles, d'optimiser l'allocation des ressources et d'éviter les temps d'arrêt ou la dégradation des performances, qui peuvent être coûteux.
- Réentraînement des modèles : Vertex AI Pipelines simplifie les processus de réentraînement des modèles de manière périodique ou lorsque leurs performances se dégradent. Lorsque vous utilisez Vertex AI Pipelines pour le réentraînement, cela permet de s'assurer 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 évaluation 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 de manière précoce, à éviter les problèmes coûteux en production et à réduire la nécessité de tests manuels approfondis.
Pour en savoir plus, consultez MLOps : Pipelines de livraison continue et d'automatisation dans le machine learning.
Appliquer les 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 vos 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 se lancent dans la transformation numérique. Un framework robuste pour la gouvernance des données est essentiel 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, 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 de gouvernance des données préexistants, tels que ceux publiés par l'EDM Council, avec des options disponibles pour différents secteurs et différentes 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 propose les services et outils suivants pour vous aider à implémenter un framework de gouvernance des données robuste :
Dataplex Universal 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 en un seul endroit. Cela permet de réduire les coûts de distribution et de gestion 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 Dataplex Universal Catalog et configurez des lacs et des zones de données logiques.
- Pour gérer l'accès aux lacs et aux zones de données, utilisez les groupes Google et les rôles Dataplex Universal Catalog.
- Pour simplifier les processus de qualité des données, activez la qualité automatique des données.
Dataplex Universal Catalog est également un service de gestion des métadonnées entièrement géré et évolutif. Le catalogue fournit une base qui garantit l'accessibilité et la réutilisabilité des éléments de données.
- Les métadonnées des sources Google Cloud compatibles sont automatiquement ingérées dans le catalogue universel. Pour les sources de données en dehors de Google Cloud, créez des entrées personnalisées.
- Pour améliorer la détectabilité et la gestion des composants de données, enrichissez les métadonnées techniques avec des métadonnées métier à l'aide des aspects.
- Assurez-vous que les data scientists et les spécialistes du ML disposent des autorisations suffisantes pour accéder à Dataplex Universal Catalog et utiliser la fonction Rechercher.
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 organisés peuvent être affichés sous forme de fiches.
- Utilisez les 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 spécialistes 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 caractéristiques réutilisables tout au long du cycle de vie du ML
Pour bénéficier d'une efficacité et d'une rentabilité considérables, 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 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 les ensembles de données et les fonctionnalités :
- Les spécialistes 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 Dataplex Universal Catalog 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 caractéristiques via BigQuery.
- Vous pouvez stocker des données non structurées dans Cloud Storage et les gérer à l'aide des tables d'objets BigQuery et des 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 liés à la technologie et au 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 de ML.
Pour automatiser et simplifier le développement du ML avec MLOps, tenez compte des recommandations suivantes.
Automatiser et standardiser la collecte et le traitement des données
Pour réduire l'effort 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é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 besoins, tels 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 .
- Les lacs de données tels que Cloud Storage avec BigLake.
- Dataplex Universal Catalog pour gouverner les données provenant de différentes sources.
- Plates-formes de streaming d'événements 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 diverses sources, avec intégration de composants de ML. Pour une architecture événementielle, 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é.
- Fonctions Cloud Run : 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 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 (mise à l'échelle des caractéristiques, encodage des variables catégorielles et création de caractéristiques) par lot, en flux ou en temps réel. Les outils que vous sélectionnez dépendent de vos besoins et des services choisis.
- Utilisez Vertex AI Feature Store pour automatiser la création et la gestion des caractéristiques. 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 Dataplex Universal Catalog. Il vous aide à standardiser les définitions de données et à assurer la cohérence dans toute 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 une orchestration automatisés. Pour en savoir plus, consultez la section suivante.
Automatiser les pipelines d'entraînement et réutiliser les ressources existantes
Pour améliorer l'efficacité et la productivité dans MLOps, les pipelines d'entraînement automatisés sont essentiels. Google Cloud offre un ensemble robuste d'outils et de services permettant de créer et de déployer des pipelines d'entraînement, en mettant l'accent sur la réutilisation des assets existants. Les pipelines d'entraînement automatisés permettent d'accélérer le développement de modèles, d'assurer la cohérence et de réduire les efforts inutiles.
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 comportant plusieurs étapes et dépendances. Vous pouvez définir chaque étape comme une tâche conteneurisée distincte, ce qui vous aide à gérer et à mettre à l'échelle facilement les tâches individuelles. |
|
Gestion des versions : suivez et contrôlez différentes versions de pipelines et de composants pour assurer la reproductibilité et l'auditabilité. | Stockez les 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 Cloud Logging et Cloud Monitoring. Pour en savoir plus, consultez Surveiller les ressources en continu avec des tableaux de bord, des alertes et des rapports. |
Élargir la réutilisabilité au-delà des pipelines
Recherchez des opportunités pour étendre la réutilisabilité au-delà des pipelines d'entraînement. Voici quelques exemples de fonctionnalités Google Cloud qui vous permettent de réutiliser des fonctionnalités, des ensembles de données, des modèles et du code de ML.
- Vertex AI Feature Store fournit un dépôt centralisé pour organiser, stocker et diffuser des caractéristiques de ML. Elle 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 l'effort extraction de caractéristiques. Vous pouvez stocker, partager et accéder à des caractéristiques 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 les ensembles de données de manière centralisée. Votre organisation peut ainsi 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 Dataplex Universal Catalog.
- 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 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, 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 offre une suite puissante d'outils et de services pour simplifier et automatiser l'évaluation et l'ajustement des modèles. Ces outils et services peuvent vous aider à réduire le temps nécessaire à la 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 minimiser le gaspillage de ressources de calcul.
Utiliser une évaluation et une expérimentation de modèle efficaces en termes de ressources
Commencez un projet d'IA avec des tests avant de faire évoluer votre solution. 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 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 des informations ou de déployer la mauvaise version en production, utilisez Vertex AI Experiments avant d'implémenter des jobs d'entraînement ou de déploiement à 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 pour la production.
- Analysez les métriques de performances du modèle et comparez-les à celles 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 Vertex AI Model Monitoring 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 grâce aux 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 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 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é de Vertex AI. 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 tels que les suivants :
- Réglage Vertex AI pour affiner de manière supervisée Gemini, Imagen et d'autres modèles.
- Vertex AI Training ou Ray sur Vertex AI 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 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 sur des exemples qui sont liées à vos tests Vertex AI.
- 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é des modèles.
- 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, 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 à un redémarrage à zéro à 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 Notebook sont essentiels pour des tests de ML rentables. 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 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 inutiles.
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 de Vertex AI Workbench et Colab Enterprise.
Vertex AI Workbench est un environnement de développement de notebooks Jupyter pour l'ensemble du workflow de data science. Vous pouvez interagir avec Vertex AI et d'autres services Google Cloudà partir du notebook Jupyter d'une instance. Les intégrations et les fonctionnalités de Vertex AI Workbench vous aident à 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.
- Automatisez les mises à jour récurrentes d'un modèle à l'aide d'exécutions programmées de code qui s'exécutent 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 d'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 à l'aide d'Identity and Access Management (IAM).
- Interagissez avec les fonctionnalités intégrées à Vertex AI 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 comme 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 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 la nécessité 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 et combinez-les pour créer un processus de développement de ML de bout en bout.
Vertex AI 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, comme la famille de modèles Gemini et Imagen pour la génération d'images.
- Modèles Open Source tels que 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 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 comprendre sa structure et sa 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 l'audio en texte. Cette API est compatible avec un grand nombre 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 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 robots 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 d'optimisation
Pour réduire le besoin en données volumineuses et en 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 des adaptateurs (réglage des paramètres avec optimisation) : 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 des modèles à l'aide de Vertex AI Studio
Vertex AI 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 médias, la traduction et la parole. 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 considérables en termes de coûts 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 :
- 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, le scaling et la maintenance de l'infrastructure, ce qui réduit les frais opérationnels.
- Les prédictions Vertex AI gèrent le scaling de l'infrastructure, l'équilibrage de charge et le routage des requêtes. Vous bénéficiez d'une disponibilité et de performances élevées 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 (réglage des hyperparamètres, affinement des modèles, entraînement des modèles distribués et apprentissage par renforcement à partir du feedback humain) 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'utilisation des ressources.
Contributeurs
Auteurs :
- Isaac Lo | Responsable du développement commercial de l'IA
- Anastasia Prokaeva | Architecte de solutions terrain, IA générative
- Amy Southwood | Consultante en solutions techniques, Analyse de données et IA
Autres contributeurs :
- Filipe Gracio, PhD | Ingénieur client
- 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