Point de vue de l'IA et du ML: optimisation des performances

Last reviewed 2026-02-13 UTC

Ce document du Google Cloud Framework Well-Architected : perspective de l'IA et du ML fournit 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 de l'optimisation des performances du framework Well-Architected.

Les systèmes d'IA et de ML offrent des capacités d'automatisation et de prise de décision avancées à votre organisation. Les performances de ces systèmes peuvent avoir un impact direct sur des facteurs commerciaux importants tels que les revenus, les coûts et la satisfaction des clients. Pour exploiter tout le potentiel des 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 des 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 aux autres considérations.

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 très grands LLM peuvent être très performants sur une infrastructure d'entraînement massive, mais peuvent ne pas fonctionner correctement dans des environnements à capacité limitée, comme les appareils mobiles.

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

Établir des objectifs de performances et des méthodes d'évaluation

Votre stratégie et vos objectifs commerciaux sont la base de l'utilisation des technologies d'IA et de ML. Traduisez vos objectifs commerciaux en indicateurs clés de performance (KPI) mesurables. Par exemple, les KPI peuvent inclure le revenu total, les coûts, le taux de conversion, le taux de fidélisation ou de désabonnement, la satisfaction des clients et la satisfaction des employés.

Définir des objectifs réalistes

Selon les bonnes pratiques d'ingénierie de la fiabilité des sites (SRE), les objectifs d'un service doivent refléter un niveau de performances qui répond aux exigences des clients types. Cela signifie que les objectifs de service doivent être réalistes en termes d'échelle et de performances des fonctionnalités.

Des objectifs irréalistes peuvent entraîner un gaspillage de ressources pour des gains de performances minimes. Les modèles les plus performants ne sont pas forcément ceux qui génèrent les meilleurs résultats commerciaux. L'entraînement et l'exécution de ces modèles peuvent nécessiter plus de temps et d'argent.

Lorsque vous définissez des objectifs, faites la distinction entre les objectifs de qualité et de performances, et hiérarchisez-les :

  • La qualité fait référence aux caractéristiques intrinsèques qui déterminent la valeur d'une entité. Cela vous aide à évaluer si l'entité répond à vos attentes et à vos normes.
  • Le terme performance désigne l'efficacité et l'efficience d'une entité dans son fonctionnement ou dans l'accomplissement de son objectif.

Les ingénieurs en ML peuvent améliorer les métriques de performances d'un modèle pendant le processus d'entraînement. Vertex AI fournit un service d'évaluation que les ingénieurs en ML peuvent utiliser pour implémenter un suivi standardisé et reproductible des métriques de qualité. L'efficacité de prédiction d'un modèle indique ses performances en production ou au moment de l'inférence. Pour surveiller les performances, utilisez Cloud Monitoring et Vertex AI Model Monitoring. Pour sélectionner les modèles appropriés et décider comment les entraîner, vous devez traduire les objectifs commerciaux en exigences techniques qui déterminent les métriques de qualité et de performances.

Pour comprendre comment définir des objectifs réalistes et identifier les métriques de performances appropriées, prenons l'exemple suivant pour un système de détection des fraudes basé sur l'IA :

  • Objectif commercial : pour un système de détection des fraudes, un objectif commercial irréaliste consiste à détecter 100 % des transactions frauduleuses avec précision en une nanoseconde à un pic de trafic de 100 milliards de transactions par seconde. Un objectif plus réaliste consiste à détecter les transactions frauduleuses avec une précision de 95 % en 100 millisecondes pour 90 % des prédictions en ligne pendant les heures de travail aux États-Unis, à un volume maximal d'un million de transactions par seconde.
  • Métriques de performances : la détection de la fraude est un problème de classification. Vous pouvez mesurer la qualité d'un système de détection des fraudes à l'aide de métriques telles que le rappel, le score F1 et la justesse. Pour suivre les performances ou la vitesse du système, vous pouvez mesurer la latence d'inférence. Détecter les transactions potentiellement frauduleuses peut être plus utile que d'être précis. Par conséquent, un objectif réaliste pourrait être un rappel élevé avec une latence p90 inférieure à 100 millisecondes.

Surveiller les performances à toutes les étapes du cycle de vie du modèle

Pendant l'expérimentation et l'entraînement, et après le déploiement du modèle, surveillez vos KPI et notez toute déviation par rapport aux objectifs commerciaux. Une stratégie de surveillance complète vous aide à prendre des décisions critiques concernant la qualité des modèles et l'utilisation des ressources, par exemple :

  • Décidez quand arrêter un job d'entraînement.
  • Déterminez si les performances d'un modèle se dégradent en production.
  • Améliorez le coût et le délai de mise sur le marché des nouveaux modèles.

Surveillance pendant les tests et l'entraînement

L'objectif de la phase d'expérimentation est de trouver l'approche globale, l'architecture de modèle et les hyperparamètres optimaux pour une tâche spécifique. L'expérimentation vous aide à déterminer de manière itérative la configuration qui offre des performances optimales et la façon d'entraîner le modèle. La surveillance vous aide à identifier efficacement les points à améliorer.

Pour surveiller la qualité et l'efficacité de l'entraînement d'un modèle, les ingénieurs en ML doivent effectuer les opérations suivantes :

  • Visualisez les métriques de qualité et de performances du modèle pour chaque essai.
  • Visualisez les graphiques et les métriques du modèle, comme les histogrammes de pondérations et de biais.
  • Représentez visuellement les données d'entraînement.
  • Profiler les algorithmes d'entraînement sur différents matériels.

Pour surveiller les tests et l'entraînement, tenez compte des recommandations suivantes :

Aspect de la surveillance Recommandation
Qualité du modèle

Pour visualiser et suivre les métriques de test telles que la précision, et pour visualiser l'architecture du modèle ou les données d'entraînement, utilisez TensorBoard. TensorBoard est une suite d'outils Open Source compatible avec les frameworks de ML tels que :

Suivi des tests Vertex AI Experiments s'intègre aux instances Vertex AI TensorBoard gérées et adaptées aux entreprises pour permettre le suivi des tests. Cette intégration permet de stocker et de partager de manière fiable les journaux et les métriques. Pour permettre à plusieurs équipes et personnes de suivre les tests, nous vous recommandons d'utiliser le principe du moindre privilège.
Efficacité de l'entraînement et de l'expérimentation Vertex AI exporte des métriques vers Monitoring et collecte des données de télémétrie et des journaux à l'aide d'un agent d'observabilité. Vous pouvez visualiser les métriques dans la console Google Cloud . Vous pouvez également créer des tableaux de bord ou des alertes basés sur ces métriques à l'aide de Monitoring. Pour en savoir plus, consultez Métriques de surveillance pour Vertex AI.
GPU NVIDIA

L'agent Ops permet de surveiller les GPU pour Compute Engine et pour les autres produits compatibles avec l'agent Ops.

Vous pouvez également utiliser le gestionnaire de GPU de centre de données (DCGM) NVIDIA, qui est une suite d'outils permettant de gérer et de surveiller les GPU NVIDIA dans les environnements de clusters. La surveillance des GPU NVIDIA est particulièrement utile pour l'entraînement et le traitement des modèles de deep learning.

Débogage approfondi Pour déboguer les problèmes liés au code d'entraînement ou à la configuration d'un job Vertex AI Training, vous pouvez inspecter le conteneur d'entraînement à l'aide d'une session shell interactive.

Surveillance pendant la diffusion : prédiction par flux

Après avoir entraîné un modèle et l'avoir exporté vers Vertex AI Model Registry, vous pouvez créer un point de terminaison Vertex AI. Ce point de terminaison fournit un point de terminaison HTTP pour le modèle.

