Ce document du Google Cloud Well-Architected Framework décrit les principes et les recommandations pour vous aider à concevoir, créer et gérer des charges de travail d'IA et de ML dans Google Cloud qui répondent à vos objectifs opérationnels, de sécurité, de fiabilité, de coût et de performances.
Ce document s'adresse aux décideurs, aux architectes, aux administrateurs, aux développeurs et aux opérateurs qui conçoivent, créent, déploient et gèrent des charges de travail d'IA et de ML dans Google Cloud.
Les pages suivantes décrivent les principes et les recommandations spécifiques à l'IA et au ML pour chaque pilier du Well-Architected Framework :
- Enjeux spécifiques à l'IA et au ML : excellence opérationnelle
- Enjeux spécifiques à l'IA et au ML : sécurité
- Enjeux spécifiques à l'IA et au ML : fiabilité
- Perspective de l'IA et du ML : optimisation des coûts
- Perspective de l'IA et du ML : optimisation des performances
Contributeurs
Auteurs :
- Benjamin Sadik | Ingénieur client spécialiste en IA et ML
- Charlotte Gistelinck, PhD | ingénieur partenaire
- Filipe Gracio, PhD | Ingénieur client
- Isaac Lo | Responsable du développement commercial de l'IA
- Kamilla Kurta | Ingénieure client spécialiste en IA générative/ML
- Mohamed Fawzi | Responsable de la sécurité et de la conformité pour le Benelux
- Rick (Rugui) Chen | Architecte de solutions d'infrastructure d'IA
- Sannya Dang | Architecte de solutions d'IA
Autres contributeurs :
- Daniel Lees | Architecte en sécurité cloud
- Gary Harmson | Architecte principal
- Jose Andrade | Ingénieur client pour l'infrastructure d'entreprise
- 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
- Radhika Kanakam | Senior Program Manager, Cloud GTM
- Ryan Cox | Architecte principal
- Samantha He | Rédactrice technique
- Stef Ruinard | Architecte de solutions d'IA générative
- Wade Holmes | Directeur des solutions mondiales
- Zach Seils | Spécialiste en gestion des réseaux
Enjeux spécifiques à l'IA et au ML : excellence opérationnelle
Ce document du framework Well-Architected : perspective de l'IA et du ML fournit une présentation des principes et des recommandations pour créer et exploiter des systèmes d'IA et de ML robustes sur Google Cloud. Ces recommandations vous aident à configurer des éléments fondamentaux tels que l'observabilité, l'automatisation et l'évolutivité. Les recommandations de ce document sont conformes au pilier d'excellence opérationnelle du framework Google Cloud Well-Architected.
L'excellence opérationnelle dans le domaine de l'IA et du ML consiste à déployer, gérer et gouverner de manière fluide les systèmes et les pipelines d'IA et de ML qui contribuent à atteindre les objectifs stratégiques de votre organisation. L'excellence opérationnelle vous permet de répondre efficacement aux changements, de réduire la complexité opérationnelle et de vous assurer que vos opérations restent alignées sur vos objectifs commerciaux.
Les recommandations de ce document sont associées aux principes fondamentaux suivants :
- Établir des bases solides pour le développement de modèles
- Automatiser le cycle de vie du développement de modèles
- Implémenter l'observabilité
- Instaurer une culture de l'excellence opérationnelle
- Concevoir des solutions évolutives
Établir une base solide pour le développement de modèles
Pour développer et déployer des systèmes d'IA évolutifs et fiables qui vous aident à atteindre vos objectifs commerciaux, il est essentiel de disposer d'une base solide pour le développement de modèles. Cette base permet des workflows cohérents, automatise les étapes critiques afin de réduire les erreurs et garantit que les modèles peuvent évoluer en fonction de la demande. Une base solide pour le développement de modèles garantit que vos systèmes de ML peuvent être mis à jour, améliorés et réentraînés de manière fluide. Elle vous aide également à aligner les performances de vos modèles sur les besoins de l'entreprise, à déployer rapidement des solutions d'IA efficaces et à vous adapter aux exigences changeantes.
Pour établir une base solide pour développer vos modèles d'IA, tenez compte des recommandations suivantes.
Définir les problèmes et les résultats souhaités
Avant de commencer un projet d'IA ou de ML, vous devez bien comprendre les problèmes commerciaux à résoudre et les résultats requis. Commencez par définir les objectifs commerciaux et décomposez-les en indicateurs clés de performance (KPI) mesurables. Pour organiser et documenter vos définitions de problèmes et vos hypothèses dans un environnement de notebook Jupyter, utilisez des outils tels que Vertex AI Workbench. Pour implémenter le contrôle des versions pour le code et les documents, et pour documenter vos projets, vos objectifs et vos hypothèses, utilisez des outils comme Git. Pour développer et gérer des requêtes pour les applications d'IA générative, vous pouvez utiliser Vertex AI Studio.
Collecter et prétraiter les données nécessaires
Pour implémenter le prétraitement et la transformation des données, vous pouvez utiliser Dataflow (pour Apache Beam), Dataproc (pour Apache Spark) ou BigQuery si un processus basé sur SQL est approprié. Pour valider les schémas et détecter les anomalies, utilisez TensorFlow Data Validation (TFDV) et profitez des analyses automatisées de la qualité des données dans BigQuery, le cas échéant.
Pour l'IA générative, la qualité des données inclut la précision, la pertinence, la diversité et l'adéquation avec les caractéristiques de sortie requises. Lorsque les données réelles sont insuffisantes ou déséquilibrées, vous pouvez générer des données synthétiques pour améliorer la robustesse et la généralisation du modèle. Pour créer des ensembles de données synthétiques basés sur des modèles existants ou pour augmenter les données d'entraînement afin d'améliorer les performances des modèles, utilisez BigQuery DataFrames et Gemini. Les données synthétiques sont particulièrement utiles pour l'IA générative, car elles peuvent contribuer à améliorer la diversité des requêtes et la robustesse globale des modèles. Lorsque vous créez des ensembles de données pour affiner des modèles d'IA générative, pensez à utiliser les fonctionnalités de génération de données synthétiques dans Vertex AI.
Pour les tâches d'IA générative telles que l'affinage ou l'apprentissage par renforcement utilisant le feedback humain (RLHF), assurez-vous que les libellés reflètent précisément la qualité, la pertinence et la sécurité des résultats générés.
Sélectionner une approche de ML appropriée
Lorsque vous concevez votre modèle et vos paramètres, tenez compte de la complexité et des besoins de calcul du modèle. Selon la tâche (classification, régression ou génération, par exemple), envisagez d'utiliser l'entraînement personnalisé Vertex AI pour créer un modèle personnalisé ou AutoML pour les tâches de ML plus simples. Pour les applications courantes, vous pouvez également accéder aux modèles pré-entraînés via Vertex AI Model Garden. Vous pouvez tester différents modèles de fondation de pointe pour divers cas d'utilisation, comme la génération de texte, d'images et de code.
Vous pouvez affiner un modèle de fondation préentraîné pour obtenir des performances optimales pour votre cas d'utilisation spécifique. Pour répondre aux exigences de hautes performances lors de l'entraînement personnalisé, configurez des Cloud Tensor Processing Units (TPU) ou des ressources GPU pour accélérer l'entraînement et l'inférence des modèles de deep learning, comme les grands modèles de langage (LLM) et les modèles de diffusion.
Configurer le contrôle des versions pour le code, les modèles et les données
Pour gérer et déployer efficacement les versions de code, utilisez des outils tels que GitHub ou GitLab. Ces outils offrent des fonctionnalités de collaboration robustes, des stratégies de branching et une intégration aux pipelines CI/CD pour garantir un processus de développement simplifié.
Utilisez des solutions appropriées pour gérer chaque artefact de votre système de ML, comme les exemples suivants :
- Pour les artefacts de code tels que les images de conteneurs et les composants de pipeline, Artifact Registry fournit une solution de stockage évolutive qui peut contribuer à améliorer la sécurité. Artifact Registry inclut également la gestion des versions et peut s'intégrer à Cloud Build et Cloud Deploy.
- Pour gérer les artefacts de données, comme les ensembles de données utilisés pour l'entraînement et l'évaluation, utilisez des solutions telles que BigQuery ou Cloud Storage pour le stockage et le contrôle des versions.
- Pour stocker les métadonnées et les pointeurs vers les emplacements des données, utilisez votre système de gestion des versions ou un catalogue de données distinct.
Pour assurer la cohérence et le contrôle des versions de vos données de caractéristiques, utilisez Vertex AI Feature Store. Pour suivre et gérer les artefacts de modèle, y compris les binaires et les métadonnées, utilisez Vertex AI Model Registry, qui vous permet de stocker, d'organiser et de déployer des versions de modèle de manière fluide.
Pour assurer la fiabilité des modèles, implémentez Vertex AI Model Monitoring. Détectez la dérive des données, suivez les performances et identifiez les anomalies en production. Pour les systèmes d'IA générative, surveillez les changements dans la qualité des résultats et la conformité en termes de sécurité.
Automatiser le cycle de vie du développement de modèles
L'automatisation vous aide à rationaliser chaque étape du cycle de vie de l'IA et du ML. L'automatisation réduit les efforts manuels et standardise les processus, ce qui améliore l'efficacité opérationnelle et réduit le risque d'erreurs. Les workflows automatisés permettent d'accélérer l'itération, de déployer de manière cohérente dans tous les environnements et d'obtenir des résultats plus fiables. Vos systèmes peuvent ainsi évoluer et s'adapter de manière fluide.
Pour automatiser le cycle de vie du développement de vos systèmes d'IA et de ML, tenez compte des recommandations suivantes.
Utiliser un système d'orchestration de pipeline géré
Utilisez Vertex AI Pipelines pour automatiser chaque étape du cycle de vie du ML, de la préparation des données à l'entraînement, l'évaluation et le déploiement des modèles. Pour accélérer le déploiement et favoriser la cohérence entre les projets, automatisez les tâches récurrentes avec les exécutions de pipeline planifiées, surveillez les workflows avec les métriques d'exécution et développez des modèles de pipeline réutilisables pour les workflows standardisés. Ces fonctionnalités s'étendent aux modèles d'IA générative, qui nécessitent souvent des étapes spécialisées telles que l'ingénierie des requêtes, le filtrage des réponses et l'évaluation human-in-the-loop. Pour l'IA générative, Vertex AI Pipelines peut automatiser ces étapes, y compris l'évaluation des résultats générés par rapport aux métriques de qualité et aux consignes de sécurité. Pour améliorer la diversité des requêtes et la robustesse des modèles, les workflows automatisés peuvent également inclure des techniques d'augmentation des données.
Implémenter des pipelines CI/CD
Pour automatiser la création, le test et le déploiement de modèles de ML, utilisez Cloud Build. Ce service est particulièrement efficace lorsque vous exécutez des suites de tests pour le code d'application, ce qui garantit que l'infrastructure, les dépendances et le packaging du modèle répondent à vos exigences de déploiement.
Les systèmes de ML nécessitent souvent des étapes supplémentaires au-delà des tests de code. Par exemple, vous devez effectuer des tests de résistance des modèles sous différentes charges, effectuer des évaluations groupées pour évaluer les performances des modèles sur divers ensembles de données et valider l'intégrité des données avant le réentraînement. Pour simuler des charges de travail réalistes pour les tests de contrainte, vous pouvez utiliser des outils tels que Locust, Grafana k6 ou Apache JMeter. Pour identifier les goulots d'étranglement, surveillez les métriques clés telles que la latence, le taux d'erreur et l'utilisation des ressources à l'aide de Cloud Monitoring. Pour l'IA générative, les tests doivent également inclure des évaluations spécifiques au type de contenu généré, comme la qualité du texte, la fidélité des images ou la fonctionnalité du code. Ces évaluations peuvent impliquer des métriques automatisées telles que la perplexité pour les modèles de langage ou une évaluation humaine pour les aspects plus nuancés comme la créativité et la sécurité.
Pour implémenter des tâches de test et d'évaluation, vous pouvez intégrer Cloud Build à d'autres services Google Cloud . Par exemple, vous pouvez utiliser Vertex AI Pipelines pour l'évaluation automatisée des modèles, BigQuery pour l'analyse de données à grande échelle et la validation du pipeline Dataflow pour la validation des caractéristiques.
Vous pouvez améliorer davantage votre pipeline CI/CD en utilisant Vertex AI pour l'entraînement continu afin d'activer le réentraînement automatisé des modèles sur de nouvelles données. Plus précisément pour l'IA générative, afin de maintenir la pertinence et la diversité des résultats générés, le réentraînement peut impliquer la mise à jour automatique des modèles avec de nouvelles données ou requêtes d'entraînement. Vous pouvez utiliser Vertex AI Model Garden pour sélectionner les derniers modèles de base disponibles pour le réglage. Cette pratique permet de s'assurer que les modèles restent à jour et optimisés pour les besoins évolutifs de votre entreprise.
Implémenter des versions de modèles sécurisées et contrôlées
Pour minimiser les risques et assurer des déploiements fiables, implémentez une approche de publication de modèle qui vous permet de détecter les problèmes rapidement, de valider les performances et d'effectuer un rollback rapidement si nécessaire.
Pour empaqueter vos modèles et applications de ML dans des images de conteneurs et les déployer, utilisez Cloud Deploy. Vous pouvez déployer vos modèles sur des points de terminaison Vertex AI.
Mettez en œuvre des versions contrôlées pour vos applications et systèmes d'IA en utilisant des stratégies telles que les versions Canary. Pour les applications qui utilisent des modèles gérés comme Gemini, nous vous recommandons de déployer progressivement les nouvelles versions de l'application auprès d'un sous-ensemble d'utilisateurs avant le déploiement complet. Cette approche vous permet de détecter les problèmes potentiels de manière précoce, en particulier lorsque vous utilisez des modèles d'IA générative dont les sorties peuvent varier.
Pour publier des modèles affinés, vous pouvez utiliser Cloud Deploy pour gérer le déploiement des versions de modèle et utiliser la stratégie de version Canary pour minimiser les risques. Avec les modèles gérés et les modèles affinés, l'objectif des versions contrôlées est de tester les modifications auprès d'une audience limitée avant de déployer les applications et les modèles auprès de tous les utilisateurs.
Pour une validation robuste, utilisez Vertex AI Experiments pour comparer les nouveaux modèles à ceux existants, et Vertex AI Model Evaluation pour évaluer les performances des modèles. Pour l'IA générative en particulier, définissez des métriques d'évaluation qui correspondent au cas d'utilisation prévu et aux risques potentiels. Vous pouvez utiliser le service d'évaluation de l'IA générative dans Vertex AI pour évaluer des métriques telles que la toxicité, la cohérence, l'exactitude factuelle et le respect des consignes de sécurité.
Pour garantir la fiabilité du déploiement, vous avez besoin d'un plan de restauration fiable. Pour les systèmes de ML traditionnels, utilisez Vertex AI Model Monitoring pour détecter la dérive des données et la dégradation des performances. Pour les modèles d'IA générative, vous pouvez suivre les métriques pertinentes et configurer des alertes en cas de changement de la qualité des résultats ou d'apparition de contenu dangereux. Pour ce faire, utilisez l'évaluation de modèles Vertex AI avec Cloud Logging et Cloud Monitoring. Configurez des alertes basées sur des métriques spécifiques à l'IA générative pour déclencher des procédures de restauration si nécessaire. Pour suivre la lignée du modèle et revenir à la dernière version stable, utilisez les insights de Vertex AI Model Registry.
Implémenter l'observabilité
Le comportement des systèmes d'IA et de ML peut changer au fil du temps en raison de modifications apportées aux données ou à l'environnement, ainsi que de mises à jour des modèles. Cette nature dynamique rend l'observabilité essentielle pour détecter les problèmes de performances, les biais ou les comportements inattendus. C'est particulièrement vrai pour les modèles d'IA générative, car les résultats peuvent être très variables et subjectifs. L'observabilité vous permet de résoudre de manière proactive les comportements inattendus et de vous assurer que vos systèmes d'IA et de ML restent fiables, précis et équitables.
Pour implémenter l'observabilité de vos systèmes d'IA et de ML, tenez compte des recommandations suivantes.
Surveiller les performances en continu
Utilisez des métriques et des critères de réussite pour évaluer en continu les modèles après leur déploiement.
Vous pouvez utiliser Vertex AI Model Monitoring pour suivre de manière proactive les performances du modèle, identifier les écarts entre l'entraînement et le service, ainsi que la dérive des prédictions, et recevoir des alertes pour déclencher le réentraînement du modèle ou d'autres interventions nécessaires. Pour surveiller efficacement le décalage entraînement/diffusion, créez un ensemble de données de référence qui représente la distribution idéale des données, puis utilisez TFDV pour analyser vos données d'entraînement et établir un schéma de référence.
Configurez la surveillance des modèles pour comparer la distribution des données d'entrée à l'ensemble de données de référence afin de détecter automatiquement les écarts. Pour les modèles de ML traditionnels, concentrez-vous sur les métriques telles que la justesse, la précision, le rappel, le score F1, l'AUC-ROC et la perte logarithmique. Définissez des seuils personnalisés pour les alertes dans Model Monitoring. Pour l'IA générative, utilisez le service d'évaluation de l'IA générative pour surveiller en continu les résultats du modèle en production. Vous pouvez également activer les métriques d'évaluation automatique pour la qualité des réponses, la sécurité, le respect des instructions, l'ancrage, le style d'écriture et la verbosité. Pour évaluer la qualité, la pertinence, la sécurité et le respect des consignes des résultats générés, vous pouvez intégrer une évaluation human-in-the-loop.
Créez des boucles de rétroaction pour réentraîner automatiquement les modèles avec Vertex AI Pipelines lorsque Model Monitoring déclenche une alerte. Utilisez ces insights pour améliorer vos modèles en continu.
Évaluer les modèles pendant le développement
Avant de déployer vos LLM et autres modèles d'IA générative, évaluez-les minutieusement pendant la phase de développement. Utilisez Vertex AI Model Evaluation pour obtenir des performances optimales et réduire les risques. Utilisez l'évaluation rapide Vertex AI pour permettre à Google Cloud d'exécuter automatiquement des évaluations en fonction de l'ensemble de données et des requêtes que vous fournissez.
Vous pouvez également définir et intégrer des métriques personnalisées spécifiques à votre cas d'utilisation. Pour obtenir des commentaires sur le contenu généré, intégrez des workflows avec intervention humaine à l'aide de Vertex AI Model Evaluation.
Utilisez des tests antagonistes pour identifier les failles et les modes de défaillance potentiels. Pour identifier et atténuer les biais potentiels, utilisez des techniques telles que l'analyse des sous-groupes et la génération de données contrefactuelles. Utilisez les insights recueillis lors des évaluations effectuées pendant la phase de développement pour définir votre stratégie de surveillance des modèles en production. Préparez votre solution pour la surveillance continue, comme décrit dans la section Surveiller les performances en continu de ce document.
Surveiller la disponibilité
Pour obtenir de la visibilité sur l'état et les performances de vos points de terminaison et de votre infrastructure déployés, utilisez Cloud Monitoring. Pour vos points de terminaison Vertex AI, suivez les métriques clés telles que le taux de requêtes, le taux d'erreur, la latence et l'utilisation des ressources, et configurez des alertes pour les anomalies. Pour en savoir plus, consultez Métriques Cloud Monitoring pour Vertex AI.
Surveillez l'état de l'infrastructure sous-jacente, qui peut inclure des instances Compute Engine, des clusters Google Kubernetes Engine (GKE), ainsi que des TPU et des GPU. Obtenez des recommandations d'optimisation automatisées d'Active Assist. Si vous utilisez l'autoscaling, surveillez le comportement de scaling pour vous assurer qu'il répond de manière appropriée aux changements dans les schémas de trafic.
Suivez l'état des déploiements de modèles, y compris les versions Canary et les rollbacks, en intégrant Cloud Deploy à Cloud Monitoring. De plus, surveillez les menaces et les failles de sécurité potentielles à l'aide de Security Command Center.
Configurer des alertes personnalisées pour des seuils spécifiques à votre activité
Pour identifier et corriger rapidement les anomalies et les problèmes, configurez des alertes personnalisées basées sur des seuils spécifiques à vos objectifs commerciaux. Voici quelques exemples de produits Google Cloud que vous pouvez utiliser pour implémenter un système d'alerte personnalisé :
- Cloud Logging : collectez, stockez et analysez les journaux de tous les composants de votre système d'IA et de ML.
- Cloud Monitoring : créez des tableaux de bord personnalisés pour visualiser les métriques et les tendances clés, et définissez des métriques personnalisées en fonction de vos besoins. Configurez des alertes pour recevoir des notifications sur les problèmes critiques, et intégrez-les à vos outils de gestion des incidents tels que PagerDuty ou Slack.
- Error Reporting : capturez et analysez automatiquement les erreurs et les exceptions.
- Cloud Trace : analysez les performances des systèmes distribués et identifiez les goulots d'étranglement. Le traçage est particulièrement utile pour comprendre la latence entre les différents composants de votre pipeline d'IA et de ML.
- Cloud Profiler : analysez en continu les performances de votre code en production et identifiez les goulots d'étranglement en termes d'utilisation du processeur ou de la mémoire.
Développer une culture de l'excellence opérationnelle
Passez de la simple création de modèles à la création de solutions d'IA durables, fiables et efficaces. Permettez aux équipes d'apprendre, d'innover et de s'améliorer en continu, ce qui permet d'accélérer les cycles de développement, de réduire les erreurs et d'accroître l'efficacité. En donnant la priorité à l'automatisation, à la standardisation et aux considérations éthiques, vous pouvez vous assurer que vos initiatives d'IA et de ML apportent de la valeur de manière cohérente, atténuent les risques et favorisent le développement d'une IA responsable.
Pour développer une culture d'excellence opérationnelle pour vos systèmes d'IA et de ML, tenez compte des recommandations suivantes.
Promouvoir l'automatisation et la standardisation
Pour mettre l'accent sur l'efficacité et la cohérence, intégrez l'automatisation et les pratiques standardisées à chaque étape du cycle de vie de l'IA et du ML. L'automatisation réduit les erreurs manuelles et permet aux équipes de se concentrer sur l'innovation. La standardisation garantit que les processus sont reproductibles et évolutifs pour les équipes et les projets.
Priorité à l'apprentissage et à l'amélioration continus
Favorisez un environnement où la formation continue et l'expérimentation sont des principes fondamentaux. Encouragez les équipes à se tenir au courant des avancées de l'IA et du ML, et à tirer des enseignements des projets passés. Une culture de la curiosité et de l'adaptation stimule l'innovation et permet aux équipes de relever de nouveaux défis.
Cultiver la responsabilité et l'appropriation
Établissez la confiance et l'alignement en définissant clairement les rôles, les responsabilités et les métriques de réussite. Permettez aux équipes de prendre des décisions éclairées dans ces limites et établissez des méthodes transparentes pour mesurer les progrès. Un sentiment d'appartenance motive les équipes et garantit une responsabilité collective vis-à-vis des résultats.
Intégrer des considérations éthiques et de sécurité liées à l'IA
Priorisez les considérations éthiques à chaque étape du développement. Encouragez les équipes à réfléchir de manière critique à l'impact de leurs solutions d'IA et à favoriser les discussions sur l'équité, les biais et l'impact sociétal. Des principes clairs et des mécanismes de responsabilisation permettent de s'assurer que vos systèmes d'IA sont en accord avec les valeurs de votre organisation et favorisent la confiance.
Concevoir pour l'évolutivité
Pour faire face à l'augmentation des volumes de données et des demandes des utilisateurs, et pour maximiser la valeur des investissements dans l'IA, vos systèmes d'IA et de ML doivent être évolutifs. Les systèmes doivent s'adapter et fonctionner de manière optimale pour éviter les goulots d'étranglement des performances qui nuisent à l'efficacité. Lorsque vous concevez une solution évolutive, vous vous assurez que l'infrastructure d'IA peut gérer la croissance et maintenir la réactivité. Utilisez une infrastructure évolutive, planifiez la capacité et employez des stratégies telles que le scaling horizontal et les services gérés.
Pour concevoir des systèmes d'IA et de ML évolutifs, tenez compte des recommandations suivantes.
Planifier la capacité et les quotas
Évaluez la croissance future et planifiez la capacité de votre infrastructure et les quotas de ressources en conséquence. Collaborez avec les parties prenantes de l'entreprise pour comprendre la croissance prévue, puis définissez les exigences d'infrastructure en conséquence.
Utilisez Cloud Monitoring pour analyser l'utilisation historique des ressources, identifier les tendances et prévoir les besoins futurs. Effectuez régulièrement des tests de charge pour simuler des charges de travail et identifier les goulots d'étranglement.
Familiarisez-vous avec les Google Cloud quotas des services que vous utilisez, tels que Compute Engine, Vertex AI et Cloud Storage. Demandez de manière proactive des augmentations de quota dans la console Google Cloud et justifiez-les avec des données de prévision et de tests de charge. Surveillez l'utilisation des quotas et configurez des alertes pour recevoir des notifications lorsque l'utilisation approche des limites de quota.
Pour optimiser l'utilisation des ressources en fonction de la demande, redimensionnez vos ressources, utilisez des VM Spot pour les charges de travail par lot tolérantes aux pannes et implémentez l'autoscaling.
Se préparer aux pics d'activité
Assurez-vous que votre système peut gérer les pics soudains de trafic ou de charge de travail lors des événements de pointe. Documentez votre stratégie pour les événements de pointe et effectuez des exercices réguliers pour tester la capacité de votre système à gérer une charge accrue.
Pour augmenter rapidement les ressources lorsque la demande augmente, configurez des règles d'autoscaling dans Compute Engine et GKE. Pour les pics prévisibles, envisagez d'utiliser l'autoscaling prédictif. Pour déclencher l'autoscaling en fonction de signaux spécifiques à l'application, utilisez des métriques personnalisées dans Cloud Monitoring.
Répartissez le trafic entre plusieurs instances d'application à l'aide de Cloud Load Balancing. Choisissez un type d'équilibreur de charge adapté aux besoins de votre application. Pour les utilisateurs répartis géographiquement, vous pouvez utiliser l'équilibrage de charge global pour acheminer le trafic vers l'instance disponible la plus proche. Pour les architectures complexes basées sur des microservices, envisagez d'utiliser Cloud Service Mesh.
Mettez en cache le contenu statique à la périphérie du réseau Google à l'aide de Cloud CDN. Pour mettre en cache les données fréquemment consultées, vous pouvez utiliser Memorystore, qui propose un service en mémoire entièrement géré pour Redis, Valkey ou Memcached.
Découplez les composants de votre système en utilisant Pub/Sub pour la messagerie en temps réel et Cloud Tasks pour l'exécution de tâches asynchrones.
Faire évoluer des applications pour la production
Pour assurer un service évolutif en production, vous pouvez utiliser des services gérés tels que l'entraînement distribué Vertex AI et l'inférence Vertex AI. Vertex AI Inference vous permet de configurer les types de machines pour vos nœuds de prédiction lorsque vous déployez un modèle sur un point de terminaison ou que vous demandez des prédictions par lot. Pour certaines configurations, vous pouvez ajouter des GPU. Choisissez le type de machine et les accélérateurs appropriés pour optimiser la latence, le débit et les coûts.
Pour mettre à l'échelle des applications d'IA et Python complexes, ainsi que des charges de travail personnalisées sur des ressources de calcul distribuées, vous pouvez utiliser Ray sur Vertex AI. Cette fonctionnalité peut vous aider à optimiser les performances et permet une intégration fluide avec les servicesGoogle Cloud . Ray sur Vertex AI simplifie le calcul distribué en gérant la gestion des clusters, la planification des tâches et le transfert de données. Il s'intègre à d'autres services Vertex AI, comme l'entraînement, la prédiction et les pipelines. Ray offre une tolérance aux pannes et un autoscaling, et vous aide à adapter l'infrastructure aux charges de travail évolutives. Il offre un framework unifié pour l'entraînement distribué, le réglage des hyperparamètres, l'apprentissage par renforcement et la mise en service de modèles. Utilisez Ray pour le prétraitement distribué des données avec Dataflow ou Dataproc, l'entraînement accéléré des modèles, l'optimisation évolutive des hyperparamètres, l'apprentissage par renforcement et la prédiction par lot parallélisée.
Contributeurs
Auteurs :
- Charlotte Gistelinck, PhD | ingénieur partenaire
- Sannya Dang | Architecte de solutions d'IA
- Filipe Gracio, PhD | Ingénieur client
Autres contributeurs :
- Gary Harmson | Architecte principal
- Kumar Dhanagopal Développeur de solutions multiproduits
- Marwan Al Shawi | Partner Customer Engineer
- Ryan Cox | Architecte principal
- Stef Ruinard | Architecte de solutions d'IA générative
Enjeux spécifiques à l'IA et au ML : sécurité
Ce document du framework Well-Architected : perspective de l'IA et du ML présente les principes et recommandations permettant de s'assurer que vos déploiements d'IA et de ML répondent aux exigences de sécurité et de conformité de votre organisation. Les recommandations de ce document sont conformes au pilier de sécurité du framework Google Cloud Well-Architected.
Le déploiement sécurisé des charges de travail d'IA et de ML est une exigence essentielle, en particulier dans les environnements d'entreprise. Pour répondre à cette exigence, vous devez adopter une approche globale de la sécurité qui commence par la conceptualisation initiale de vos solutions d'IA et de ML, et s'étend au développement, au déploiement et aux opérations en cours. Google Cloud propose des outils et des services robustes conçus pour vous aider à sécuriser vos charges de travail d'IA et de ML.
Définir des objectifs et des exigences clairs
Il est plus facile d'intégrer les contrôles de sécurité et de conformité requis au début de votre processus de conception et de développement que de les ajouter après le développement. Dès le début de votre processus de conception et de développement, prenez des décisions adaptées à votre environnement de risque et à vos priorités commerciales spécifiques.
Tenez compte des recommandations suivantes :
- Identifiez les vecteurs d'attaque potentiels et adoptez une perspective de sécurité et de conformité dès le départ. Lorsque vous concevez et faites évoluer vos systèmes d'IA, gardez une trace de la surface d'attaque, des risques potentiels et des obligations auxquels vous pourriez être confronté.
- Alignez vos efforts de sécurité liés à l'IA et au ML sur vos objectifs commerciaux, et assurez-vous que la sécurité fait partie intégrante de votre stratégie globale. Comprenez les effets de vos choix de sécurité sur vos principaux objectifs commerciaux.
Sécuriser les données et éviter leur perte ou leur mauvaise gestion
Les données sont un élément précieux et sensible qui doit être protégé. La sécurité des données vous aide à maintenir la confiance des utilisateurs, à atteindre vos objectifs commerciaux et à respecter vos exigences de conformité.
Tenez compte des recommandations suivantes :
- Ne collectez, ne conservez ni n'utilisez pas de données qui ne sont pas strictement nécessaires à vos objectifs commerciaux. Si possible, utilisez des données synthétiques ou entièrement anonymisées.
- Surveillez la collecte, le stockage et la transformation des données. Conservez les journaux de toutes les activités d'accès aux données et de manipulation de données. Les journaux vous aident à auditer les accès aux données, à détecter les tentatives d'accès non autorisées et à empêcher les accès indésirables.
- Implémentez différents niveaux d'accès (par exemple, aucun accès, lecture seule ou écriture) en fonction des rôles utilisateur. Assurez-vous que les autorisations sont attribuées en fonction du principe du moindre privilège. Les utilisateurs ne doivent disposer que des autorisations minimales nécessaires pour leur permettre d'effectuer les activités liées à leur rôle.
- Mettez en œuvre des mesures telles que le chiffrement, les périmètres sécurisés et les restrictions sur le déplacement des données. Ces mesures vous aident à éviter l'exfiltration et la perte de données.
- Protégez vos systèmes d'entraînement ML contre l'empoisonnement des données.
Sécuriser les pipelines d'IA et les protéger contre les accès non autorisés
Votre code d'IA et de ML, ainsi que les pipelines définis par le code, sont des éléments essentiels. Un code non sécurisé peut être falsifié, ce qui peut entraîner des fuites de données, un non-respect de la conformité et une perturbation des activités commerciales critiques. La sécurisation de votre code d'IA et de ML permet de garantir l'intégrité et la valeur de vos modèles et de leurs résultats.
Tenez compte des recommandations suivantes :
- Utilisez des pratiques de codage sécurisées, telles que la gestion des dépendances ou la validation et l'assainissement des entrées, lors du développement du modèle pour éviter les failles.
- Protégez le code de votre pipeline et vos artefacts de modèle (fichiers, pondérations de modèle et spécifications de déploiement, par exemple) contre les accès non autorisés. Implémentez différents niveaux d'accès pour chaque artefact en fonction des rôles et des besoins des utilisateurs.
- Appliquez la traçabilité et le suivi de vos composants et exécutions de pipelines. Cette application vous aide à répondre aux exigences de conformité et à éviter de compromettre les systèmes de production.
Déployer sur des systèmes sécurisés avec des outils et des artefacts sécurisés
Assurez-vous que votre code et vos modèles s'exécutent dans un environnement sécurisé doté d'un système de contrôle des accès robuste, avec des garanties de sécurité pour les outils et les artefacts déployés dans l'environnement.
Tenez compte des recommandations suivantes :
- Entraînez et déployez vos modèles dans un environnement sécurisé doté de contrôles d'accès appropriés et d'une protection contre l'utilisation ou la manipulation non autorisées.
- Suivez les consignes standards des niveaux de la chaîne d'approvisionnement pour les artefacts logiciels (SLSA) pour vos artefacts spécifiques à l'IA, comme les modèles et les packages logiciels.
- Nous vous recommandons d'utiliser des images de conteneur prédéfinies validées et spécialement conçues pour les charges de travail d'IA.
Protéger et surveiller les entrées
Les systèmes d'IA ont besoin d'entrées pour faire des prédictions, générer du contenu ou automatiser des actions. Certaines entrées peuvent présenter des risques ou être utilisées comme vecteurs d'attaque qui doivent être détectés et assainis. Détecter les potentielles entrées malveillantes au plus tôt vous aide à sécuriser vos systèmes d'IA et à les faire fonctionner comme prévu.
Tenez compte des recommandations suivantes :
- Mettez en place des pratiques sécurisées pour développer et gérer les requêtes destinées aux systèmes d'IA générative, et assurez-vous qu'elles sont examinées pour détecter toute intention malveillante.
- Surveillez les entrées des systèmes prédictifs ou génératifs pour éviter les problèmes, comme les points de terminaison surchargés ou les requêtes que les systèmes ne sont pas conçus pour traiter.
- Assurez-vous que seuls les utilisateurs prévus d'un système déployé peuvent l'utiliser.
Surveiller, évaluer et préparer les réponses aux résultats
Les systèmes d'IA sont utiles, car ils produisent des résultats qui augmentent, optimisent ou automatisent la prise de décision humaine. Pour préserver l'intégrité et la fiabilité de vos systèmes et applications d'IA, vous devez vous assurer que les résultats sont sécurisés et qu'ils respectent les paramètres attendus. Vous devez également prévoir un plan de réponse aux incidents.
Tenez compte des recommandations suivantes :
- Surveillez les résultats de vos modèles d'IA et de ML en production, et identifiez les problèmes de performances, de sécurité et de conformité.
- Évaluez les performances du modèle en implémentant des métriques et des mesures de sécurité robustes, comme l'identification des réponses génératives hors champ ou des résultats extrêmes dans les modèles prédictifs. Recueillez les commentaires des utilisateurs sur les performances du modèle.
- Mettez en œuvre des procédures d'alerte et de gestion des incidents robustes pour résoudre tout problème potentiel.
Contributeurs
Auteurs :
- Kamilla Kurta | Ingénieure client spécialiste en IA générative/ML
- Filipe Gracio, PhD | Ingénieur client
- Mohamed Fawzi | Responsable de la sécurité et de la conformité pour le Benelux
Autres contributeurs :
- Daniel Lees | Architecte en sécurité cloud
- Kumar Dhanagopal Développeur de solutions multiproduits
- Marwan Al Shawi | Partner Customer Engineer
- Wade Holmes | Directeur des solutions mondiales
Enjeux spécifiques à l'IA et au ML : fiabilité
Ce document du framework Well-Architected : perspective de l'IA et du ML fournit une présentation des principes et des recommandations pour concevoir et exploiter des systèmes d'IA et de ML fiables sur Google Cloud. Il explique comment intégrer des pratiques de fiabilité et d'observabilité avancées dans vos plans architecturaux. Les recommandations de ce document sont conformes au pilier de fiabilité du framework Google Cloud Well-Architected.
Dans le paysage de l'IA et du ML, qui évolue rapidement, des systèmes fiables sont essentiels pour assurer la satisfaction des clients et atteindre les objectifs commerciaux. Vous avez besoin de systèmes d'IA et de ML robustes, fiables et adaptables pour répondre aux exigences uniques du ML prédictif et de l'IA générative. Pour gérer la complexité des MLOps (du développement au déploiement, en passant par l'amélioration continue), vous devez adopter une approche axée sur la fiabilité. Google Cloud offre une infrastructure d'IA spécialement conçue, alignée sur les principes de l'ingénierie de la fiabilité des sites (SRE), qui fournit une base solide pour des systèmes d'IA et de ML fiables.
Assurez-vous que l'infrastructure est évolutive et disponibilité élevée.
En concevant votre architecture pour l'évolutivité et la disponibilité, vous permettez à vos applications de gérer différents niveaux de demande sans interruption de service ni dégradation des performances. Cela signifie que vos services d'IA restent disponibles pour les utilisateurs en cas de panne d'infrastructure et lorsque le trafic est très élevé.
Tenez compte des recommandations suivantes :
- Concevez vos systèmes d'IA avec des capacités de scaling automatique et dynamique pour gérer les fluctuations de la demande. Cela permet de garantir des performances optimales, même en cas de pics de trafic.
- Gérez les ressources de manière proactive et anticipez les besoins futurs grâce aux tests de charge et à la surveillance des performances. Utilisez les données historiques et l'analyse prédictive pour prendre des décisions éclairées sur l'allocation des ressources.
- Concevez votre architecture pour la haute disponibilité et la tolérance aux pannes en adoptant les archétypes de déploiement multizones et multirégionaux dans Google Cloud et en implémentant la redondance et la réplication.
- Répartissez le trafic entrant sur plusieurs instances de vos services et points de terminaison d'IA et de ML. L'équilibrage de charge permet d'éviter toute surcharge d'une instance unique et de garantir des performances et une disponibilité cohérentes.
Utiliser une architecture modulaire et faiblement couplée
Pour rendre vos systèmes d'IA résilients aux défaillances de composants individuels, utilisez une architecture modulaire. Par exemple, concevez les composants de traitement et de validation des données sous forme de modules distincts. Lorsqu'un composant particulier tombe en panne, l'architecture modulaire permet de minimiser les temps d'arrêt et permet à vos équipes de développer et de déployer des correctifs plus rapidement.
Tenez compte des recommandations suivantes :
- Divisez votre système d'IA et de ML en petits modules ou composants autonomes. Cette approche favorise la réutilisation du code, simplifie les tests et la maintenance, et vous permet de développer et de déployer des composants individuels de manière indépendante.
- Concevez les modules faiblement couplés avec des interfaces bien définies. Cette approche minimise les dépendances et vous permet d'effectuer des mises à jour et des modifications indépendantes sans affecter l'ensemble du système.
- Planifiez une dégradation élégante. Lorsqu'un composant tombe en panne, les autres parties du système doivent continuer à fournir un niveau de fonctionnalité adéquat.
- Utilisez des API pour créer des limites claires entre les modules et pour masquer les détails d'implémentation au niveau du module. Cette approche vous permet de mettre à jour ou de remplacer des composants individuels sans affecter les interactions avec d'autres parties du système.
Créer une plate-forme MLOps automatisée
Avec une plate-forme MLOps automatisée, les étapes et les résultats du cycle de vie de votre modèle sont plus fiables. En favorisant la cohérence, le découplage et la modularité, et en exprimant les opérations et l'infrastructure sous forme de code, vous éliminez les étapes manuelles fragiles et vous maintenez des systèmes d'IA et de ML plus robustes et fiables.
Tenez compte des recommandations suivantes :
- Automatisez le cycle de vie du développement de modèles, de la préparation et de la validation des données à l'entraînement, à l'évaluation, au déploiement et à la surveillance des modèles.
- Gérez votre infrastructure en tant que code (IaC). Cette approche permet un contrôle efficace des versions, des rollbacks rapides si nécessaire et des déploiements reproductibles.
- Validez que vos modèles se comportent comme prévu avec les données pertinentes. Automatisez la surveillance des performances de vos modèles et créez des alertes appropriées pour les sorties inattendues.
- Validez les entrées et les sorties de vos pipelines d'IA et de ML. Par exemple, validez les données, les configurations, les arguments de commande, les fichiers et les prédictions. Configurer des alertes pour les valeurs inattendues ou non autorisées
- Adoptez une stratégie de contrôle des versions gérée pour vos points de terminaison de modèle. Ce type de stratégie permet des versions incrémentielles et une récupération rapide en cas de problème.
Préserver la confiance et le contrôle grâce à la gouvernance des données et des modèles
La fiabilité des systèmes d'IA et de ML dépend des fonctionnalités de confiance et de gouvernance de vos données et modèles. Les résultats de l'IA peuvent ne pas répondre aux attentes de manière silencieuse. Par exemple, les résultats peuvent être cohérents d'un point de vue formel, mais incorrects ou indésirables. En mettant en œuvre la traçabilité et une gouvernance solide, vous pouvez vous assurer que les résultats sont fiables.
Tenez compte des recommandations suivantes :
- Utilisez un catalogue de données et de modèles pour suivre et gérer efficacement vos composants. Pour faciliter le traçage et les audits, conservez un enregistrement complet des versions de données et de modèles tout au long du cycle de vie.
- Implémentez des contrôles d'accès et des journaux d'audit stricts pour protéger les données et les modèles sensibles.
- Aborder le problème critique des biais dans l'IA, en particulier dans les applications d'IA générative. Pour renforcer la confiance, visez la transparence et l'explicabilité dans les résultats des modèles.
- Automatisez la génération de statistiques sur les caractéristiques et implémentez la détection des anomalies pour identifier de manière proactive les problèmes de données. Pour garantir la fiabilité du modèle, mettez en place des mécanismes permettant de détecter et d'atténuer l'impact des modifications apportées aux distributions de données.
Mettre en œuvre des pratiques holistiques d'observabilité et de fiabilité de l'IA et du ML
Pour améliorer en continu vos opérations d'IA, vous devez définir des objectifs de fiabilité pertinents et mesurer vos progrès. L'observabilité est un élément fondamental des systèmes fiables. L'observabilité vous permet de gérer les opérations en cours et les événements critiques. Une observabilité bien implémentée vous aide à créer et à maintenir un service fiable pour vos utilisateurs.
Tenez compte des recommandations suivantes :
- Suivez les métriques d'infrastructure pour les processeurs (CPU, GPU et TPU) et pour d'autres ressources telles que l'utilisation de la mémoire, la latence du réseau et l'utilisation du disque. Effectuez des tests de charge et surveillez les performances. Utilisez les résultats des tests et les métriques de surveillance pour gérer le scaling et la capacité de vos systèmes d'IA et de ML.
- Définissez des objectifs de fiabilité et suivez les métriques des applications. Mesurez des métriques telles que le débit et la latence pour les applications d'IA que vous créez. Surveillez les schémas d'utilisation de vos applications et des points de terminaison exposés.
- Établissez des métriques spécifiques au modèle, comme des indicateurs de précision ou de sécurité, afin d'évaluer la fiabilité du modèle. Suivez ces métriques au fil du temps pour identifier toute dérive ou dégradation. Pour un contrôle des versions et une automatisation efficaces, définissez les configurations de surveillance en tant que code.
- Définissez et suivez les métriques au niveau de l'entreprise pour comprendre l'impact de vos modèles et de leur fiabilité sur les résultats commerciaux. Pour mesurer la fiabilité de vos services d'IA et de ML, envisagez d'adopter l'approche SRE et de définir des objectifs de niveau de service (SLO).
Contributeurs
Auteurs :
- Rick (Rugui) Chen | Architecte de solutions d'infrastructure d'IA
- Filipe Gracio, PhD | Ingénieur client
Autres contributeurs :
- Jose Andrade | Ingénieur client pour l'infrastructure d'entreprise
- Kumar Dhanagopal Développeur de solutions multiproduits
- Marwan Al Shawi | Partner Customer Engineer
Enjeux spécifiques à l'IA et au ML : optimisation des coûts
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
Enjeux spécifiques à l'IA et au ML : optimisation des performances
Ce document du Framework Well-Architected : perspective de l'IA et du ML fournit une présentation des principes et des recommandations pour vous aider à optimiser les performances de vos charges de travail d'IA et de ML sur Google Cloud. Les recommandations de ce document s'alignent sur le pilier d'optimisation des performances du framework Google Cloud Well-Architected.
Les systèmes d'IA et de ML offrent de nouvelles fonctionnalités d'automatisation et de prise de décision pour votre organisation. Les performances de ces systèmes peuvent avoir une incidence directe sur vos moteurs d'activité, comme les revenus, les coûts et la satisfaction client. Pour exploiter tout le potentiel de vos systèmes d'IA et de ML, vous devez optimiser leurs performances en fonction de vos objectifs commerciaux et de vos exigences techniques. Le processus d'optimisation des performances implique souvent certains compromis. Par exemple, un choix de conception qui fournit les performances requises peut entraîner des coûts plus élevés. Les recommandations de ce document privilégient les performances par rapport à d'autres considérations, comme les coûts.
Pour optimiser les performances de l'IA et du ML, vous devez prendre des décisions concernant des facteurs tels que l'architecture du modèle, les paramètres et la stratégie d'entraînement. Lorsque vous prenez ces décisions, tenez compte de l'ensemble du cycle de vie des systèmes d'IA et de ML, ainsi que de leur environnement de déploiement. Par exemple, les LLM très volumineux peuvent être très performants sur une infrastructure d'entraînement massive, mais ils peuvent ne pas fonctionner correctement dans des environnements à capacité limitée, comme les appareils mobiles.
Traduire les objectifs commerciaux en objectifs de performances
Pour prendre des décisions architecturales qui optimisent les performances, commencez par définir clairement vos objectifs commerciaux. Concevez des systèmes d'IA et de ML qui offrent les performances techniques nécessaires pour atteindre vos objectifs et priorités commerciales. Vos équipes techniques doivent comprendre le mappage entre les objectifs de performances et les objectifs commerciaux.
Tenez compte des recommandations suivantes :
- Traduire les objectifs commerciaux en exigences techniques : traduisez les objectifs commerciaux de vos systèmes d'IA et de ML en exigences de performances techniques spécifiques, et évaluez les conséquences du non-respect de ces exigences. Par exemple, pour une application qui prédit le churn des clients, le modèle de ML doit obtenir de bons résultats sur les métriques standards, comme la précision et le rappel, et l'application doit répondre aux exigences opérationnelles, comme une faible latence.
- Surveillez les performances à toutes les étapes du cycle de vie du modèle : pendant l'expérimentation et l'entraînement après le déploiement du modèle, surveillez vos indicateurs clés de performance (KPI) et notez toute déviation par rapport aux objectifs commerciaux.
- Automatisez l'évaluation pour la rendre reproductible et standardisée : grâce à une plate-forme et une méthodologie standardisées et comparables pour l'évaluation des tests, vos ingénieurs peuvent accélérer l'amélioration des performances.
Effectuer et suivre des tests fréquents
Pour transformer l'innovation et la créativité en amélioration des performances, vous avez besoin d'une culture et d'une plate-forme qui favorisent l'expérimentation. L'amélioration des performances est un processus continu, car les technologies d'IA et de ML se développent en permanence et rapidement. Pour maintenir un processus itératif et rapide, vous devez séparer l'espace d'expérimentation de vos plates-formes d'entraînement et de diffusion. Il est important de disposer d'un processus d'expérimentation standardisé et robuste.
Tenez compte des recommandations suivantes :
- Créer un environnement de test : pour améliorer les performances, vous avez besoin d'un environnement dédié, puissant et interactif qui prend en charge l'expérimentation et le développement collaboratif des pipelines de ML.
- Intégrez l'expérimentation à votre culture : effectuez des tests avant tout déploiement en production. Publiez de nouvelles versions de manière itérative et collectez toujours des données sur les performances. Testez différents types de données, transformations de caractéristiques, algorithmes et hyperparamètres.
Créer et automatiser des services d'entraînement et de diffusion
L'entraînement et la diffusion de modèles d'IA sont des composants essentiels de vos services d'IA. Vous avez besoin de plates-formes et de pratiques robustes qui permettent de créer, de déployer et de diffuser des modèles d'IA de manière rapide et fiable. Consacrez du temps et des efforts à la création de plates-formes de base pour vos tâches principales d'entraînement et de diffusion de l'IA. Ces plates-formes fondamentales aident vos équipes à gagner du temps et à réduire leurs efforts, et à améliorer la qualité des résultats à moyen et long terme.
Tenez compte des recommandations suivantes :
- Utilisez des composants spécialisés dans l'IA d'un service d'entraînement : ces composants incluent le calcul hautes performances et les composants MLOps tels que les feature stores, les registres de modèles, les magasins de métadonnées et les services d'évaluation des performances des modèles.
- Utilisez des composants spécialisés dans l'IA d'un service de prédiction : ces composants fournissent des ressources évolutives et hautes performances, prennent en charge la surveillance des caractéristiques et permettent de surveiller les performances des modèles. Pour éviter et gérer la dégradation des performances, implémentez des stratégies de déploiement et de restauration fiables.
Adapter les choix de conception aux exigences de performances
Lorsque vous faites des choix de conception pour améliorer les performances, évaluez soigneusement s'ils répondent à vos exigences commerciales ou s'ils sont inutiles et contre-productifs. Pour choisir l'infrastructure, les modèles ou les configurations appropriés, identifiez les goulots d'étranglement des performances et évaluez leur lien avec vos mesures de performances. Par exemple, même sur des accélérateurs GPU très puissants, vos tâches d'entraînement peuvent rencontrer des goulots d'étranglement en raison de problèmes d'E/S de données provenant de la couche de stockage ou de limites de performances du modèle lui-même.
Tenez compte des recommandations suivantes :
- Optimiser la consommation de matériel en fonction des objectifs de performances : pour entraîner et diffuser des modèles de ML qui répondent à vos exigences de performances, vous devez optimiser l'infrastructure au niveau des couches de calcul, de stockage et de réseau. Vous devez mesurer et comprendre les variables qui affectent vos objectifs de performances. Ces variables sont différentes pour l'entraînement et l'inférence.
- Concentrez-vous sur les exigences spécifiques aux charges de travail : concentrez vos efforts d'optimisation des performances sur les exigences uniques de vos charges de travail d'IA et de ML. Appuyez-vous sur des services gérés pour les performances de l'infrastructure sous-jacente.
- Choisir des stratégies d'entraînement appropriées : plusieurs modèles pré-entraînés et de base sont disponibles, et d'autres sont régulièrement publiés. Choisissez une stratégie d'entraînement qui peut offrir des performances optimales pour votre tâche. Décidez si vous devez créer votre propre modèle, ajuster un modèle pré-entraîné sur vos données ou utiliser une API de modèle pré-entraîné.
- Sachez que les stratégies d'optimisation des performances peuvent avoir des rendements décroissants : lorsqu'une stratégie d'optimisation des performances particulière ne fournit pas de valeur commerciale incrémentale mesurable, arrêtez de la poursuivre.
Associer les métriques de performances aux choix de conception et de configuration
Pour innover, résoudre les problèmes et examiner les problèmes de performances, établissez un lien clair entre les choix de conception et les résultats en termes de performances. En plus de l'expérimentation, vous devez enregistrer de manière fiable la lignée de vos composants, déploiements, sorties de modèle, ainsi que les configurations et les entrées qui ont produit les sorties.
Tenez compte des recommandations suivantes :
- Créez un système de traçabilité des données et des modèles : tous vos composants déployés et leurs métriques de performances doivent être associés aux données, aux configurations, au code et aux choix qui ont permis de déployer les systèmes. De plus, les sorties de modèle doivent être associées à des versions de modèle spécifiques et à la façon dont les sorties ont été produites.
- Utilisez des outils d'explication pour améliorer les performances du modèle : adoptez et standardisez les outils et les benchmarks pour l'exploration et l'explication des modèles. Ces outils aident vos ingénieurs en ML à comprendre le comportement des modèles, à améliorer leurs performances ou à supprimer les biais.
Contributeurs
Auteurs :
- Benjamin Sadik | Ingénieur client spécialiste en IA et ML
- Filipe Gracio, PhD | Ingénieur client
Autres contributeurs :
- Kumar Dhanagopal Développeur de solutions multiproduits
- Marwan Al Shawi | Partner Customer Engineer
- Zach Seils | Spécialiste en gestion des réseaux