Well-Architected Framework: perspective sur l'IA et le ML

Last reviewed 2025-02-14 UTC

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 :

Contributeurs

Auteurs :

Autres contributeurs :

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 une base solide pour le développement de modèles

Pour développer et déployer des systèmes d'IA fiables et évolutifs 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 requis

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 à les décomposer 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 tels que 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 à des 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 les versions de modèle de manière fluide.

Pour assurer la fiabilité du modèle, 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 des applications 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 pipelines planifiées, surveillez les workflows avec les métriques d'exécution et développez des modèles de pipelines réutilisables pour les workflows standardisés. Ces capacité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 des pipelines 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 l'évolution des besoins 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 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 robuste. 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 en utilisant 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 des modèles 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 la conformité 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 atténuer 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, atténuent les risques et favorisent le développement d'une IA responsable de manière cohérente.

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 moyens transparents 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 des solutions évolutives

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 sa 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 vos systèmes d'IA et de ML de manière à ce qu'ils soient évolutifs, tenez compte des recommandations suivantes.

Planifier la capacité et les quotas

Évaluez votre croissance future et planifiez la capacité de votre infrastructure et vos 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 issues des prévisions et des 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'événements

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.

Mettre à l'échelle les applications pour la production

Pour assurer un service évolutif en production, vous pouvez utiliser des services gérés tels que Vertex AI Distributed Training et Vertex AI Inference. 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 changeantes. 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 :

Autres contributeurs :

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 holistique de la sécurité qui commence dès 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 spécifique 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 auxquelles 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 l'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 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 les artefacts de votre modèle (fichiers, pondérations du 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 :

Autres contributeurs :

Enjeux spécifiques à l'IA et au ML : fiabilité

Ce document du Google Cloud 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. Pour répondre aux exigences uniques du ML prédictif et de l'IA générative, vous avez besoin de systèmes d'IA et de ML robustes, fiables et adaptables. 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.

Les recommandations de ce document sont associées aux principes fondamentaux suivants :

S'assurer que l'infrastructure de ML est évolutive et à disponibilité élevée

Les systèmes d'IA et de ML fiables dans le cloud nécessitent une infrastructure évolutive et à disponibilité élevée. Ces systèmes ont des exigences dynamiques, des besoins variés en ressources et des dépendances critiques vis-à-vis de la disponibilité des modèles. Les architectures évolutives s'adaptent aux fluctuations de charge et aux variations du volume de données ou des demandes d'inférence. La haute disponibilité permet d'assurer la résilience en cas de défaillance au niveau des composants, des zones ou des régions.

Pour créer une infrastructure de ML évolutive et à disponibilité élevée, tenez compte des recommandations suivantes.

Implémenter des capacités de scaling automatique et dynamique

Les charges de travail d'IA et de ML sont dynamiques, avec une demande qui fluctue en fonction des taux d'arrivée des données, de la fréquence d'entraînement et du volume de trafic d'inférence. La mise à l'échelle automatique et dynamique adapte de manière fluide les ressources d'infrastructure aux fluctuations de la demande. La mise à l'échelle efficace de vos charges de travail permet d'éviter les temps d'arrêt, de maintenir les performances et d'optimiser les coûts.

Pour autoscaler vos charges de travail d'IA et de ML, utilisez les produits et fonctionnalités suivants dans Google Cloud :

  • Pipelines de traitement des données : créez des pipelines de données dans Dataflow. Configurez les pipelines pour qu'ils utilisent la fonctionnalité d'autoscaling horizontal de Dataflow, qui ajuste de manière dynamique le nombre d'instances de nœuds de calcul en fonction de l'utilisation du processeur, du parallélisme du pipeline et des données en attente. Vous pouvez configurer les paramètres d'autoscaling à l'aide des options de pipeline lorsque vous lancez des jobs.
  • Jobs d'entraînement : automatisez la mise à l'échelle des jobs d'entraînement à l'aide de l'entraînement personnalisé Vertex AI. Vous pouvez définir les spécifications du pool de nœuds de calcul, telles que le type de machine, le type et le nombre d'accélérateurs, et le nombre de pools de nœuds de calcul. Pour les jobs qui peuvent tolérer les interruptions et pour ceux dont le code d'entraînement implémente la création de points de contrôle, vous pouvez réduire les coûts en utilisant des VM Spot.
  • Inférence en ligne : pour l'inférence en ligne, utilisez les points de terminaison Vertex AI. Pour activer l'autoscaling, configurez le nombre minimal et maximal de réplicas. Spécifiez au moins deux répliques pour la haute disponibilité. Vertex AI ajuste automatiquement le nombre d'instances répliquées en fonction du trafic et des métriques d'autoscaling configurées, telles que l'utilisation du processeur et l'utilisation des instances répliquées.
  • Charges de travail conteneurisées dans Google Kubernetes Engine : configurez l'autoscaling au niveau des nœuds et des pods. Configurez l'autoscaler de cluster et le provisionnement automatique des nœuds pour ajuster le nombre de nœuds en fonction des demandes de ressources de pods en attente, comme le processeur, la mémoire, le GPU et le TPU. Utilisez l'autoscaler horizontal de pods (AHP) pour les déploiements afin de définir des règles de scaling basées sur des métriques telles que l'utilisation du processeur et de la mémoire. Vous pouvez également effectuer un scaling en fonction de métriques d'IA et de ML personnalisées, telles que l'utilisation du GPU ou du TPU, et les requêtes de prédiction par seconde.
  • Services conteneurisés sans serveur : déployez les services dans Cloud Run et configurez l'autoscaling en spécifiant le nombre minimal et maximal d'instances de conteneur. Suivez les bonnes pratiques pour autoscaler les instances compatibles avec les GPU en spécifiant le type d'accélérateur. Cloud Run adapte automatiquement les instances entre les limites minimales et maximales configurées en fonction des requêtes entrantes. En l'absence de requêtes, il s'adapte efficacement à zéro instance. Vous pouvez tirer parti du scaling automatique à la demande de Cloud Run pour déployer des agents Vertex AI et des charges de travail tierces, comme des modèles quantifiés à l'aide d'Ollama, l'inférence de modèles LLM à l'aide de vLLM et l'inférence de génération de texte (TGI) Hugging Face.

Concevoir des solutions à haute disponibilité et tolérantes aux pannes

Pour les charges de travail d'IA et de ML de niveau production, il est essentiel de garantir un fonctionnement continu et une résilience face aux défaillances. Pour implémenter la haute disponibilité et la tolérance aux pannes, vous devez intégrer la redondance et la réplication à votre architecture sur Google Cloud. Cette approche permet de s'assurer qu'une défaillance d'un composant individuel n'entraîne pas celle de l'ensemble du système.

Implémentez la redondance pour les composants critiques d'IA et de ML dans Google Cloud. Voici quelques exemples de produits et de fonctionnalités qui vous permettent d'implémenter la redondance des ressources :

  • Déployez des clusters régionaux GKE sur plusieurs zones.
  • Assurez la redondance des données pour les ensembles de données et les points de contrôle en utilisant des buckets Cloud Storage multirégionaux ou birégionaux.
  • Utilisez Spanner pour un stockage de métadonnées cohérent à l'échelle mondiale et disponibilité élevée.
  • Configurez des instances répliquées Cloud SQL avec accès en lecture pour les bases de données opérationnelles.
  • Assurez-vous que les bases de données vectorielles pour la génération augmentée de récupération (RAG) sont disponibilité élevée et multizones ou multirégionales.

Gérer les ressources de manière proactive et anticiper les besoins

Une gestion efficace des ressources est importante pour vous aider à optimiser les coûts, les performances et la fiabilité. Les charges de travail d'IA et de ML sont dynamiques et la demande en matériel spécialisé comme les GPU et les TPU est élevée. Il est donc essentiel d'appliquer une gestion proactive des ressources et de veiller à leur disponibilité.

Planifiez la capacité en fonction des données de surveillance historiques, telles que l'utilisation des GPU ou des TPU et les débits, à partir de Cloud Monitoring et des journaux dans Cloud Logging. Analysez ces données de télémétrie à l'aide de BigQuery ou de Looker Studio, et prévoyez la demande future de GPU en fonction de la croissance ou des nouveaux modèles. L'analyse des tendances et des schémas d'utilisation des ressources vous aide à prédire quand et où vous aurez besoin d'accélérateurs spécialisés critiques.

  • Validez les estimations de capacité grâce à des tests de charge rigoureux. Simulez le trafic sur les services d'IA et de ML tels que le serving et les pipelines à l'aide d'outils comme Apache JMeter ou LoadView.
  • Analysez le comportement du système sous contrainte.
    • Pour anticiper et répondre à l'augmentation des besoins en charge de travail en production, identifiez de manière proactive les besoins en ressources. Surveillez la latence, le débit, les erreurs et l'utilisation des ressources, en particulier l'utilisation des GPU et des TPU. Augmentez les quotas de ressources si nécessaire.
    • Pour le serving d'IA générative, effectuez des tests sous des charges simultanées élevées et identifiez le niveau auquel la disponibilité des accélérateurs limite les performances.
  • Effectuez une surveillance continue des requêtes de modèle et configurez des alertes proactives pour les agents.
    • Utilisez le tableau de bord d'observabilité des modèles pour afficher les métriques collectées par Cloud Monitoring, telles que les requêtes par seconde (RPS) du modèle, le débit de jetons et les latences du premier jeton.