La surveillance des modèles vous aide à identifier les changements importants dans la distribution des caractéristiques d'entrée ou de sortie. Vous pouvez également surveiller les attributions de caractéristiques en production par rapport à une distribution de référence. La distribution de référence peut être l'ensemble d'entraînement ou être basée sur les distributions passées du trafic de production. Une modification de la distribution de diffusion peut impliquer une réduction des performances prédictives par rapport à l'entraînement.

  • Choisir un objectif de surveillance : selon la sensibilité d'un cas d'utilisation aux modifications des données fournies au modèle, vous pouvez surveiller différents types d'objectifs : la dérive des caractéristiques d'entrée, la dérive de la sortie et l'attribution des caractéristiques. La surveillance des modèles v2 vous permet de surveiller les modèles que vous déployez sur une plate-forme de diffusion gérée comme Vertex AI, mais aussi sur des services auto-hébergés comme Google Kubernetes Engine (GKE). De plus, pour un suivi précis des performances, vous pouvez surveiller les paramètres au niveau du modèle plutôt qu'au niveau d'un point de terminaison.
  • Surveillez le service de modèles d'IA générative : pour assurer la stabilité et minimiser la latence, en particulier pour les points de terminaison LLM, configurez une pile de surveillance robuste. Les modèles Gemini fournissent des métriques intégrées, comme le délai avant le premier jeton (TTFT), auxquelles vous pouvez accéder directement dans l'explorateur de métriques. Pour surveiller le débit, la latence et les taux d'erreur de tous les modèlesGoogle Cloud , utilisez le tableau de bord d'observabilité des modèles.

Surveillance pendant la diffusion : prédiction par lot

Pour surveiller les prédictions par lots, vous pouvez exécuter des jobs d'évaluation standards dans le service d'évaluation Vertex AI. Model Monitoring permet de surveiller les inférences par lot. Si vous utilisez Batch pour exécuter votre charge de travail de diffusion, vous pouvez surveiller la consommation de ressources à l'aide des métriques de l'explorateur de métriques.

Automatiser l'évaluation pour la reproductibilité et la standardisation

Pour passer des prototypes aux systèmes de production fiables, vous avez besoin d'un processus d'évaluation standardisé. Ce processus vous aide à suivre les progrès au fil des itérations, à comparer différents modèles, à détecter et à atténuer les biais, et à vous assurer de respecter les exigences réglementaires. Pour garantir la reproductibilité et l'évolutivité, vous devez automatiser le processus d'évaluation.

Pour standardiser et automatiser le processus d'évaluation des performances du ML, procédez comme suit :

  1. Définissez des indicateurs quantitatifs et qualitatifs.
  2. Choisir les sources de données et les techniques appropriées
  3. Normalisez le pipeline d'évaluation.

Ces étapes sont décrites dans les sections suivantes.

1. Définir des indicateurs quantitatifs et qualitatifs

Les métriques issues de calculs sont calculées à l'aide de formules numériques. N'oubliez pas que les métriques de perte d'entraînement peuvent différer des métriques d'évaluation pertinentes pour les objectifs commerciaux. Par exemple, un modèle utilisé pour la détection de fraude supervisée peut utiliser la perte d'entropie croisée pour l'entraînement. Toutefois, pour évaluer les performances d'inférence, une métrique plus pertinente pourrait être le rappel, qui indique la couverture des transactions frauduleuses. Vertex AI fournit un service d'évaluation pour les métriques telles que le rappel, la précision et l'aire sous la courbe de précision/rappel (AuPRC). Pour en savoir plus, consultez Évaluation de modèle dans Vertex AI.

Les indicateurs qualitatifs, tels que la fluidité ou la valeur de divertissement du contenu généré, ne peuvent pas être calculés de manière objective. Pour évaluer ces indicateurs, vous pouvez utiliser la stratégie LLM-as-a-judge ou des services d'étiquetage humain comme Labelbox.

2. Choisir les sources de données et les techniques appropriées

Une évaluation est statistiquement pertinente lorsqu'elle s'exécute sur un certain volume minimal d'exemples variés. Choisissez les ensembles de données et les techniques que vous utilisez pour les évaluations en suivant des approches telles que les suivantes :

  • Ensemble de données de référence : utilisez des exemples de données fiables, cohérents et précis qui reflètent la distribution de probabilité d'un modèle en production.
  • LLM-as-a-judge : évaluez la sortie d'un modèle génératif à l'aide d'un LLM. Cette approche ne s'applique qu'aux tâches pour lesquelles un LLM peut évaluer un modèle.
  • Commentaires des utilisateurs : pour orienter les futures améliorations, recueillez les commentaires directs des utilisateurs dans le trafic de production.

En fonction de la technique d'évaluation, de la taille et du type de données d'évaluation, ainsi que de la fréquence d'évaluation, vous pouvez utiliser BigQuery ou Cloud Storage comme sources de données, y compris pour le service d'évaluation Vertex AI.

3. Standardiser le pipeline d'évaluation

Pour automatiser le processus d'évaluation, pensez aux services et outils suivants :

  • Service d'évaluation Vertex AI : fournit des primitives prêtes à l'emploi pour suivre les performances des modèles dans le cycle de vie du ML sur Vertex AI.
  • Service d'évaluation de l'IA générative : vous permet d'évaluer n'importe quel modèle ou application générative, et de comparer les résultats de l'évaluation à votre propre jugement et à vos critères d'évaluation. Ce service vous aide également à effectuer des tâches spécialisées telles que l'ingénierie des requêtes, la génération augmentée par récupération (RAG) et l'optimisation des agents d'IA.
  • Outil Vertex AI Automatic side-by-side (AutoSxS) : permet l'évaluation par paire basée sur un modèle.
  • Kubeflow : fournit des composants spéciaux pour exécuter des évaluations de modèles.

Effectuer et suivre des tests fréquents

Pour optimiser efficacement les performances du ML, vous avez besoin d'une plate-forme d'expérimentation dédiée, puissante et interactive. La plate-forme doit disposer des fonctionnalités suivantes :

  • Facilitez le développement itératif pour que les équipes puissent passer de l'idée aux résultats validés rapidement, de manière fiable et à grande échelle.
  • Permettez aux équipes de découvrir efficacement les configurations optimales qu'elles peuvent utiliser pour déclencher des tâches d'entraînement.
  • Fournissez un accès contrôlé aux données, aux fonctionnalités et aux outils pertinents pour effectuer et suivre les tests.
  • Assurez la reproductibilité et le suivi de la traçabilité des données.

Traiter les données comme un service

Isolez les charges de travail expérimentales des systèmes de production et configurez des contrôles de sécurité appropriés pour vos composants de données à l'aide des techniques suivantes :

Technique Description Avantages
Isolation des ressources Isolez les ressources pour différents environnements dans des projets Google Cloud distincts. Par exemple, provisionnez les ressources pour les environnements de développement, de préproduction et de production dans des projets distincts tels que ml-dev, ml-staging et ml-prod. L'isolation des ressources permet d'empêcher les charges de travail expérimentales de consommer les ressources dont les systèmes de production ont besoin. Par exemple, si vous utilisez un seul projet pour les expériences et la production, une expérience peut consommer tous les GPU NVIDIA A100 disponibles pour Vertex AI Training. Cela peut entraîner des interruptions dans le réentraînement d'un modèle de production critique.
Identité et contrôle des accès Appliquez les principes de confiance zéro et du moindre privilège, et utilisez des comptes de service spécifiques aux charges de travail. Accordez l'accès à l'aide de rôles IAM (Identity and Access Management) prédéfinis, comme Utilisateur Vertex AI (roles/aiplatform.user). Cette approche permet d'éviter les actions accidentelles ou malveillantes qui pourraient corrompre les expériences.
Sécurité du réseau Isolez le trafic réseau à l'aide des réseaux de cloud privé virtuel (VPC) et appliquez des périmètres de sécurité à l'aide de VPC Service Controls. Cette approche permet de protéger les données sensibles et d'empêcher le trafic expérimental d'affecter les services de production.
Isolation des données Stockez les données expérimentales dans des buckets Cloud Storage et des ensembles de données BigQuery distincts. L'isolation des données empêche toute modification accidentelle des données de production. Par exemple, sans isolation des données, une expérience peut modifier par inadvertance les valeurs des caractéristiques dans une table BigQuery partagée, ce qui peut entraîner une dégradation significative de la précision du modèle dans l'environnement de production.

Fournir les outils appropriés aux équipes

Pour établir un ensemble d'outils sélectionnés afin d'accélérer l'ensemble du cycle de vie de l'expérimentation (de l'exploration des données à l'entraînement et à l'analyse des modèles), utilisez les techniques suivantes :

  • Prototypage interactif : pour explorer rapidement les données, tester des hypothèses et prototyper du code, utilisez Colab Enterprise ou des instances JupyterLab gérées sur Vertex AI Workbench. Pour en savoir plus, consultez Choisir une solution de notebook.
  • Entraînement de modèles évolutif : exécutez des jobs d'entraînement sur un service géré qui prend en charge l'entraînement distribué et les ressources de calcul évolutives telles que les GPU et les TPU. Cette approche permet de réduire le temps d'entraînement de plusieurs jours à quelques heures et de réaliser plus d'expérimentations en parallèle. Pour en savoir plus, consultez Utiliser des composants spécialisés pour l'entraînement.
  • ML dans la base de données : entraînez des modèles directement dans BigQuery ML à l'aide de SQL. Cette technique permet d'éliminer le déplacement des données et d'accélérer l'expérimentation pour les analystes et les utilisateurs axés sur SQL.
  • Suivi des tests : créez un historique de données de test consultable et comparable en enregistrant les paramètres, les métriques et les artefacts pour chaque exécution de test. Pour en savoir plus, consultez Créer un système de traçabilité des données et des modèles.
  • Optimiser l'IA générative : pour optimiser les performances des applications d'IA générative, vous devez tester les requêtes, la sélection de modèles et le réglage fin. Pour un prompt engineering rapide, utilisez Vertex AI Studio. Pour tester des modèles de base (comme Gemini) et trouver celui qui convient à votre cas d'utilisation et à vos objectifs commerciaux, utilisez Model Garden.

Standardiser pour la reproductibilité et l'efficacité

Pour vous assurer que les tests consomment les ressources de manière efficace et produisent des résultats cohérents et fiables, standardisez et automatisez-les en utilisant les approches suivantes :

  • Assurez-vous d'avoir des environnements cohérents en utilisant des conteneurs : packagez votre code d'entraînement et vos dépendances en tant que conteneurs Docker. Gérez et diffusez les conteneurs à l'aide d'Artifact Registry. Cette approche vous permet de reproduire des problèmes sur différentes machines en répétant des expériences dans des environnements identiques. Vertex AI fournit des conteneurs prédéfinis pour l'entraînement sans serveur.
  • Automatisez les workflows de ML en tant que pipelines : orchestrez le workflow de ML de bout en bout en tant que pipeline codifié à l'aide de Vertex AI Pipelines. Cette approche permet d'appliquer la cohérence, d'assurer la reproductibilité et de suivre automatiquement tous les artefacts et métadonnées dans Vertex ML Metadata.
  • Automatisez le provisionnement avec l'infrastructure en tant que code (IaC) : définissez et déployez des environnements de test standardisés à l'aide d'outils IaC tels que Terraform. Pour vous assurer que chaque projet respecte un ensemble standard de configurations pour la sécurité, la mise en réseau et la gouvernance, utilisez des modules Terraform.

Créer et automatiser l'infrastructure d'entraînement et de diffusion

Pour entraîner et diffuser des modèles d'IA, configurez une plate-forme robuste qui prend en charge le développement, le déploiement et la diffusion de manière efficace et fiable. Cette plate-forme permet à vos équipes d'améliorer efficacement la qualité et les performances de l'entraînement et de la diffusion à long terme.

Utiliser des composants spécialisés pour l'entraînement

Une plate-forme d'entraînement fiable permet d'accélérer les performances et fournit une approche standardisée pour automatiser les tâches répétables du cycle de vie du ML, de la préparation des données à la validation des modèles.

  • Collecte et préparation des données : pour entraîner efficacement votre modèle, vous devez collecter et préparer les données nécessaires à l'entraînement, aux tests et à la validation. Les données peuvent provenir de différentes sources et être de différents types. Vous devez également réutiliser les données pertinentes lors des entraînements et partager les fonctionnalités entre les équipes. Pour améliorer la répétabilité de la phase de collecte et de préparation des données, tenez compte des recommandations suivantes :

  • Exécution de l'entraînement : lorsque vous entraînez un modèle, vous utilisez des données pour créer un objet de modèle. Pour ce faire, vous devez configurer l'infrastructure et les dépendances nécessaires du code d'entraînement. Vous devez également décider comment conserver les modèles d'entraînement, suivre la progression de l'entraînement, évaluer le modèle et présenter les résultats. Pour améliorer la répétabilité de l'entraînement, tenez compte des recommandations suivantes :

  • Orchestration de l'entraînement : déployez des charges de travail d'entraînement en tant qu'étapes d'un pipeline à l'aide de Vertex AI Pipelines. Ce service fournit des services Kubeflow et TFX gérés. Définissez chaque étape du pipeline en tant que composant qui s'exécute dans un conteneur. Chaque composant fonctionne comme une fonction, avec des paramètres d'entrée et des artefacts de sortie qui deviennent des entrées pour les composants suivants du pipeline. Pour optimiser l'efficacité de votre pipeline, tenez compte des recommandations du tableau suivant :

    Objectif Recommandations
    Implémenter l'automatisation de base.
    Augmentez la vitesse et la rentabilité.
    Augmenter la robustesse.
    Implémentez la gouvernance et le suivi.

Utiliser une infrastructure spécialisée pour la prédiction

Pour réduire le travail lié à la gestion de l'infrastructure et des déploiements de modèles, automatisez les flux de tâches répétables. Une approche orientée services vous permet de vous concentrer sur la rapidité et d'accélérer le délai de rentabilité. Tenez compte des recommandations suivantes :

Recommandation Techniques
Implémentez le déploiement automatique.
  • Une fois le modèle entraîné, utilisez l'automatisation pour le déployer. Vertex AI Pipelines fournit des composants spécialisés pour déployer des modèles sur des points de terminaison Vertex AI. Vous pouvez gérer le déploiement automatique à l'aide des flux de contrôle Kubeflow.
  • Pour décider de déployer ou non un modèle en fonction d'une évaluation par rapport à un ensemble de validation, profitez des composants d'évaluation du pipeline. Vous pouvez automatiser le déploiement pour l'inférence par lot à l'aide de composants de prédiction par lot spécialisés dans Vertex AI.
Profitez des fonctionnalités de scaling géré.
Optimisez la latence et le débit sur les points de terminaison Vertex AI.
Optimisez l'utilisation des ressources.
Optimisez le déploiement du modèle.
Surveiller les performances
  • Pour améliorer les performances de diffusion en production, observez les journaux et les métriques d'inférence pour les points de terminaison Vertex AI. Pour comprendre le comportement des modèles en production, vous avez besoin d'outils permettant de surveiller la qualité et les performances. Model Monitoring v2 vous permet de surveiller plusieurs versions d'un modèle et d'itérer rapidement.

Adapter les choix de conception aux exigences de performances

Lorsque vous faites des choix de conception pour améliorer les performances, évaluez si ces choix répondent à vos exigences commerciales ou s'ils sont inutiles et contre-productifs. Pour choisir l'infrastructure, les modèles et les configurations appropriés, identifiez les goulots d'étranglement et évaluez leur lien avec les métriques de performances. Par exemple, même sur des accélérateurs GPU très puissants, les tâches d'entraînement peuvent rencontrer des problèmes de performances. Ces goulots d'étranglement peuvent être dus à des problèmes d'E/S de données dans la couche de stockage ou à des limites de performances du modèle.

Se concentrer sur les performances globales du flux de ML

À mesure que les exigences d'entraînement augmentent en termes de taille de modèle et de taille de cluster, le taux d'échec et les coûts d'infrastructure peuvent augmenter. Par conséquent, le coût de l'échec peut augmenter de manière quadratique. Vous ne pouvez pas vous fier uniquement aux métriques d'efficacité des ressources classiques, comme l'utilisation des FLOP du modèle (MFU). Pour comprendre pourquoi le MFU n'est pas un indicateur suffisant des performances globales de l'entraînement, examinez le cycle de vie d'une tâche d'entraînement typique. Le cycle de vie se compose du flux cyclique suivant :

  1. Création du cluster : les nœuds de calcul sont provisionnés.
  2. Initialisation : l'entraînement est initialisé sur les nœuds de calcul.
  3. Exécution de l'entraînement : les ressources sont utilisées pour la propagation avant ou arrière.
  4. Interruption : le processus d'entraînement est interrompu lors de la création de points de contrôle du modèle ou en raison de la préemption des nœuds de calcul.

Après chaque interruption, le flux précédent est répété.

L'étape d'exécution de l'entraînement ne représente qu'une fraction du cycle de vie d'un job de ML. Par conséquent, l'utilisation des nœuds de calcul pour l'étape d'exécution de l'entraînement n'indique pas l'efficacité globale du job. Par exemple, même si l'étape d'exécution de l'entraînement s'exécute à 100 % d'efficacité, l'efficacité globale peut être faible si des interruptions se produisent fréquemment ou s'il faut beaucoup de temps pour reprendre l'entraînement après des interruptions.

Adopter et suivre les métriques de débit utile

Pour assurer une mesure et une optimisation holistiques des performances, passez des métriques classiques d'efficacité des ressources (comme l'utilisation maximale des ressources) au débit utile. Le débit utile tient compte de la disponibilité et de l'utilisation de vos clusters et de vos ressources de calcul. Il permet de mesurer l'efficacité des ressources sur plusieurs couches.