Optimiser la disponibilité et l'accessibilité des ressources

Optimisez les coûts et assurez-vous de la disponibilité des ressources en sélectionnant stratégiquement les ressources de calcul appropriées en fonction des exigences de la charge de travail.

  • Pour les charges de travail d'inférence stables 24h/24 et 7j/7 ou d'entraînement avec des besoins en capacité fixes ou prévisibles, utilisez les remises sur engagement d'utilisation pour les VM et les accélérateurs.
  • Pour les nœuds GKE et les VM Compute Engine, utilisez les VM Spot et les fonctionnalités du planificateur de charges de travail dynamique (DWS) :

    • Pour les tâches tolérantes aux pannes, telles que les charges de travail d'évaluation et d'expérimentation, utilisez des VM spot. Les VM Spot peuvent être préemptées, mais elles peuvent vous aider à réduire vos coûts globaux.
    • Pour gérer le risque de préemption pour les accélérateurs à forte demande, vous pouvez assurer une meilleure disponibilité en utilisant DWS.
      • Pour l'entraînement par lot complexe qui nécessite des GPU haut de gamme pour s'exécuter jusqu'à sept jours, utilisez le mode DWS Flex-Start.
      • Pour les charges de travail de longue durée (jusqu'à trois mois), utilisez le mode "Calendrier" pour réserver des GPU (H100 et H200) et des TPU (Trillium) spécifiques.
  • Pour optimiser l'inférence d'IA sur GKE, vous pouvez exécuter un moteur vLLM qui utilise dynamiquement des TPU et des GPU pour répondre aux besoins fluctuants en termes de capacité et de performances. Pour en savoir plus, consultez Fongibilité des GPU/TPU vLLM.

  • Pour les scénarios avancés avec des besoins complexes en ressources et en topologie impliquant des accélérateurs, utilisez des outils pour abstraire la gestion des ressources.

    • Cluster Director vous permet de déployer et de gérer des groupes d'accélérateurs avec colocation et planification pour l'entraînement multi-GPU (A3 Ultra H200 et A4 B200). Cluster Director est compatible avec les clusters GKE et Slurm.
    • Ray sur Vertex AI abstrait l'infrastructure de calcul distribué. Il permet aux applications de demander des ressources pour l'entraînement et le service sans avoir à gérer directement les VM et les conteneurs.

Répartir le trafic entrant sur plusieurs instances

Un équilibrage de charge efficace est essentiel pour les applications d'IA dont la demande fluctue. L'équilibrage de charge répartit le trafic, optimise l'utilisation des ressources, offre une haute disponibilité et une faible latence, et contribue à garantir une expérience utilisateur fluide.

  • Inférence avec des besoins en ressources variables : implémentez l'équilibrage de charge en fonction des métriques du modèle. La passerelle d'inférence GKE vous permet de déployer des modèles derrière un équilibreur de charge avec un routage adapté aux modèles. La passerelle donne la priorité aux instances avec des accélérateurs GPU et TPU pour les tâches gourmandes en ressources de calcul, comme l'IA générative et l'inférence LLM. Configurez des vérifications d'état détaillées pour évaluer l'état du modèle. Utilisez des frameworks de diffusion tels que vLLM ou Triton pour les métriques LLM, et intégrez les métriques dans Cloud Monitoring à l'aide de Google Cloud Managed Service pour Prometheus.
  • Charges de travail d'inférence nécessitant des GPU ou des TPU : pour vous assurer que les charges de travail d'inférence critiques d'IA et de ML s'exécutent de manière cohérente sur des machines adaptées à leurs exigences, en particulier lorsque la disponibilité des GPU et des TPU est limitée, utilisez les classes de calcul personnalisées GKE. Vous pouvez définir des profils de calcul spécifiques avec des règles de remplacement pour l'autoscaling. Par exemple, vous pouvez définir un profil qui spécifie une priorité plus élevée pour les instances GPU ou TPU réservées. Le profil peut inclure un recours à des VM Spot économiques si les ressources réservées sont temporairement indisponibles.
  • IA générative sur diverses plates-formes d'orchestration : utilisez un équilibreur de charge centralisé. Par exemple, pour optimiser les coûts et la gestion, vous pouvez acheminer les requêtes qui nécessitent peu de GPU vers Cloud Run et les tâches plus complexes et gourmandes en GPU vers GKE. Pour la communication entre les services et la gestion des règles, implémentez un maillage de services à l'aide de Cloud Service Mesh. Assurez-vous d'avoir une journalisation et une surveillance cohérentes en utilisant Cloud Logging et Cloud Monitoring.
  • Distribution de charge mondiale : pour équilibrer la charge du trafic des utilisateurs du monde entier qui ont besoin d'une faible latence, utilisez un équilibreur de charge d'application externe global. Configurez le routage par géolocalisation vers la région la plus proche et implémentez le basculement. Établissez la réplication des points de terminaison régionaux dans Vertex AI ou GKE. Configurez Cloud CDN pour les éléments statiques. Surveillez le trafic et la latence mondiaux à l'aide de Cloud Monitoring.
  • Gestion précise du trafic : pour les requêtes qui comportent différents types de données ou qui sont complexes et de longue durée, implémentez une gestion précise du trafic.
    • Configurez le routage basé sur le contenu pour diriger les requêtes vers des backends spécialisés en fonction d'attributs tels que les chemins d'URL et les en-têtes. Par exemple, dirigez les requêtes vers des backends compatibles avec les GPU pour les modèles d'images ou de vidéos, et vers des backends optimisés pour les CPU pour les modèles basés sur du texte.
    • Pour les requêtes d'IA générative de longue durée ou les charges de travail par lot, utilisez WebSockets ou gRPC. Implémentez la gestion du trafic pour gérer les délais d'attente et la mise en mémoire tampon. Configurez les délais d'expiration et les nouvelles tentatives de requête, et implémentez la limitation du débit et les quotas à l'aide d'API Gateway ou d'Apigee.

Utiliser une architecture modulaire et faiblement couplée

Dans une architecture d'IA et de ML modulaire et faiblement couplée, les systèmes complexes sont divisés en composants plus petits et autonomes qui interagissent via des interfaces bien définies. Cette architecture minimise les dépendances des modules, simplifie le développement et les tests, améliore la reproductibilité et renforce la tolérance aux pannes en limitant les échecs. L'approche modulaire est essentielle pour gérer la complexité, accélérer l'innovation et assurer la maintenabilité à long terme.

Pour concevoir une architecture modulaire et faiblement couplée pour les charges de travail d'IA et de ML, tenez compte des recommandations suivantes.

Implémenter de petits modules ou composants autonomes

Séparez votre système d'IA et de ML de bout en bout en petits modules ou composants autonomes. Chaque module ou composant est responsable d'une fonction spécifique, telle que l'ingestion de données, la transformation de caractéristiques, l'entraînement de modèles, la diffusion d'inférences ou l'évaluation. Une conception modulaire offre plusieurs avantages clés pour les systèmes d'IA et de ML : une meilleure facilité de maintenance, une évolutivité accrue, une réutilisabilité, ainsi qu'une flexibilité et une agilité accrues.

Les sections suivantes décrivent les produits, fonctionnalités et outils Google Cloud que vous pouvez utiliser pour concevoir une architecture modulaire pour vos systèmes d'IA et de ML.

Microservices conteneurisés sur GKE

Pour les systèmes d'IA et de ML complexes ou les pipelines d'IA générative complexes qui nécessitent une orchestration précise, implémentez les modules en tant que microservices orchestrés à l'aide de GKE. Empaquetez chaque étape distincte sous la forme d'un microservice individuel dans des conteneurs Docker. Ces étapes distinctes incluent l'ingestion de données adaptée à différents formats, le prétraitement spécialisé des données ou l'extraction de caractéristiques, l'entraînement distribué des modèles ou l'ajustement précis des grands modèles de base, l'évaluation ou la diffusion.

Déployez les microservices conteneurisés sur GKE et profitez du scaling automatisé en fonction de l'utilisation du processeur et de la mémoire, ou de métriques personnalisées telles que l'utilisation du GPU, les mises à jour progressives et les configurations reproductibles dans les fichiers manifestes YAML. Assurez une communication efficace entre les microservices à l'aide de la détection de services GKE. Pour les modèles asynchrones, utilisez des files d'attente de messages comme Pub/Sub.

L'approche des microservices sur GKE vous aide à créer des plates-formes évolutives et résilientes pour des tâches telles que les applications RAG complexes, où les étapes peuvent être conçues comme des services distincts.

Services sans serveur basés sur des événements

Pour les tâches basées sur des événements qui peuvent bénéficier d'un scaling automatique sans serveur, utilisez Cloud Run ou Cloud Run Functions. Ces services sont idéaux pour les tâches asynchrones telles que le prétraitement ou pour les tâches d'inférence plus petites. Déclenchez des fonctions Cloud Run sur des événements, tels que la création d'un fichier de données dans Cloud Storage ou les mises à jour de modèles dans Artifact Registry. Pour les tâches ou services de webhook qui nécessitent un environnement de conteneur, utilisez Cloud Run.

Les services Cloud Run et les fonctions Cloud Run peuvent évoluer rapidement à la hausse et à la baisse (jusqu'à zéro), ce qui permet de garantir la rentabilité des charges de travail fluctuantes. Ces services conviennent aux composants modulaires des workflows Vertex AI Agents. Vous pouvez orchestrer des séquences de composants avec Workflows ou Application Integration.

Services gérés Vertex AI

Les services Vertex AI sont modulaires et vous aident à simplifier le développement et le déploiement de vos systèmes d'IA et de ML. Les services font abstraction des complexités de l'infrastructure pour vous permettre de vous concentrer sur la logique de l'application.

  • Pour orchestrer des workflows créés à partir d'étapes modulaires, utilisez Vertex AI Pipelines.
  • Pour exécuter du code d'IA et de ML personnalisé, empaquetez le code dans des conteneurs Docker pouvant s'exécuter sur des services gérés tels que l'entraînement personnalisé Vertex AI et la prédiction Vertex AI.
  • Pour les pipelines d'extraction de caractéristiques modulaires, utilisez Vertex AI Feature Store.
  • Pour l'exploration et le prototypage modulaires, utilisez des environnements de notebook tels que Vertex AI Workbench ou Colab Enterprise. Organisez votre code en fonctions, classes et scripts réutilisables.

Applications agentives

Pour les agents d'IA, l'Agent Development Kit (ADK) fournit des fonctionnalités modulaires telles que les outils et l'état. Pour activer l'interopérabilité entre des frameworks tels que LangChain, LangGraph, LlamaIndex et Vertex AI, vous pouvez combiner l'ADK avec le protocole Agent2Agent (A2A) et le protocole de contexte de modèle (MCP). Cette interopérabilité vous permet de composer des workflows agentiques à l'aide de divers composants.

Vous pouvez déployer des agents sur Vertex AI Agent Engine, qui est un environnement d'exécution géré et optimisé pour le déploiement d'agents évolutifs. Pour exécuter des agents conteneurisés, vous pouvez exploiter les capacités d'autoscaling de Cloud Run.

Concevoir des interfaces bien définies

Pour créer des systèmes logiciels robustes et faciles à entretenir, il est essentiel de s'assurer que les composants d'un système sont faiblement couplés et modularisés. Cette approche offre des avantages considérables, car elle réduit au minimum les dépendances entre les différentes parties du système. Lorsque les modules sont faiblement couplés, les modifications apportées à un module ont un impact minimal sur les autres modules. Cette isolation permet des mises à jour et des workflows de développement indépendants pour chaque module.

Les sections suivantes fournissent des conseils pour assurer une communication et une intégration fluides entre les modules de vos systèmes d'IA et de ML.

Choix du protocole

  • Pour un accès universel, utilisez des API HTTP, respectez les principes RESTful et utilisez JSON pour l'échange de données indépendant du langage. Concevez les points de terminaison de l'API pour représenter les actions sur les ressources.
  • Pour une communication interne performante entre les microservices, utilisez gRPC avec Protocol Buffers (ProtoBuf) pour une sérialisation efficace et un typage strict. Définissez des structures de données telles que ModelInput, PredictionResult ou les données de l'outil ADK à l'aide de fichiers .proto, puis générez des liaisons de langage.
  • Pour les cas d'utilisation où les performances sont essentielles, utilisez le streaming gRPC pour les grands ensembles de données ou pour les flux continus tels que les applications de synthèse vocale ou vidéo en direct. Déployez les services gRPC sur GKE.

Documentation standardisée et complète

Quel que soit le protocole d'interface que vous choisissez, une documentation standardisée est essentielle. La spécification OpenAPI décrit les API RESTful. Utilisez OpenAPI pour documenter vos API d'IA et de ML : chemins d'accès, méthodes, paramètres, formats de requête/réponse liés aux schémas JSON et sécurité. Une documentation API complète permet d'améliorer la détectabilité et l'intégration des clients. Pour la création et la visualisation d'API, utilisez des outils d'UI tels que Swagger Editor. Pour accélérer le développement et assurer la cohérence, vous pouvez générer des SDK clients et des stubs de serveur à l'aide d'outils de programmation assistée par l'IA tels que Gemini Code Assist. Intégrez la documentation OpenAPI à votre flux CI/CD.

Interaction avec les services gérés Google Cloud tels que Vertex AI

Choisissez entre l'abstraction plus élevée du SDK Vertex AI, qui est préférable pour la productivité du développement, et le contrôle précis fourni par l'API REST.

  • Le SDK Vertex AI simplifie les tâches et l'authentification. Utilisez le SDK lorsque vous devez interagir avec Vertex AI.
  • L'API REST est une alternative puissante, en particulier lorsque l'interopérabilité est requise entre les couches de votre système. Elle est utile pour les outils dans des langages qui ne disposent pas de SDK ou lorsque vous avez besoin d'un contrôle précis.

Utiliser des API pour isoler les modules et abstraire les détails d'implémentation

Pour assurer la sécurité, l'évolutivité et la visibilité, il est essentiel d'implémenter une gestion robuste des API pour vos services d'IA et de ML. Pour implémenter la gestion des API pour vos interfaces définies, utilisez les produits suivants :

  • API Gateway : pour les API exposées et gérées en externe, API Gateway fournit un point d'entrée centralisé et sécurisé. Il simplifie l'accès aux services de backend sans serveur, tels que les API de prédiction, d'entraînement et de données. API Gateway permet de regrouper les points d'accès, d'appliquer les contrats d'API et de gérer les fonctionnalités de sécurité telles que les clés API et OAuth 2.0. Pour protéger les backends contre la surcharge et assurer leur fiabilité, implémentez des limitation du débit et des quotas d'utilisation dans API Gateway.
  • Cloud Endpoints : pour simplifier le développement et le déploiement d'API sur GKE et Cloud Run, utilisez Cloud Endpoints, qui offre une solution conviviale pour les développeurs afin de générer des clés API. Il fournit également une surveillance et un traçage intégrés pour les appels d'API, et automatise la génération de spécifications OpenAPI, ce qui simplifie la documentation et l'intégration des clients. Vous pouvez utiliser Cloud Endpoints pour gérer l'accès aux API d'IA et de ML internes ou contrôlées, par exemple pour déclencher l'entraînement et gérer les feature stores.
  • Apigee : Apigee fournit une gestion avancée et complète des API pour l'IA et le ML à l'échelle de l'entreprise, en particulier pour les API d'IA générative sophistiquées. Utilisez Apigee pour une sécurité avancée (protection contre les menaces et OAuth 2.0, par exemple), pour la gestion du trafic (mise en cache, quotas et médiation, par exemple) et pour les données analytiques. Apigee peut vous aider à obtenir des insights approfondis sur les modèles d'utilisation, les performances et l'engagement des API, qui sont essentiels pour comprendre l'utilisation des API d'IA générative.

Planifier la dégradation élégante

Dans les systèmes d'IA et de ML de production, les défaillances de composants sont inévitables, tout comme dans les autres systèmes. La dégradation progressive garantit que les fonctions essentielles continuent de fonctionner, potentiellement avec des performances réduites. Cette approche permet d'éviter les pannes complètes et d'améliorer la disponibilité globale. La dégradation progressive est essentielle pour l'inférence sensible à la latence, l'entraînement distribué et l'IA générative.

Les sections suivantes décrivent les techniques que vous utilisez pour planifier et implémenter la dégradation progressive.

Isolement des défaillances

  • Pour isoler les composants défectueux dans les architectures distribuées, implémentez le modèle de disjoncteur à l'aide de bibliothèques de résilience, telles que Resilience4j en Java et CircuitBreaker en Python.
  • Pour éviter les défaillances en cascade, configurez des seuils basés sur les métriques de charge de travail d'IA et de ML, comme les taux d'erreur et la latence, et définissez des solutions de secours comme des modèles plus simples et des données mises en cache.

Redondance des composants

Pour les composants critiques, implémentez la redondance et le basculement automatique. Par exemple, utilisez des clusters GKE multizones ou régionaux, et déployez des services Cloud Run de manière redondante dans différentes régions. Pour acheminer le trafic vers des instances opérationnelles lorsque des instances non opérationnelles sont détectées, utilisez Cloud Load Balancing.

Assurez la redondance des données en utilisant des buckets Cloud Storage multirégionaux. Pour l'entraînement distribué, implémentez la création de points de contrôle asynchrones pour reprendre l'entraînement après des échecs. Pour un entraînement résilient et élastique, utilisez Pathways.

Surveillance proactive

La dégradation progressive permet d'assurer la disponibilité du système en cas de défaillance, mais vous devez également mettre en œuvre des mesures proactives pour les vérifications d'état continues et la surveillance complète. Collectez des métriques spécifiques à l'IA et au ML, telles que la latence, le débit et l'utilisation du GPU. Collectez également des métriques de dégradation des performances du modèle, comme la dérive des modèles et des données, à l'aide de Cloud Monitoring et de Vertex AI Model Monitoring.

Les vérifications de l'état peuvent déclencher la nécessité de remplacer les nœuds défectueux, de déployer davantage de capacité ou de déclencher automatiquement le réentraînement continu ou l'ajustement précis des pipelines qui utilisent des données mises à jour. Cette approche proactive permet d'éviter à la fois la dégradation de la précision et la dégradation progressive au niveau du système, et contribue à améliorer la fiabilité globale.

Pratiques SRE

Pour surveiller l'état de vos systèmes, envisagez d'adopter les pratiques SRE afin d'implémenter des objectifs de niveau de service (SLO). Les alertes concernant la perte de marge d'erreur et le taux de consommation peuvent être des indicateurs précoces de problèmes de fiabilité du système. Pour en savoir plus sur les pratiques SRE, consultez le livre sur l'ingénierie SRE de Google.

Créer une plate-forme MLOps de bout en bout automatisée

Un système d'IA et de ML robuste, évolutif et fiable sur Google Cloud nécessite une plate-forme MLOps de bout en bout automatisée pour le cycle de vie du développement de modèles. Le cycle de vie du développement inclut la gestion initiale des données, l'entraînement continu des modèles, le déploiement et la surveillance en production. En automatisant ces étapes sur Google Cloud, vous établissez des processus reproductibles, réduisez la pénibilité manuelle, minimisez les erreurs et accélérez le rythme de l'innovation.

Une plate-forme MLOps automatisée est essentielle pour établir une fiabilité de niveau production pour vos applications. L'automatisation permet de garantir la qualité des modèles et la reproductibilité, et d'assurer l'intégration et la diffusion continues des artefacts d'IA et de ML.

Pour créer une plate-forme MLOps de bout en bout automatisée, tenez compte des recommandations suivantes.

Automatiser le cycle de vie du développement de modèles

L'orchestration de l'ensemble du workflow d'IA et de ML en tant que série d'étapes automatisées et connectées est un élément essentiel d'une plate-forme MLOps automatisée. Cela inclut la préparation et la validation des données, ainsi que l'entraînement, l'évaluation, le déploiement et la surveillance des modèles.

  • Utilisez Vertex AI Pipelines comme orchestrateur central :
    • Définissez des workflows de bout en bout avec des composants modulaires pour le traitement, l'entraînement, l'évaluation et le déploiement des données.
    • Automatisez les exécutions de pipeline à l'aide de planifications ou de déclencheurs tels que de nouvelles données ou des modifications de code.
    • Implémenter la paramétrisation et la gestion des versions automatisées pour chaque exécution du pipeline et créer un historique des versions
    • Surveillez la progression des pipelines et l'utilisation des ressources à l'aide de la journalisation et du traçage intégrés, et intégrez-les aux alertes Cloud Monitoring.
  • Définissez vos pipelines de ML de manière programmatique à l'aide du SDK Kubeflow Pipelines (KFP) ou du SDK TensorFlow Extended. Pour en savoir plus, consultez Interfaces pour Vertex AI Pipelines.
  • Orchestrez les opérations à l'aide de services Google Cloud tels que Dataflow, l'entraînement personnalisé Vertex AI, Vertex AI Model Registry et les points de terminaison Vertex AI.
  • Pour les workflows d'IA générative, orchestrez les étapes de gestion des requêtes, d'inférence par lot, d'évaluation human-in-the-loop (HITL) et de coordination des composants ADK.

Gérer l'infrastructure en tant que code

L'Infrastructure as Code (IaC) est essentielle pour gérer l'infrastructure des systèmes d'IA et de ML, et pour permettre des déploiements reproductibles, évolutifs et faciles à entretenir. Les besoins en infrastructure des systèmes d'IA et de ML sont dynamiques et complexes. Ces systèmes nécessitent souvent du matériel spécialisé, comme des GPU et des TPU. L'IaC permet d'atténuer les risques liés à la gestion manuelle de l'infrastructure en assurant la cohérence, en permettant les rollbacks et en rendant les déploiements reproductibles.

Pour gérer efficacement vos ressources d'infrastructure en tant que code, utilisez les techniques suivantes.

Automatiser le provisionnement des ressources

Pour gérer efficacement l'IaC sur Google Cloud, définissez et provisionnez vos ressources d'infrastructure d'IA et de ML à l'aide de Terraform. L'infrastructure peut inclure des ressources telles que les suivantes :

  • Clusters GKE configurés avec des pools de nœuds. Les pools de nœuds peuvent être optimisés en fonction des exigences des charges de travail. Par exemple, vous pouvez utiliser des GPU A100, H100, H200 ou B200 pour l'entraînement, et des GPU L4 pour l'inférence.
  • Points de terminaison Vertex AI configurés pour la diffusion de modèles, avec des types de machines et des règles de scaling définis.
  • Buckets Cloud Storage pour les données et les artefacts.

Utiliser des modèles de configuration

Organisez vos configurations Terraform sous forme de modèles modulaires. Pour accélérer le provisionnement des ressources d'IA et de ML, vous pouvez utiliser Cluster Toolkit. Le kit d'outils fournit des plans types, qui sont des modèles Terraform sélectionnés par Google que vous pouvez utiliser pour déployer des clusters HPC, d'IA et de ML prêts à l'emploi dans Slurm ou GKE. Vous pouvez personnaliser le code Terraform et le gérer dans votre système de contrôle des versions. Pour automatiser le workflow de provisionnement et de mise à jour des ressources, vous pouvez intégrer le code dans vos pipelines CI/CD à l'aide de Cloud Build.

Automatiser les modifications de configuration

Après avoir provisionné votre infrastructure, gérez les modifications de configuration en cours de manière déclarative :

  • Dans les environnements axés sur Kubernetes, gérez vos ressources Google Clouden tant qu'objets Kubernetes à l'aide de Config Connector.
  • Définissez et gérez des ressources Vertex AI telles que des ensembles de données, des modèles et des points de terminaison, des instances Cloud SQL, des thèmes Pub/Sub et des buckets Cloud Storage à l'aide de fichiers manifestes YAML.
  • Déployez les fichiers manifestes sur votre cluster GKE afin d'intégrer la configuration de l'application et de l'infrastructure.
  • Automatisez les mises à jour de configuration à l'aide de pipelines CI/CD et utilisez des modèles pour gérer les différences d'environnement.
  • Implémentez des configurations pour les stratégies Identity and Access Management (IAM) et les comptes de service à l'aide d'IaC.

Intégrer à la CI/CD

  • Automatisez le cycle de vie des ressources d'infrastructure Google Cloud en intégrant l'IaC aux pipelines CI/CD à l'aide d'outils tels que Cloud Build et Infrastructure Manager.
  • Définissez des déclencheurs pour les mises à jour automatiques des commits de code.
  • Implémentez des tests et des validations automatisés dans le pipeline. Par exemple, vous pouvez créer un script pour exécuter automatiquement les commandes Terraform validate et plan.
  • Stockez les configurations en tant qu'artefacts et activez le contrôle des versions.
  • Définissez des environnements distincts (développement, préproduction et production, par exemple) avec des configurations distinctes dans le contrôle des versions, et automatisez la promotion des environnements.

Valider le comportement du modèle

Pour maintenir la précision et la pertinence des modèles au fil du temps, automatisez le processus d'entraînement et d'évaluation au sein de votre plate-forme MLOps. Cette automatisation, associée à une validation rigoureuse, permet de s'assurer que les modèles se comportent comme prévu avec les données pertinentes avant d'être déployés en production.

  • Configurez des pipelines d'entraînement continu, qui sont déclenchés par de nouvelles données et des signaux de surveillance tels que la dérive des données, ou qui s'exécutent selon une planification.
    • Pour gérer les tâches d'entraînement automatisées, telles que les essais de réglage des hyperparamètres et les configurations d'entraînement distribué pour les modèles plus volumineux, utilisez l'entraînement personnalisé Vertex AI.
    • Pour affiner les modèles de fondation, automatisez le processus d'affinage et intégrez les jobs dans vos pipelines.
  • Implémentez le versioning automatique des modèles et stockez de manière sécurisée les artefacts de modèles entraînés après chaque cycle d'entraînement réussi. Vous pouvez stocker les artefacts dans Cloud Storage ou les enregistrer dans Model Registry.
  • Définissez des métriques d'évaluation et des seuils clairs, tels que la précision minimale, le taux d'erreur maximal et le score F1 minimal.
    • Assurez-vous qu'un modèle respecte les seuils pour réussir automatiquement l'évaluation et être pris en compte pour le déploiement.
    • Automatisez l'évaluation à l'aide de services tels que l'évaluation de modèles dans Vertex AI.
    • Assurez-vous que l'évaluation inclut des métriques spécifiques à la qualité des résultats générés, à l'exactitude factuelle, aux attributs de sécurité et au respect du style ou du format spécifiés.
  • Pour enregistrer et suivre automatiquement les paramètres, les versions de code, les versions de l'ensemble de données et les résultats de chaque exécution d'entraînement et d'évaluation, utilisez Vertex AI Experiments. Cette approche fournit un historique utile pour la comparaison, le débogage et la reproductibilité.
  • Pour optimiser le réglage des hyperparamètres et automatiser la recherche des configurations de modèle optimales en fonction de l'objectif que vous avez défini, utilisez Vertex AI Vizier.
  • Pour visualiser les métriques d'entraînement et déboguer pendant le développement, utilisez Vertex AI TensorBoard.

Valider les entrées et les sorties des pipelines d'IA et de ML

Pour garantir la fiabilité et l'intégrité de vos systèmes d'IA et de ML, vous devez valider les données lorsqu'elles entrent dans les systèmes et transitent par les pipelines. Vous devez également valider les entrées et les sorties aux limites des composants. Une validation robuste de toutes les entrées et sorties (données brutes, données traitées, configurations, arguments et fichiers) permet d'éviter les comportements inattendus et de maintenir la qualité du modèle tout au long du cycle de vie MLOps. Lorsque vous intégrez cette approche proactive à votre plate-forme MLOps, elle vous aide à détecter les erreurs avant qu'elles ne se propagent dans un système, ce qui vous permet de gagner du temps et des ressources.

Pour valider efficacement les entrées et les sorties de vos pipelines d'IA et de ML, utilisez les techniques suivantes.

Automatiser la validation des données

  • Implémentez la validation automatique des données dans vos pipelines d'ingestion et de prétraitement des données à l'aide de TensorFlow Data Validation (TFDV).
    • Pour les contrôles de la qualité des données à grande échelle basés sur SQL, utilisez des services de traitement évolutifs tels que BigQuery.
    • Pour une validation programmatique complexe des données par flux ou par lot, utilisez Dataflow.
  • Surveillez les distributions de données au fil du temps grâce aux fonctionnalités TFDV.
    • Visualisez les tendances à l'aide d'outils intégrés à Cloud Monitoring pour détecter la dérive des données. Vous pouvez déclencher automatiquement des pipelines de réentraînement de modèles lorsque les modèles de données changent de manière significative.
  • Stockez les résultats et les métriques de validation dans BigQuery pour l'analyse et le suivi historique, et archivez les artefacts de validation dans Cloud Storage.

Valider les configurations de pipeline et les données d'entrée

Pour éviter les échecs de pipeline ou les comportements inattendus causés par des paramètres incorrects, implémentez une validation stricte pour toutes les configurations de pipeline et tous les arguments de ligne de commande :

  • Définissez des schémas clairs pour vos fichiers de configuration tels que YAML ou JSON en utilisant des bibliothèques de validation de schéma comme jsonschema pour Python. Validez les objets de configuration par rapport à ces schémas avant le début de l'exécution d'un pipeline et avant l'exécution d'un composant.
  • Implémentez la validation des entrées pour tous les arguments de ligne de commande et les paramètres de pipeline à l'aide de bibliothèques d'analyse d'arguments telles que argparse. La validation doit vérifier les types de données corrects, les valeurs valides et les arguments requis.
  • Dans Vertex AI Pipelines, définissez les types et propriétés attendus des paramètres de composant à l'aide des fonctionnalités de validation des entrées de composant intégrées.
  • Pour garantir la reproductibilité des exécutions de pipeline et conserver un journal d'audit, stockez les fichiers de configuration validés et versionnés dans Cloud Storage ou Artifact Registry.

Valider les fichiers d'entrée et de sortie

Validez l'intégrité et le format des fichiers d'entrée et de sortie, tels que les ensembles de données, les artefacts de modèle et les rapports d'évaluation :

  • Validez les formats de fichier tels que CSV, Parquet et les types d'image à l'aide de bibliothèques.
  • Pour les fichiers volumineux ou les artefacts critiques, validez la taille des fichiers et les sommes de contrôle afin de détecter toute corruption ou tout transfert incomplet à l'aide de la validation des données et de la détection des modifications de Cloud Storage.
  • Validez les fichiers à l'aide de Cloud Run Functions (par exemple, en fonction des événements d'importation de fichiers) ou dans les pipelines Dataflow.
  • Stockez les résultats de la validation dans BigQuery pour les récupérer et les analyser plus facilement.

Automatiser le déploiement et implémenter la surveillance continue

Le déploiement automatisé et la surveillance continue des modèles en production permettent d'assurer la fiabilité, d'effectuer des mises à jour rapides et de détecter rapidement les problèmes. Cela implique la gestion des versions de modèles, le déploiement contrôlé, le déploiement automatisé à l'aide de CI/CD et une surveillance complète, comme décrit dans les sections suivantes.

Gérer les versions de modèle

Gérez les itérations de modèle et les artefacts associés à l'aide des outils de gestion des versions :

  • Pour suivre les versions et les métadonnées des modèles, et pour créer des liens vers les artefacts de modèle sous-jacents, utilisez Model Registry.
  • Implémentez un schéma de gestion des versions clair (par exemple, la gestion sémantique des versions). Pour chaque version du modèle, associez des métadonnées complètes telles que les paramètres d'entraînement, les métriques d'évaluation des pipelines de validation et la version de l'ensemble de données.
  • Stockez les artefacts de modèle tels que les fichiers de modèle, les poids préentraînés et les images de conteneur de diffusion dans Artifact Registry, et utilisez ses fonctionnalités de gestion des versions et d'ajout de tags.
  • Pour répondre aux exigences de sécurité et de gouvernance, définissez des règles de contrôle des accès strictes pour Model Registry et Artifact Registry.
  • Pour enregistrer et gérer des versions de manière programmatique, et pour les intégrer dans des pipelines CI/CD automatisés, utilisez le SDK ou l'API Vertex AI.

Effectuer un déploiement contrôlé

Contrôlez le déploiement des versions de modèle sur les points de terminaison à l'aide des fonctionnalités de gestion du trafic de votre plate-forme de diffusion.

  • Implémentez un déploiement continu en utilisant la fonctionnalité de répartition du trafic des points de terminaison Vertex AI.
  • Si vous déployez votre modèle sur GKE, utilisez des techniques avancées de gestion du trafic, comme le déploiement Canary :
    1. Routez un petit sous-ensemble du trafic de production vers une nouvelle version du modèle.
    2. Surveillez en continu les performances et les taux d'erreur à l'aide de métriques.
    3. Établissez que le modèle est fiable.
    4. Déployez la version pour tout le trafic.
  • Effectuez des tests A/B sur les agents d'IA :
    1. Déployez deux versions différentes d'un modèle-agent ou des modèles entièrement différents sur le même point de terminaison.
    2. Répartissez le trafic entre les déploiements.
    3. Analysez les résultats par rapport aux objectifs commerciaux.
  • Implémentez des mécanismes de rollback automatisés qui peuvent rapidement rétablir le trafic des points de terminaison vers une version stable précédente du modèle si des alertes de surveillance sont déclenchées ou si les seuils de performances ne sont pas atteints.
  • Configurez les paramètres de répartition du trafic et de déploiement de manière programmatique à l'aide du SDK ou de l'API Vertex AI.
  • Utilisez Cloud Monitoring pour suivre les performances et le trafic entre les versions.
  • Automatisez le déploiement avec des pipelines CI/CD. Vous pouvez utiliser Cloud Build pour créer des conteneurs, versionner des artefacts et déclencher le déploiement sur des points de terminaison Vertex AI.
  • Assurez-vous que les pipelines CI/CD gèrent les versions et extraient les données d'Artifact Registry.
  • Avant de transférer le trafic, effectuez des tests de points de terminaison automatisés pour vérifier l'exactitude des prédictions, la latence, le débit et la fonction d'API.
  • Stockez toutes les configurations dans le contrôle des versions.

Surveillance continue

  • Utilisez Model Monitoring pour détecter automatiquement la dégradation des performances, la dérive des données (modifications de la distribution des entrées par rapport à l'entraînement) et la dérive de prédiction (modifications des sorties du modèle).
    • Configurez des jobs de détection de dérive avec des seuils et des alertes.
    • Surveillez les performances en temps réel : latence des prédictions, débit, taux d'erreur.
  • Définissez des métriques personnalisées dans Cloud Monitoring pour les KPI d'activité.
  • Intégrez les résultats de la surveillance des modèles et les métriques personnalisées à Cloud Monitoring pour les alertes et les tableaux de bord.
  • Configurez des canaux de notification tels que les e-mails, Slack ou PagerDuty, et configurez la correction automatique.
  • Pour déboguer les journaux de prédiction, utilisez Cloud Logging.
  • Intégrez la surveillance à la gestion des incidents.

Pour les points de terminaison d'IA générative, surveillez les caractéristiques de sortie telles que la toxicité et la cohérence :

  • Surveillez la dérive de la diffusion des caractéristiques.
  • Implémentez une validation précise des prédictions : validez les résultats par rapport aux plages et formats attendus à l'aide d'une logique personnalisée.
  • Surveillez les distributions de prédictions pour détecter les changements.
  • Validez le schéma de sortie.
  • Configurer des alertes pour les résultats et les changements inattendus
  • Suivez les événements de validation en temps réel et répondez-y à l'aide de Pub/Sub.

Assurez-vous que les résultats de la surveillance complète sont réinjectés dans l'entraînement continu.

Préserver la confiance et le contrôle grâce à la gouvernance des données et des modèles

La fiabilité de l'IA et du ML ne se limite pas à la disponibilité technique. Cela inclut la confiance, ainsi qu'une gouvernance robuste des données et des modèles. Les résultats de l'IA peuvent être inexacts, biaisés ou obsolètes. Ces problèmes érodent la confiance et peuvent être préjudiciables. Une traçabilité complète, contrôle des accès strict, une validation automatisée et des pratiques transparentes permettent de garantir que les résultats de l'IA sont fiables, dignes de confiance et respectent les normes éthiques.

Pour maintenir la confiance et le contrôle grâce à la gouvernance des données et des modèles, tenez compte des recommandations suivantes.

Établir des catalogues de données et de modèles pour la traçabilité

Pour faciliter le traçage, l'audit et la compréhension de la provenance de vos ressources d'IA et de ML, conservez un enregistrement robuste et centralisé des versions de données et de modèles tout au long de leur cycle de vie. Un catalogue de données et de modèles fiable sert de source unique de référence pour tous les artefacts utilisés et produits par vos pipelines d'IA et de ML, des sources de données brutes et des ensembles de données traités aux versions de modèles entraînés et aux points de terminaison déployés.

Utilisez les produits, outils et techniques suivants pour créer et gérer des catalogues pour vos composants de données :

  • Créez un catalogue d'entreprise de vos composants de données à l'aide de Dataplex Universal Catalog. Pour découvrir et créer automatiquement des inventaires des assets de données, intégrez le catalogue universel Dataplex à vos systèmes de stockage, tels que BigQuery, Cloud Storage et Pub/Sub.
  • Assurez-vous que vos données sont disponibilité élevée et durables en les stockant dans des buckets Cloud Storage multirégionaux ou birégionaux. Les données que vous importez dans ces buckets sont stockées de manière redondante dans au moins deux zones géographiques distinctes. Cette redondance offre une résilience intégrée contre les pannes régionales et contribue à garantir l'intégrité des données.
  • Taggez et annotez vos ensembles de données avec les métadonnées métier pertinentes, les informations sur la propriété, les niveaux de sensibilité et les détails sur la traçabilité. Par exemple, associez un ensemble de données traité à sa source brute et au pipeline qui l'a créé.
  • Créez un dépôt central pour les versions de modèle à l'aide de Model Registry. Enregistrez chaque version de modèle entraîné et associez-la aux métadonnées correspondantes. Les métadonnées peuvent inclure les éléments suivants :
    • Paramètres d'entraînement.
    • Métriques d'évaluation issues des pipelines de validation.
    • Version de l'ensemble de données utilisée pour l'entraînement, avec la traçabilité remontant à l'entrée Dataplex Universal Catalog correspondante.
    • Version du code ayant produit l'ensemble de données.
    • Détails sur le framework ou le modèle de fondation utilisé.
  • Avant d'importer un modèle dans le registre de modèles, stockez les artefacts de modèle tels que les fichiers de modèle et les poids préentraînés dans un service tel que Cloud Storage. Stockez les images de conteneurs personnalisées pour les jobs d'entraînement ou de diffusion personnalisés dans un dépôt sécurisé tel qu'Artifact Registry.
  • Pour vous assurer que les données et les ressources de modèle sont automatiquement enregistrées et mises à jour dans les catalogues respectifs lors de leur création ou modification, implémentez des processus automatisés dans vos pipelines MLOps. Ce catalogage complet permet une traçabilité de bout en bout, des données brutes à la prédiction. Vous pouvez ainsi auditer les entrées et les processus qui ont conduit à une version ou une prédiction de modèle spécifique. La fonctionnalité d'audit est essentielle pour déboguer les comportements inattendus, assurer la conformité avec les règles d'utilisation des données et comprendre l'impact des modifications apportées aux données ou aux modèles au fil du temps.
  • Pour l'IA générative et les modèles de fondation, votre catalogue doit également suivre les détails concernant le modèle de fondation spécifique utilisé, les paramètres de réglage précis et les résultats d'évaluation spécifiques à la qualité et à la sécurité des résultats générés.

Implémenter des contrôles des accès et des journaux d'audit robustes

Pour maintenir la confiance et le contrôle dans vos systèmes d'IA et de ML, il est essentiel de protéger les données et les modèles sensibles contre les accès non autorisés et de garantir la responsabilité de toutes les modifications.

  • Implémentez des contrôles d'accès stricts et conservez des journaux d'audit détaillés pour tous les composants de vos systèmes d'IA et de ML dans Google Cloud.
  • Définissez des autorisations précises dans IAM pour les utilisateurs, les groupes et les comptes de service qui interagissent avec vos ressources d'IA et de ML.
  • Suivez rigoureusement le principe du moindre privilège.
  • N'accordez que les autorisations minimales nécessaires pour des tâches spécifiques. Par exemple, un compte de service d'entraînement a besoin d'un accès en lecture aux données d'entraînement et d'un accès en écriture aux artefacts de modèle, mais il n'a peut-être pas besoin d'un accès en écriture aux points de terminaison de diffusion en production.

Appliquez les règles IAM de manière cohérente à tous les composants et ressources pertinents de vos systèmes d'IA et de ML, y compris les suivants :

  • Buckets Cloud Storage contenant des données sensibles ou des artefacts de modèle.
  • Ensembles de données BigQuery.
  • Ressources Vertex AI, telles que les dépôts de modèles, les points de terminaison, les pipelines et les ressources Feature Store.
  • Ressources de calcul, telles que les clusters GKE et les services Cloud Run.

Utilisez l'audit et les journaux pour capturer, surveiller et analyser l'activité d'accès :

  • Activez Cloud Audit Logs pour tous les services Google Cloud utilisés par votre système d'IA et de ML.
  • Configurez les journaux d'audit pour capturer des informations détaillées sur les appels d'API, les événements d'accès aux données et les modifications de configuration apportées à vos ressources. Surveillez les journaux pour détecter toute activité suspecte, tentative d'accès non autorisée ou modification inattendue des données critiques ou des composants du modèle.
  • Pour l'analyse, les alertes et la visualisation en temps réel, diffusez les journaux d'audit vers Cloud Logging.
  • Pour un stockage à long terme économique et une analyse rétrospective de la sécurité ou des audits de conformité, exportez les journaux vers BigQuery.
  • Pour une surveillance centralisée de la sécurité, intégrez les journaux d'audit à vos systèmes de gestion des informations et des événements de sécurité (SIEM). Examinez régulièrement les règles d'accès et les journaux d'audit pour vous assurer qu'ils correspondent à vos exigences de gouvernance et détecter les éventuels cas de non-respect des règles.
  • Pour les applications qui traitent des données sensibles, telles que les informations permettant d'identifier personnellement l'utilisateur (PII) pour l'entraînement ou l'inférence, utilisez les vérifications de la protection des données sensibles dans les pipelines ou sur le stockage de données.
  • Pour les solutions d'IA générative et agentiques, utilisez des journaux d'audit pour suivre qui a accédé à des modèles ou outils spécifiques, quelles données ont été utilisées pour l'affinage ou les requêtes, et quelles requêtes ont été envoyées aux points de terminaison de production. Les journaux d'audit vous aident à garantir la responsabilité et fournissent des données essentielles pour enquêter sur l'utilisation abusive des données ou les cas de non-respect des règles.

Lutter contre les biais, améliorer la transparence et l'explicabilité

Pour créer des systèmes d'IA et de ML fiables, vous devez traiter les biais potentiels inhérents aux données et aux modèles, vous efforcer d'assurer la transparence du comportement du système et fournir des explications pour les résultats du modèle. Il est particulièrement important de créer des systèmes fiables dans les domaines sensibles ou lorsque vous utilisez des modèles complexes comme ceux qui sont généralement utilisés pour les applications d'IA générative.

  • Mettez en œuvre des pratiques proactives pour identifier et atténuer les biais tout au long du cycle de vie MLOps.
  • Analysez les données d'entraînement pour détecter les biais à l'aide d'outils qui détectent les asymétries dans les distributions de caractéristiques pour différents groupes démographiques ou attributs sensibles.
  • Évaluez les performances globales du modèle et celles des tranches de données prédéfinies. Cette évaluation vous aide à identifier les différences de performances ou les biais qui affectent des sous-groupes spécifiques.

Pour la transparence et l'explicabilité des modèles, utilisez des outils qui aident les utilisateurs et les développeurs à comprendre pourquoi un modèle a fait une prédiction particulière ou produit un résultat spécifique.

  • Pour les modèles tabulaires déployés sur des points de terminaison Vertex AI, générez des attributions de caractéristiques à l'aide de Vertex Explainable AI. Les attributions de caractéristiques indiquent les caractéristiques d'entrée qui ont le plus contribué à la prédiction.
  • Explorez de manière interactive le comportement du modèle et les biais potentiels sur un ensemble de données à l'aide d'outils indépendants du modèle tels que l'outil de simulation What-If, qui s'intègre à TensorBoard.
  • Intégrez l'explicabilité à vos tableaux de bord de surveillance. Dans les situations où il est important de comprendre le raisonnement du modèle pour établir une relation de confiance ou prendre des décisions, fournissez des données d'explication directement aux utilisateurs finaux via les interfaces de votre application.
  • Pour les modèles complexes tels que les LLM utilisés pour les modèles d'IA générative, expliquez le processus suivi par un agent, par exemple en utilisant des journaux de trace. L'explicabilité est relativement difficile pour de tels modèles, mais elle reste essentielle.
  • Dans les applications RAG, fournissez des citations pour les informations récupérées. Vous pouvez également utiliser des techniques telles que le prompt engineering pour guider le modèle afin qu'il fournisse des explications ou montre ses étapes de raisonnement.
  • Détectez les changements de comportement ou de résultats du modèle qui pourraient indiquer un biais ou une injustice émergents en implémentant une surveillance continue en production. Documentez les limites du modèle, les cas d'utilisation prévus et les biais potentiels connus dans les métadonnées du modèle dans le registre de modèles.

Mettre en œuvre des pratiques holistiques d'observabilité et de fiabilité de l'IA et du ML

L'observabilité holistique est essentielle pour gérer les systèmes complexes d'IA et de ML en production. Elle est également essentielle pour mesurer la fiabilité des systèmes complexes d'IA et de ML, en particulier pour l'IA générative, en raison de sa complexité, de son intensité en ressources et de son potentiel de résultats imprévisibles. L'observabilité holistique consiste à observer l'infrastructure, le code d'application, les données et le comportement des modèles pour obtenir des insights permettant de détecter, diagnostiquer et résoudre les problèmes de manière proactive. Cette observabilité permet en fin de compte d'obtenir des systèmes fiables et performants. Pour obtenir une observabilité holistique, vous devez procéder comme suit :

  • Adoptez les principes de l'ingénierie SRE.
  • Définissez des objectifs de fiabilité clairs.
  • Suivez les métriques dans les différentes couches du système.
  • Utilisez les insights issus de l'observabilité pour améliorer en continu et gérer de manière proactive.

Pour implémenter des pratiques d'observabilité et de fiabilité holistiques pour les charges de travail d'IA et de ML dans Google Cloud, tenez compte des recommandations suivantes.

Définir des objectifs de fiabilité et des métriques commerciales

Identifiez les indicateurs clés de performance (KPI) que votre système d'IA et de ML affecte directement. Les KPI peuvent inclure les revenus influencés par les recommandations de l'IA, le taux de perte de clients que les systèmes d'IA ont prédit ou atténué, ainsi que les taux d'engagement et de conversion des utilisateurs générés par les fonctionnalités d'IA générative.

Pour chaque KPI, définissez les métriques de fiabilité technique correspondantes qui l'affectent. Par exemple, si le KPI est "satisfaction client avec un assistant IA conversationnel", les métriques de fiabilité correspondantes peuvent inclure les éléments suivants :

  • Taux de réussite des requêtes utilisateur.
  • Latence des réponses : délai avant le premier jeton (TTFT) et diffusion de jetons pour les LLM.
  • Taux de réponses non pertinentes ou nuisibles.
  • Taux de réussite des tâches par l'agent.

Pour l'entraînement de l'IA et du ML, les métriques de fiabilité peuvent inclure l'utilisation des FLOPS du modèle (MFU), les itérations par seconde, les jetons par seconde et les jetons par appareil.

Pour mesurer et améliorer efficacement la fiabilité de l'IA et du ML, commencez par définir des objectifs de fiabilité clairs qui sont alignés sur les objectifs commerciaux généraux. Adoptez l'approche SRE en définissant des SLO qui quantifient les niveaux acceptables de fiabilité et de performances pour vos services d'IA et de ML du point de vue des utilisateurs. Quantifiez ces métriques de fiabilité technique avec des cibles de SLO spécifiques.

Voici des exemples de cibles de SLO :

  • 99,9 % des appels d'API doivent renvoyer une réponse positive.
  • La latence d'inférence au 95e centile doit être inférieure à 300 ms.
  • Le TTFT doit être inférieur à 500 ms pour 99 % des requêtes.
  • Le taux de résultats nuisibles doit être inférieur à 0,1 %.

En alignant directement les SLO sur les besoins de l'entreprise, vous vous assurez que les efforts de fiabilité sont axés sur le comportement du système le plus critique qui affecte les utilisateurs et l'entreprise. Cette approche permet de transformer la fiabilité en une propriété d'ingénierie mesurable et exploitable.

Surveiller les performances de l'infrastructure et des applications

Suivez les métriques d'infrastructure pour toutes les ressources utilisées par vos systèmes d'IA et de ML. Les métriques incluent l'utilisation du processeur (CPU, GPU et TPU), de la mémoire, le débit et la latence du réseau, ainsi que les E/S du disque. Suivez les métriques pour les environnements gérés tels que l'entraînement et le service Vertex AI, ainsi que pour les ressources autogérées telles que les nœuds GKE et les instances Cloud Run.

Surveillez les quatre signaux clés pour vos applications d'IA et de ML :

  • Latence : temps nécessaire pour répondre aux requêtes.
  • Trafic : volume de requêtes ou charge de travail.
  • Taux d'erreur : taux de requêtes ou d'opérations ayant échoué.
  • Saturation : utilisation des ressources critiques telles que le processeur, la mémoire et les accélérateurs GPU ou TPU, qui indique à quel point votre système est proche des limites de capacité.

Effectuez la surveillance à l'aide des techniques suivantes :

  • Collectez, stockez et visualisez les métriques d'infrastructure et d'application à l'aide de Cloud Monitoring. Vous pouvez utiliser des tableaux de bord prédéfinis pour les services Google Cloud et créer des tableaux de bord personnalisés adaptés aux indicateurs de performances spécifiques de votre charge de travail et à l'état de l'infrastructure.
  • Collectez des journaux détaillés à partir de vos applications d'IA et de ML, ainsi que de l'infrastructure sous-jacente à l'aide de Cloud Logging. Ces journaux sont essentiels pour résoudre les problèmes et analyser les performances. Ils fournissent un contexte autour des événements et des erreurs.
  • Identifiez précisément les problèmes de latence et comprenez les flux de requêtes dans les microservices d'IA et de ML distribués à l'aide de Cloud Trace. Cette fonctionnalité est essentielle pour déboguer les interactions complexes des agents Vertex AI ou les pipelines d'inférence multicomposants.
  • Identifiez les goulots d'étranglement de performances dans les blocs de fonctions du code d'application à l'aide de Cloud Profiler. Identifier les goulots d'étranglement des performances peut vous aider à optimiser l'utilisation des ressources et le temps d'exécution.
  • Collectez des métriques spécifiques aux accélérateurs, comme l'utilisation détaillée du GPU par processus, l'utilisation de la mémoire par processus et la température, à l'aide d'outils tels que NVIDIA Data Center GPU Manager (DCGM).

Implémenter l'observabilité des données et des modèles

Les systèmes d'IA générative fiables nécessitent une observabilité robuste des données et des modèles, qui commence par la surveillance de l'ensemble du pipeline.

  • Suivez les taux d'ingestion de données, les volumes traités et les latences de transformation à l'aide de services tels que Dataflow.
  • Surveillez les taux de réussite et d'échec des jobs dans vos pipelines MLOps, y compris ceux gérés par Vertex AI Pipelines.

Il est essentiel d'évaluer en permanence la qualité des données.

  • Gérez et contrôlez les données à l'aide de Dataplex Universal Catalog :
    • Évaluez la précision en validant les résultats par rapport à la vérité terrain ou en suivant les taux de détection des valeurs aberrantes.
    • Surveillez la fraîcheur en fonction de l'ancienneté des données et de la fréquence des mises à jour par rapport aux SLA.
    • Évaluez l'exhaustivité en suivant les pourcentages de valeurs nulles et les taux de remplissage des champs obligatoires.
    • Assurez la validité et la cohérence grâce à des vérifications de l'adhérence au schéma et des doublons.
  • Détectez les anomalies de manière proactive à l'aide des alertes Cloud Monitoring et grâce à une traçabilité claire de la provenance des données.
  • Pour les systèmes RAG, examinez la pertinence du contexte récupéré et l'ancrage (attribution à la source) des réponses.
  • Surveillez le débit des requêtes de base de données vectorielle.

Les métriques clés d'observabilité des modèles incluent le nombre de jetons d'entrée et de sortie, ainsi que les taux d'erreur spécifiques aux modèles, tels que les échecs d'hallucination ou de résolution de requêtes. Pour suivre ces métriques, utilisez Model Monitoring.

  • Surveillez en permanence les scores de toxicité des résultats et les évaluations des utilisateurs.
  • Automatisez l'évaluation des résultats du modèle par rapport à des critères définis à l'aide de Gen AI Evaluation Service.
  • Assurez des performances durables en surveillant systématiquement la dérive des données et des concepts à l'aide de métriques complètes sur le taux d'erreur.

Pour suivre les métriques du modèle, vous pouvez utiliser TensorBoard ou MLflow. Pour une analyse et un profilage approfondis permettant de résoudre les problèmes de performances, vous pouvez utiliser le profilage PyTorch/XLA ou NVIDIA Nsight.

Contributeurs

Auteurs :

Autres contributeurs :

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 s'alignent sur le 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

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 sur l'allocation et l'optimisation des ressources, tenez compte des recommandations suivantes.

Définir des objectifs commerciaux et des KPI

Alignez les choix techniques de vos projets d'IA et de ML sur les objectifs commerciaux et les indicateurs clés de performance (KPI).

Définir des objectifs stratégiques et des KPI axés sur le ROI

Assurez-vous que les projets d'IA et de ML sont alignés sur 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é : mesurer 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
    • 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 :

  1. 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.
  2. 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.
  3. Affinez de manière itérative : adaptez les objectifs commerciaux et les KPI en fonction de ce que vous avez appris et de l'évolution des besoins commerciaux. Cette itération vous aide à maintenir la pertinence et l'alignement stratégique.
  4. É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.
  • 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 lassitude vis-à-vis des 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 pic de charge.
  • 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
  • Utilisez des services gérés tels que Vertex AI ou GKE, qui offrent des fonctionnalités d'autoscaling intégrées pour les tâches d'entraînement.
  • Configurez des règles d'autoscaling pour ajuster le nombre d'instances d'entraînement en fonction de métriques telles que l'utilisation du processeur, de la mémoire et la longueur de la file d'attente des jobs.
  • Utilisez des métriques de scaling personnalisées pour affiner le comportement d'autoscaling de vos charges de travail spécifiques.
Inférence
  • Déployez vos modèles sur des plates-formes évolutives telles que Vertex AI Inference, les GPU sur GKE ou les TPU sur GKE.
  • Utilisez les fonctionnalités d'autoscaling pour ajuster le nombre de réplicas en fonction de métriques telles que le taux de requêtes, la latence et l'utilisation des ressources.
  • Implémentez l'équilibrage de charge pour répartir le trafic de manière uniforme entre les répliques et garantir une haute disponibilité.

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 : la probabilité de surprovisionnement des ressources est réduite. 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 différents 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 :

  1. 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.
  2. 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 de test.
  3. 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.
  4. 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.
  5. Analysez les coûts : comparez le coût et les performances de chaque configuration pour identifier l'option la plus rentable.

  6. Définissez des seuils de ressources et des objectifs d'amélioration en fonction des quotas : définissez des seuils pour lesquels 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.

  7. 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 du modèle 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 évaluations automatisés : Vertex AI vous aide à accélérer et à standardiser l'évaluation des modèles. Implémentez des tests automatisés tout au long du cycle de vie du ML pour garantir la qualité et la fiabilité de vos modèles. Ces tests peuvent vous aider à détecter les erreurs de manière précoce, à éviter des 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 à regrouper les ensembles de données en un seul endroit. Cela permet de réduire les coûts de distribution et de maintenance des données, de faciliter la découverte des données et de favoriser leur réutilisation.

  • 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 assets 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 la 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 régir à 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 :

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 composants 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 le coût de 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.
  • Pour créer et orchestrer des pipelines, utilisez Vertex AI Pipelines ou Kubeflow Pipelines. Ces outils permettent de transformer facilement les données, d'entraîner et de déployer des modèles, et de gérer les versions des pipelines. Ils vous permettent de définir des dépendances entre les étapes, de gérer le flux de données et d'automatiser l'exécution de l'ensemble du workflow.
  • Pour les tâches opérationnelles complexes avec des exigences importantes en termes de CI/CD et d'extraction, de transformation et de chargement (ETL), utilisez Cloud Composer. Si vous préférez Airflow pour l'orchestration des données, Cloud Composer est un service géré compatible basé sur Airflow.
  • Pour les pipelines gérés en dehors de Vertex AI Pipelines, utilisez Workflows pour les tâches axées sur l'infrastructure, comme le démarrage et l'arrêt de VM, ou l'intégration à des systèmes externes.
  • Pour automatiser votre processus CI/CD, utilisez Cloud Build avec Pub/Sub. Vous pouvez configurer des notifications et des déclencheurs automatiques pour être averti lorsqu'un nouveau code est envoyé ou lorsqu'un nouveau modèle doit être entraîné.
  • Pour une solution entièrement gérée et évolutive de gestion des pipelines, utilisez Cloud Data Fusion.
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, et de stocker ces conteneurs 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 déployer votre solution à grande échelle. Dans vos tests, suivez différentes métadonnées telles que la version de l'ensemble de données, les paramètres du modèle et le type de modèle. Pour 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 :

  • Choisissez des frameworks de ML optimisés, comme Keras et PyTorch, qui prennent en charge 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 les 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 nouveau départ à 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 à l'aide de notebooks accélèrent considérablement le développement, les révisions 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 les 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 :

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 de 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 :

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 capacités d'automatisation et de prise de décision à 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 lien 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 spécifiques de performances techniques, et évaluez les conséquences du non-respect de ces exigences. Par exemple, pour une application qui prédit le taux de désabonnement 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 observez 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éliorations 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 : exécutez 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 principales tâches 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 des composants de calcul hautes performances et de MLOps tels que des feature stores, des registres de modèles, des magasins de métadonnées et des services d'évaluation des performances des modèles.
  • Utiliser 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.

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 :

Autres contributeurs :