Les métriques de débit utile se concentrent sur la progression globale d'un job plutôt que sur le fait que le job semble occupé. Les métriques de débit utile vous aident à optimiser les jobs d'entraînement pour obtenir des gains globaux tangibles en termes de productivité et de performances.

Le débit utile vous permet de comprendre précisément les pertes d'efficacité potentielles grâce aux métriques suivantes :

  • Le débit utile de planification correspond à la fraction de temps pendant laquelle toutes les ressources nécessaires à l'entraînement ou à la diffusion sont disponibles.
  • Le débit utile d'exécution représente la proportion d'étapes d'entraînement utiles réalisées au cours d'une période donnée.
  • Le débit utile de programmation correspond à la performance matérielle maximale ou à l'utilisation des FLOP du modèle qu'un job d'entraînement peut extraire de l'accélérateur. Cela dépend de l'utilisation efficace des ressources de calcul sous-jacentes pendant l'entraînement.

Optimiser le débit utile de planification

Pour optimiser le bon débit de planification d'une charge de travail, vous devez identifier les exigences d'infrastructure spécifiques de la charge de travail. Par exemple, l'inférence par lot, l'inférence par flux et l'entraînement ont des exigences différentes :

  • Les charges de travail d'inférence par lot peuvent tolérer certaines interruptions et certains retards dans la disponibilité des ressources.
  • Les charges de travail d'inférence de streaming nécessitent une infrastructure sans état.
  • Les charges de travail d'entraînement nécessitent des engagements d'infrastructure à plus long terme.
Choisir les modes d'accessibilité appropriés

Dans le cloud computing, l'accessibilité est la capacité à provisionner des ressources lorsqu'elles sont requises. Google Cloud propose les modes d'accessibilité suivants :

  • VM à la demande : vous provisionnez des VM Compute Engine lorsqu'elles sont nécessaires et exécutez vos charges de travail sur ces VM. La demande de provisionnement est soumise à la disponibilité des ressources, telles que les GPU. Si une quantité suffisante d'un type de ressource demandé n'est pas disponible, la requête échoue.
  • VM Spot : vous créez des VM en utilisant la capacité de calcul inutilisée. Les VM Spot sont facturées à prix réduit par rapport aux VM à la demande, maisGoogle Cloud peut les préempter à tout moment. Nous vous recommandons d'utiliser des VM spot pour les charges de travail sans état qui peuvent échouer de manière contrôlée lorsque les VM hôtes sont préemptées.
  • Réservations : vous réservez de la capacité sous la forme d'un pool de VM. Les réservations sont idéales pour les charges de travail qui ont besoin d'une assurance de capacité. Utilisez des réservations pour maximiser le débit utile de planification en vous assurant que les ressources sont disponibles lorsque vous en avez besoin.
  • Planificateur de charges de travail dynamique : ce mécanisme de provisionnement met en file d'attente les demandes de VM équipées de GPU dans un pool dédié. Le programmeur de charge de travail dynamique vous aide à éviter les contraintes des autres modes de disponibilité :

    • Situations de rupture de stock en mode à la demande.
    • Contrainte d'absence d'état et risque de préemption des VM Spot.
    • Implications des réservations en termes de coût et de disponibilité.

Le tableau suivant récapitule les modes d'obtention des services Google Cloudet fournit des liens vers la documentation correspondante :

Produit VM à la demande VM Spot Réservations Programmeur de charge de travail dynamique
Compute Engine Créer et démarrer une instance Compute Engine À propos des VM Spot À propos des réservations Créer un MIG comprenant des VM avec GPU
GKE Ajoutez et gérez des pools de nœuds. À propos des VM Spot dans GKE Consommer des ressources zonales réservées Consommation de GPU, de TPU et de H4D avec le provisionnement à démarrage flexible
Cloud Batch Créer et exécuter un job Job par lot avec des VM Spot Garantir la disponibilité des ressources à l'aide de réservations de VM Utiliser des GPU et des VM à démarrage flexible
Vertex AI Training Créer un job d'entraînement sans serveur Utiliser des VM Spot pour les jobs d'entraînement Utiliser des réservations pour les tâches d'entraînement Planifier des jobs d'entraînement en fonction de la disponibilité des ressources
Vertex AI Obtenez des inférences par lot et des inférences en ligne à partir de modèles entraînés personnalisés. Utiliser des VM Spot pour l'inférence Utiliser des réservations pour l'inférence en ligne Utiliser des VM à démarrage flexible pour l'inférence
Planifier les événements de maintenance

Vous pouvez améliorer le bon débit de planification en anticipant et en planifiant la maintenance et les mises à niveau de l'infrastructure.

Optimiser le débit utile d'exécution

Le processus d'entraînement du modèle est fréquemment interrompu par des événements tels que la création de points de contrôle du modèle et la préemption des ressources. Pour optimiser le débit utile d'exécution, vous devez vous assurer que le système reprend l'entraînement et l'inférence de manière efficace une fois que l'infrastructure requise est prête et après toute interruption.

Lors de l'entraînement du modèle, les chercheurs en IA utilisent le checkpointing pour suivre la progression et minimiser la perte d'apprentissage due aux préemptions de ressources. Les interruptions de point de contrôle sont plus longues pour les modèles de grande taille, ce qui affecte encore davantage l'efficacité globale. Après une interruption, l'application d'entraînement doit être redémarrée sur chaque nœud du cluster. Ces redémarrages peuvent prendre un certain temps, car les artefacts nécessaires doivent être rechargés.

Pour optimiser le bon débit d'exécution, utilisez les techniques suivantes :

Technique Description
Implémentez le déclenchement automatique des points de contrôle.

Les points de contrôle fréquents vous permettent de suivre la progression de l'entraînement de manière précise. Toutefois, le processus d'entraînement est interrompu pour chaque point de contrôle, ce qui réduit le débit utile d'exécution. Pour minimiser les interruptions, vous pouvez configurer la création automatique de points de contrôle, où le signal SIGTERM de l'hôte déclenche la création d'un point de contrôle. Cette approche limite les interruptions de checkpointing aux moments où l'hôte a besoin d'être entretenu. N'oubliez pas que certaines défaillances matérielles peuvent ne pas déclencher de signaux SIGTERM. Vous devez donc trouver un équilibre approprié entre les points de contrôle automatiques et les événements SIGTERM.

Vous pouvez configurer la création automatique de points de contrôle à l'aide des techniques suivantes :

Utilisez des stratégies de chargement de conteneurs appropriées.

Dans un cluster GKE, avant que les nœuds puissent reprendre les tâches d'entraînement, le chargement des artefacts requis (données ou points de contrôle du modèle, par exemple) peut prendre un certain temps. Pour réduire le temps nécessaire pour recharger les données et reprendre l'entraînement, utilisez les techniques suivantes :

Pour savoir comment réduire le temps de rechargement des données, consultez Conseils et astuces pour réduire la latence de démarrage à froid sur GKE.

Utilisez le cache de compilation. Si l'entraînement nécessite une pile basée sur la compilation, vérifiez si vous pouvez utiliser un cache de compilation. Lorsque vous utilisez un cache de compilation, le graphique de calcul n'est pas recompilé après chaque interruption de l'entraînement. Les réductions de temps et de coûts qui en résultent sont particulièrement intéressantes lorsque vous utilisez des TPU. JAX vous permet de stocker le cache de compilation dans un bucket Cloud Storage, puis d'utiliser les données mises en cache en cas d'interruption.

Optimiser le débit utile de programmation

Le débit utile du programme représente l'utilisation maximale des ressources pendant l'entraînement, ce qui est la méthode conventionnelle pour mesurer l'efficacité de l'entraînement et du service. Pour améliorer le débit utile du programme, vous avez besoin d'une stratégie de distribution optimisée, d'un chevauchement efficace du calcul et de la communication, d'un accès à la mémoire optimisé et de pipelines efficaces.

Pour optimiser le bon débit du programme, utilisez les stratégies suivantes :

Stratégie Description
Utilisez les options de personnalisation au niveau du framework. Les frameworks ou compilateurs tels que Accelerated Linear Algebra (XLA) fournissent de nombreux composants clés du débit utile de programmation. Pour optimiser davantage les performances, vous pouvez personnaliser les composants fondamentaux du graphique de calcul. Par exemple, Pallas est compatible avec les noyaux personnalisés pour les TPU et les GPU.
Décharger la mémoire sur la DRAM de l'hôte. Pour l'entraînement à grande échelle, qui nécessite une mémoire d'accélérateur très élevée, vous pouvez décharger une partie de l'utilisation de la mémoire sur la DRAM de l'hôte. Par exemple, XLA vous permet de décharger les activations de modèle du pass forward vers la mémoire hôte au lieu d'utiliser la mémoire de l'accélérateur. Cette stratégie vous permet d'améliorer les performances d'entraînement en augmentant la capacité du modèle ou la taille du lot.
Exploitez la quantification pendant l'entraînement.

Vous pouvez améliorer l'efficacité de l'entraînement et le débit utile du programme en tirant parti de la quantification du modèle pendant l'entraînement. Cette stratégie réduit la précision des gradients ou des pondérations lors de certaines étapes de l'entraînement. Le débit utile du programme s'en trouve donc amélioré. Toutefois, cette stratégie peut nécessiter un effort d'ingénierie supplémentaire lors du développement du modèle.

Pour en savoir plus, consultez les ressources suivantes :

Implémentez le parallélisme.

Pour augmenter l'utilisation des ressources de calcul disponibles, vous pouvez utiliser des stratégies de parallélisme au niveau du modèle lors de l'entraînement et du chargement des données.

Pour en savoir plus sur le parallélisme de modèle, consultez les ressources suivantes :

Pour atteindre le parallélisme des données, vous pouvez utiliser des outils tels que les suivants :

Se concentrer sur les exigences spécifiques à la charge de travail

Pour que vos efforts d'optimisation des performances soient efficaces et complets, vous devez adapter vos décisions d'optimisation aux exigences spécifiques de vos charges de travail d'entraînement et d'inférence. Choisissez les modèles d'IA appropriés et utilisez les stratégies d'optimisation des requêtes pertinentes. Sélectionnez les frameworks et outils appropriés en fonction des exigences de vos charges de travail.

Identifier les exigences spécifiques à la charge de travail

Évaluez les exigences et les contraintes de vos charges de travail dans les domaines suivants :

Zone Description
Exigences concernant les tâches et la qualité

Définissez la tâche principale de la charge de travail et le niveau de référence des performances. Répondez à des questions comme celles-ci :

  • La tâche implique-t-elle une régression, une classification ou une génération ?
  • Quelle est la qualité minimale acceptable (par exemple, la précision, la justesse ou le rappel) ?
Contexte de diffusion

Analysez l'environnement opérationnel dans lequel vous prévoyez de déployer le modèle. Le contexte de diffusion a souvent un impact important sur les décisions de conception. Tenez compte des facteurs suivants :

  • Latence : le système a-t-il besoin de prédictions synchrones en temps réel ou un processus par lot asynchrone est-il acceptable ?
  • Connectivité : devez-vous exécuter le modèle hors connexion ou sur un appareil de périphérie ?
  • Volume : quels sont les niveaux moyens et maximaux attendus pour la charge de prédiction ? Les niveaux de charge influencent vos décisions concernant les stratégies de scaling et l'infrastructure.
Compétences et économie de l'équipe Évaluez la valeur commerciale de l'achat de la solution par rapport au coût et à la complexité de sa création et de sa maintenance. Déterminez si votre équipe possède les compétences spécialisées requises pour le développement de modèles personnalisés ou si un service géré pourrait offrir un délai de rentabilité plus rapide.

Choisir un modèle approprié

Si une API ou un modèle ouvert peuvent fournir les performances et la qualité requises, utilisez cette API ou ce modèle.

  • Pour les tâches spécifiques à une modalité, comme la reconnaissance optique des caractères (OCR), l'étiquetage et la modération de contenu, choisissez des API de ML comme les suivantes :

  • Pour les applications d'IA générative, envisagez d'utiliser des modèles Google tels que Gemini, Imagen et Veo.

    Explorez Model Garden et choisissez parmi une sélection de modèles Google de fondation et spécifiques à des tâches. Model Garden fournit également des modèles ouverts tels que Gemma et des modèles tiers, que vous pouvez exécuter dans Vertex AI ou déployer sur des runtimes tels que GKE.

  • Si une tâche peut être effectuée à l'aide d'une API de ML ou d'un modèle d'IA générative, tenez compte de la complexité de la tâche. Pour les tâches complexes, les grands modèles comme Gemini peuvent offrir de meilleures performances que les petits modèles.

Améliorer la qualité grâce à de meilleures requêtes

Pour améliorer la qualité de vos requêtes à grande échelle, utilisez l'optimiseur de requêtes Vertex AI. Vous n'avez pas besoin de réécrire manuellement les instructions et les requêtes système. L'optimiseur de requêtes est compatible avec les approches suivantes :

  • Optimisation zero-shot : approche à faible latence qui améliore une seule requête ou instruction système en temps réel.
  • Optimisation basée sur les données : approche avancée qui améliore les requêtes en évaluant les réponses d'un modèle à des exemples de requêtes par rapport à des métriques d'évaluation spécifiques.

Pour obtenir d'autres consignes sur l'optimisation des requêtes, consultez Présentation des stratégies de requête.

Améliorer les performances des points de terminaison de ML et d'IA générative

Pour améliorer la latence ou le débit (jetons par seconde) des points de terminaison de ML et d'IA générative, tenez compte des recommandations suivantes :

Utiliser des solutions nécessitant peu de code et le réglage

Si les modèles pré-entraînés ne répondent pas à vos exigences, vous pouvez améliorer leurs performances pour des domaines spécifiques à l'aide des solutions suivantes :

  • AutoML est une solution low-code qui permet d'améliorer les résultats d'inférence avec un minimum d'efforts techniques pour un large éventail de tâches. AutoML vous permet de créer des modèles optimisés selon plusieurs dimensions : architecture, performances et phase d'entraînement (via la création de points de contrôle).
  • Le réglage vous aide à obtenir une génération de meilleure qualité et plus stable, ainsi qu'une latence plus faible avec des requêtes plus courtes et sans beaucoup de données. Nous vous recommandons de commencer le réglage en utilisant les valeurs par défaut des hyperparamètres. Pour en savoir plus, consultez Réglage supervisé pour Gemini : guide des bonnes pratiques.

Optimiser l'entraînement autogéré

Dans certains cas, vous pouvez décider de réentraîner un modèle ou de gérer entièrement un job d'affinage. Cette approche nécessite des compétences avancées et du temps supplémentaire en fonction du modèle, du framework et des ressources que vous utilisez.

Profitez des options de framework optimisées pour les performances, comme les suivantes :

  • Utilisez des images ou des conteneurs de deep learning, qui incluent les dernières dépendances logicielles et les bibliothèques spécifiques àGoogle Cloud.

  • Exécutez l'entraînement du modèle avec Ray sur Google Cloud :

    • Ray sur Vertex AI vous permet d'utiliser le framework d'entraînement distribué de Ray sur Compute Engine ou GKE, et simplifie la gestion du framework.
    • Vous pouvez autogérer Ray sur GKE avec KubeRay en déployant l'opérateur Ray sur un cluster existant.
  • Déployez des charges de travail d'entraînement sur un cluster de calcul que vous provisionnez à l'aide de l'outil Open Source Cluster Toolkit. Pour provisionner efficacement des clusters optimisés pour les performances, utilisez des plans basés sur YAML. Gérez les clusters à l'aide de planificateurs tels que Slurm et GKE.

  • Entraînez des architectures de modèles standards à l'aide de recettes optimisées pour les GPU.

Créez des architectures et des stratégies d'entraînement qui optimisent les performances à l'aide des techniques suivantes :

  • Implémentez l'entraînement distribué sur Vertex AI ou sur les frameworks décrits précédemment. L'entraînement distribué permet le parallélisme des modèles et des données, ce qui peut aider à augmenter la taille de l'ensemble de données d'entraînement et du modèle, et à réduire le temps d'entraînement.
  • Pour entraîner efficacement le modèle et explorer différentes configurations de performances, exécutez la vérification à des intervalles appropriés. Pour en savoir plus, consultez Optimiser le débit utile d'exécution.

Optimiser la diffusion autogérée

Pour le service autogéré, vous avez besoin d'opérations d'inférence efficaces et d'un débit élevé (nombre d'inférences par unité de temps).

Pour optimiser votre modèle pour l'inférence, envisagez les approches suivantes :

  • Quantification : réduisez la taille du modèle en représentant ses paramètres dans un format de précision inférieure. Cette approche permet de réduire la consommation de mémoire et la latence. Toutefois, la quantification après l'entraînement peut modifier la qualité du modèle. Par exemple, la quantification après l'entraînement peut entraîner une perte de précision.

    • La quantification post-entraînement (PTQ) est une tâche répétable. Les principaux frameworks de ML tels que PyTorch et TensorFlow sont compatibles avec la PTQ.
    • Vous pouvez orchestrer la quantification post-entraînement à l'aide d'un pipeline sur Vertex AI Pipelines.
    • Pour stabiliser les performances du modèle et bénéficier d'une réduction de sa taille, vous pouvez utiliser Qwix.
  • Parallélisme Tensor : Améliorez le débit d'inférence en répartissant la charge de calcul sur plusieurs GPU.

  • Optimisation de la mémoire : augmentez le débit et optimisez la mise en cache de l'attention, les tailles de lot et les tailles d'entrée.

Utilisez des frameworks optimisés pour l'inférence, tels que les suivants :

Optimiser la consommation de ressources en fonction des objectifs de performances

L'optimisation des ressources permet d'accélérer l'entraînement, d'itérer efficacement, d'améliorer la qualité des modèles et d'augmenter la capacité de diffusion.

Choisir les types de processeurs appropriés

Le choix de la plate-forme de calcul peut avoir un impact significatif sur l'efficacité de l'entraînement d'un modèle.

  • Les modèles de deep learning fonctionnent bien sur les GPU et les TPU, car ils nécessitent de grandes quantités de mémoire et un calcul matriciel parallèle. Pour en savoir plus sur les charges de travail adaptées aux processeurs, aux GPU et aux TPU, consultez Quand utiliser les TPU ?.
  • Les VM optimisées pour le calcul sont idéales pour les charges de travail HPC.

Optimiser l'entraînement et le service sur les GPU

Pour optimiser les performances des charges de travail d'entraînement et d'inférence déployées sur des GPU, tenez compte des recommandations suivantes :

Recommandation Description
Sélectionnez les spécifications de mémoire appropriées. Lorsque vous choisissez des types de machines GPU, sélectionnez les spécifications de mémoire en fonction des facteurs suivants :
  • Capacité du modèle : taille totale de la mémoire (empreinte mémoire) des paramètres et des gradients entraînables du modèle.
  • Type de charge de travail : l'entraînement nécessite plus de mémoire que le service.
  • Taille du lot d'entraînement : pour les lots plus importants, davantage d'activations sont stockées et la mémoire requise est plus élevée.
  • Type de données : les charges de travail qui traitent des images de haute qualité ou qui utilisent des calculs arithmétiques de haute précision nécessitent des types de machines avec des spécifications de mémoire plus importantes.
Évaluez les exigences en termes de bande passante du cœur et de la mémoire. En plus de la taille de la mémoire, tenez compte d'autres exigences, comme le nombre de Tensor Cores et la bande passante de la mémoire. Ces facteurs influencent la vitesse d'accès aux données et les calculs effectués sur la puce.
Choisissez les types de machines GPU appropriés.

L'entraînement et la diffusion peuvent nécessiter différents types de machines GPU.

  • Les tâches d'entraînement nécessitent un ou plusieurs GPU, voire plusieurs nœuds, avec une mémoire et une bande passante considérables.
  • Les charges de travail d'inférence nécessitent relativement moins de mémoire et moins de GPU hautes performances.

Nous vous recommandons d'utiliser des types de machines volumineux pour l'entraînement et des types de machines plus petits et économiques pour l'inférence. Pour détecter les problèmes d'utilisation des ressources, utilisez des outils de surveillance tels que l'agent NVIDIA DCGM et ajustez les ressources en conséquence.

Exploitez le partage de GPU sur GKE.

Dans certains cas, il peut être inefficace de dédier un GPU complet à un seul conteneur. Pour vous aider à surmonter cette inefficacité, GKE est compatible avec les stratégies de partage de GPU suivantes :

Pour maximiser l'utilisation des ressources, nous vous recommandons d'utiliser une combinaison appropriée de ces stratégies. Par exemple, lorsque vous virtualisez un grand GPU H100 à l'aide des stratégies de temps partagé et de GPU multi-instances, la plate-forme de diffusion peut être mise à l'échelle en fonction du trafic. Les ressources GPU sont réaffectées en temps réel en fonction de la charge sur les conteneurs de modèle.

Optimisez le routage et l'équilibrage de charge. Lorsque vous déployez plusieurs modèles sur un cluster, vous pouvez utiliser GKE Inference Gateway pour optimiser le routage et l'équilibrage de charge. Inference Gateway étend les mécanismes de routage de l'API Kubernetes Gateway en utilisant les fonctionnalités suivantes :
Partagez des ressources pour les points de terminaison Vertex AI. Vous pouvez configurer plusieurs points de terminaison Vertex AI pour qu'ils utilisent un pool de ressources commun. Pour en savoir plus sur cette fonctionnalité et ses limites, consultez Partager des ressources entre les déploiements.

Optimiser l'entraînement et le service sur les TPU

Les TPU sont des puces Google qui permettent de résoudre les problèmes de mise à l'échelle massive pour les algorithmes de ML. Ces puces offrent des performances optimales pour les charges de travail d'entraînement et d'inférence d'IA. Par rapport aux GPU, les TPU offrent une efficacité supérieure pour l'entraînement et la diffusion du deep learning. Pour en savoir plus sur les cas d'utilisation adaptés aux TPU, consultez Quand utiliser les TPU ?. Les TPU sont compatibles avec les frameworks de ML tels que TensorFlow, PyTorch et JAX.

Pour optimiser les performances des TPU, utilisez les techniques suivantes, décrites dans le guide des performances Cloud TPU :

  • Maximisez la taille du lot pour chaque unité de mémoire TPU.
  • Assurez-vous que les TPU ne sont pas inactifs. Par exemple, implémentez des lectures de données parallèles.
  • Optimisez le compilateur XLA. Ajustez les dimensions du Tensor selon vos besoins et évitez le remplissage. XLA optimise automatiquement les performances d'exécution des graphiques à l'aide d'outils tels que la fusion et la diffusion.

Optimiser l'entraînement sur les TPU et la diffusion sur les GPU

Les TPU permettent un entraînement efficace. Les GPU offrent polyvalence et disponibilité accrue pour les charges de travail d'inférence. Pour combiner les avantages des TPU et des GPU, vous pouvez entraîner des modèles sur des TPU et les diffuser sur des GPU. Cette approche peut aider à réduire les coûts globaux et à accélérer le développement, en particulier pour les grands modèles. Pour en savoir plus sur les emplacements où les types de machines TPU et GPU sont disponibles, consultez Régions et zones TPU et Emplacements des GPU.

Optimiser la couche de stockage

La couche de stockage de votre infrastructure d'entraînement et de diffusion est essentielle pour les performances. Les jobs d'entraînement et les charges de travail d'inférence impliquent les activités de stockage suivantes :

  • Chargement et traitement des données.
  • Enregistrement du modèle pendant l'entraînement.
  • Recharger les binaires pour reprendre l'entraînement après des préemptions de nœuds.
  • Charger le modèle de manière efficace pour gérer l'inférence à grande échelle.

Les facteurs suivants déterminent vos besoins en termes de capacité de stockage, de bande passante et de latence :

  • Taille du modèle
  • Volume de l'ensemble de données d'entraînement
  • Fréquence des points de contrôle
  • Modèles de scaling

Si vos données d'entraînement se trouvent dans Cloud Storage, vous pouvez réduire la latence de chargement des données en utilisant la mise en cache des fichiers dans Cloud Storage FUSE. Cloud Storage FUSE vous permet d'installer un bucket Cloud Storage sur des nœuds de calcul disposant de disques SSD locaux. Pour savoir comment améliorer les performances de Cloud Storage FUSE, consultez Bonnes pratiques pour optimiser les performances.

Un connecteur PyTorch vers Cloud Storage offre des performances élevées pour la lecture et l'écriture de données. Ce connecteur est particulièrement utile pour l'entraînement avec des ensembles de données volumineux et pour la création de points de contrôle de grands modèles.

Compute Engine est compatible avec différents types de disques persistants. Avec Google Cloud Hyperdisk ML, vous pouvez provisionner le débit et les IOPS requis en fonction des besoins d'entraînement. Pour optimiser les performances des disques, commencez par les redimensionner, puis envisagez de modifier le type de machine. Pour en savoir plus, consultez Optimiser les performances des disques persistants. Pour tester la charge des performances de lecture/écriture et de la latence au niveau du stockage, vous pouvez utiliser des outils tels que Flexible I/O tester (FIO).

Pour en savoir plus sur le choix et l'optimisation des services de stockage pour vos charges de travail d'IA et de ML, consultez la documentation suivante :

Optimiser la couche réseau

Pour optimiser les performances des charges de travail d'IA et de ML, configurez vos réseaux VPC afin de fournir une bande passante adéquate et un débit maximal avec une latence minimale. Tenez compte des recommandations suivantes :

Recommandation Techniques suggérées pour l'implémentation
Optimisez les réseaux VPC.
Placez les VM plus près les unes des autres.
Configurez les VM pour qu'elles soient compatibles avec des débits réseau plus élevés.

Pour innover, résoudre les problèmes et examiner les problèmes de performances, vous devez établir un lien clair entre les choix de conception et les résultats en termes de performances. Vous avez besoin d'un enregistrement fiable de la traçabilité des assets de ML, des déploiements, des sorties de modèle, ainsi que des configurations et des entrées correspondantes qui ont produit les sorties.

Créer un système de traçabilité des données et des modèles

Pour améliorer les performances de manière fiable, vous devez pouvoir retracer chaque version du modèle jusqu'aux données, au code et aux configurations exacts qui ont été utilisés pour le produire. À mesure que vous mettez à l'échelle un modèle, ce type de traçage devient difficile. Vous avez besoin d'un système de lignée qui automatise le processus de traçage et crée un enregistrement clair et interrogeable pour chaque test. Ce système permet à vos équipes d'identifier et de reproduire efficacement les choix qui mènent aux modèles les plus performants.

Pour afficher et analyser la traçabilité des artefacts de pipeline pour les charges de travail dans Vertex AI, vous pouvez utiliser Vertex ML Metadata ou Dataplex Universal Catalog. Les deux options vous permettent d'enregistrer des événements ou des artefacts pour répondre aux exigences de gouvernance, et d'interroger les métadonnées et de récupérer des informations si nécessaire. Cette section présente les deux options. Pour en savoir plus sur les différences entre Vertex ML Metadata et Dataplex Universal Catalog, consultez Suivre la traçabilité des artefacts de pipelines.

Implémentation par défaut : Vertex AI ML Metadata

Votre première exécution de pipeline ou votre premier test dans Vertex AI crée un service Vertex ML Metadata par défaut. Les paramètres et les métadonnées d'artefact que le pipeline utilise et génère sont automatiquement enregistrés dans un magasin Vertex ML Metadata. Le modèle de données utilisé pour organiser et connecter les métadonnées stockées contient les éléments suivants :

  • Contexte : groupe d'artefacts et d'exécutions représentant une exécution de test.
  • Exécution : étape d'un workflow, comme la validation des données ou l'entraînement d'un modèle.
  • Artefact : entité, objet ou donnée d'entrée ou de sortie qu'un workflow produit et consomme.
  • Événement : relation entre un artefact et une exécution.

Par défaut, Vertex ML Metadata capture et suit tous les artefacts d'entrée et de sortie d'une exécution de pipeline. Il intègre ces artefacts à Vertex AI Experiments, Model Registry et Vertex AI managed datasets.

La journalisation automatique est une fonctionnalité intégrée à Vertex AI Training qui permet d'enregistrer automatiquement les données dans Vertex AI Experiments. Pour suivre efficacement les expériences d'optimisation des performances, utilisez les intégrations intégrées entre Vertex AI Experiments et le service Vertex ML Metadata associé.

Vertex ML Metadata fournit une syntaxe et des opérateurs de filtrage pour exécuter des requêtes sur les artefacts, les exécutions et les contextes. Si nécessaire, vos équipes peuvent récupérer efficacement des informations sur le lien de registre d'un modèle et sur son ensemble de données ou son évaluation pour une exécution d'expérience spécifique. Ces métadonnées peuvent aider à accélérer la découverte des choix qui optimisent les performances. Par exemple, vous pouvez comparer des exécutions de pipeline, comparer des modèles et comparer des exécutions de test. Pour en savoir plus, y compris des exemples de requêtes, consultez Analyser les ressources Vertex ML Metadata.

Implémentation alternative : Dataplex Universal Catalog

Dataplex Universal Catalog détecte les métadonnées des ressourcesGoogle Cloud , y compris les artefacts Vertex AI. Vous pouvez également intégrer une source de données personnalisée.

Dataplex Universal Catalog peut lire les métadonnées dans plusieurs régions et dans des magasins à l'échelle de l'organisation, tandis que Vertex ML Metadata est une ressource spécifique à un projet. Par rapport à Vertex ML Metadata, Dataplex Universal Catalog nécessite plus de configuration. Toutefois, Dataplex Universal Catalog peut être approprié lorsque vous avez besoin d'une intégration avec votre portefeuille de données plus large dans Google Cloud et avec des magasins à l'échelle de l'organisation.

Dataplex Universal Catalog détecte et collecte les métadonnées des projets pour lesquels l'API Data Lineage est activée. Les métadonnées du catalogue sont organisées à l'aide d'un modèle de données qui se compose de projets, de groupes d'entrées, d'entrées et d'aspects. Dataplex Universal Catalog fournit une syntaxe spécifique que vous pouvez utiliser pour découvrir des artefacts. Si nécessaire, vous pouvez mapper les artefacts Vertex ML Metadata avec Dataplex Universal Catalog.

Utiliser des outils d'explicabilité

Le comportement d'un modèle d'IA est basé sur les données utilisées pour l'entraîner. Ce comportement est encodé en tant que paramètres dans les fonctions mathématiques. Il peut être difficile de comprendre exactement pourquoi un modèle se comporte d'une certaine manière. Toutefois, ces connaissances sont essentielles pour optimiser les performances.

Par exemple, prenons un modèle de classification d'images dont les données d'entraînement ne contiennent que des images de voitures rouges. Le modèle peut apprendre à identifier le libellé "voiture" en fonction de la couleur de l'objet plutôt que de ses attributs spatiaux et de forme. Lorsque le modèle est testé avec des images de voitures de différentes couleurs, ses performances peuvent se dégrader. Les sections suivantes décrivent les outils que vous pouvez utiliser pour identifier et diagnostiquer ces problèmes.

Détecter les biais de données

Lors de la phase d'analyse exploratoire des données (EDA) d'un projet de ML, vous identifiez les problèmes liés aux données, tels que les ensembles de données déséquilibrés et les biais.

Dans les systèmes de production, vous réentraînez souvent les modèles et exécutez des tests avec différents ensembles de données. Pour standardiser les données et les comparer entre les tests, nous vous recommandons d'adopter une approche systématique de l'AED qui inclut les caractéristiques suivantes :

  • Automatisation : à mesure que la taille de l'ensemble d'entraînement augmente, le processus EDA doit s'exécuter automatiquement en arrière-plan.
  • Couverture étendue : lorsque vous ajoutez de nouvelles fonctionnalités, l'EDA doit révéler des informations sur ces nouvelles fonctionnalités.

De nombreuses tâches d'EDA sont spécifiques au type de données et au contexte métier. Pour automatiser le processus EDA, utilisez BigQuery ou un service de traitement de données géré comme Dataflow. Pour en savoir plus, consultez Classification sur des données déséquilibrées et Métriques de biais de données pour Vertex AI.

Comprendre les caractéristiques et le comportement des modèles

En plus de comprendre la distribution des données dans les ensembles d'entraînement et de validation, ainsi que leurs biais, vous devez comprendre les caractéristiques et le comportement d'un modèle au moment de la prédiction. Pour comprendre le comportement du modèle, utilisez les outils suivants :

Outil Description Finalités
Explications basées sur des exemples Vous pouvez utiliser des explications basées sur des exemples dans Vertex Explainable AI pour comprendre une prédiction en trouvant les exemples les plus similaires dans les données d'entraînement. Cette approche repose sur le principe selon lequel des entrées similaires produisent des sorties similaires.
  • Identifiez et corrigez les lacunes dans les données d'entraînement en trouvant des exemples similaires pour une prédiction incorrecte.
  • Classer les entrées que le modèle n'a pas été initialement entraîné à reconnaître, en utilisant les voisins d'un ensemble de référence.
  • Identifiez les anomalies en trouvant les entrées qui sont très différentes de tous les exemples d'entraînement connus.
  • Rendez la collecte de données plus efficace en identifiant les cas ambigus, par exemple lorsque les voisins ont des libellés mixtes. Priorisez ces cas pour un examen manuel.
Explications basées sur les caractéristiques

Pour les prédictions basées sur des données tabulaires ou des images, les explications basées sur les caractéristiques indiquent dans quelle mesure chaque caractéristique affecte une prédiction par rapport à une référence.

Vertex AI propose différentes méthodes d'attribution de caractéristiques en fonction du type de modèle et de la tâche. Les méthodes reposent généralement sur l'échantillonnage et l'analyse de sensibilité pour mesurer l'ampleur des changements de sortie en réponse aux changements d'une caractéristique d'entrée.

  • Identifier les biais qu'une étape de validation pourrait manquer
  • Optimisez les performances en identifiant les caractéristiques les plus importantes pour une prédiction. Pour améliorer la qualité et les performances d'un modèle, les ingénieurs en ML peuvent ajouter, supprimer ou concevoir des caractéristiques de manière intentionnelle.
Outil de simulation What-If L'outil de simulation What-If a été développé par l'initiative People + AI Research (PAIR) de Google pour vous aider à comprendre et à visualiser le comportement des modèles d'images et tabulaires. Pour obtenir des exemples d'utilisation de l'outil, consultez les démonstrations Web de l'outil What-If.
  • Déboguez et identifiez la cause racine des prédictions incorrectes.
  • Découvrez les performances d'un modèle dans différents sous-ensembles de données en identifiant les biais grâce à une analyse de l'équité.
  • Comprendre le comportement d'un modèle, en particulier la relation entre les prédictions d'un modèle et les caractéristiques d'entrée.
  • Comparer les prédictions à l'aide d'un outil de comparaison visuelle qui nécessite deux modèles ou une référence de vérité terrain.

Contributeurs

Auteurs :

Autres contributeurs :