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

Last reviewed 2026-10-29 UTC

Ce document du Well-Architected FrameworkGoogle Cloud  : 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 sont conformes au pilier d'optimisation des performances du Well-Architected Framework.

Les systèmes d'IA et de ML offrent des fonctionnalités avancées d'automatisation et de prise de décision à 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 client. 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 à d'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 LLM de très grande taille peuvent être très performants sur une infrastructure d'entraînement massive, mais peuvent ne pas l'être dans des environnements à capacité limitée, comme les appareils mobiles.

Les recommandations de ce document sont mises en correspondance avec les principes fondamentaux suivants :

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

Votre stratégie et vos objectifs commerciaux sont la base pour exploiter les technologies d'IA et de ML. Traduisez vos objectifs commerciaux en indicateurs clés de performance (KPI) mesurables. Par exemple, le revenu total, les coûts, le taux de conversion, le taux de rétention ou de désabonnement, la satisfaction client et la satisfaction des employés sont des KPI.

Définissez 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 qui offrent les meilleures performances ne conduisent pas nécessairement à des résultats commerciaux optimaux. 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, distinguez et hiérarchisez les objectifs de qualité et de performances :

  • La qualité fait référence aux caractéristiques inhérentes qui déterminent la valeur d'une entité. Cela vous aide à déterminer si l'entité répond à vos attentes et à vos normes.
  • Les performances font référence à l'efficacité avec laquelle une entité fonctionne ou remplit l'objectif prévu.

Les ingénieurs en ML peuvent améliorer les métriques de performances d'un modèle pendant le processus d'entraînement. Gemini Enterprise Agent Platform fournit un service d'évaluation que les ingénieurs en ML peuvent utiliser pour mettre en œuvre 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 Model Monitoring sur Gemini Enterprise Agent Platform. Pour sélectionner les modèles appropriés et décider de la manière de 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 d'un système de détection des fraudes basé sur l'IA :

  • Objectif d'entreprise : pour un système de détection des fraudes, un objectif d'entreprise irréaliste consiste à détecter 100 % des transactions frauduleuses avec précision en une nanoseconde, avec 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, avec un volume maximal d'un million de transactions par seconde.
  • Métriques de performances : la détection des fraudes 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. La détection des transactions potentiellement frauduleuses peut être plus importante que la précision. 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 observez tout écart par rapport aux objectifs d'entreprise. Une stratégie de surveillance complète vous aide à prendre des décisions critiques concernant la qualité du modèle et l'utilisation des ressources, par exemple :

  • Décider quand arrêter un job d'entraînement
  • Déterminer si les performances d'un modèle se dégradent en production.
  • Réduisez les coûts et les délais de mise sur le marché des nouveaux modèles.

Surveillance pendant les tests et l'entraînement

L'objectif de l'étape 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 comment 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 procéder comme suit :

  • 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, tels que les histogrammes de pondérations et de biais.
  • Représenter visuellement les données d'entraînement
  • Profiler des algorithmes d'entraînement sur différents matériels

Pour surveiller l'expérimentation et l'entraînement, tenez compte des recommandations suivantes :

  • Qualité du modèle : pour visualiser et suivre les métriques de test telles que la justesse, 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 suivants :

  • Suivi des tests : Experiments sur Gemini Enterprise Agent Platform s'intègre aux instances Agent Platform TensorBoard gérées de niveau entreprise 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 : Agent Platform exporte les métriques vers Monitoring et collecte les données de télémétrie et les 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 Agent Platform.

  • 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 du centre de données NVIDIA (DCGM), 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 la mise en service de 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 d'entraînement géré Gemini Enterprise Agent Platform, vous pouvez inspecter le conteneur d'entraînement à l'aide d'une session d'interface système interactive.

Surveillance pendant la mise en service : prédiction par flux

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

Model Monitoring sur Agent Platform 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.

  • Choisissez un objectif de surveillance : en fonction de la sensibilité d'un cas d'utilisation aux modifications des données fournies au modèle, vous pouvez surveiller différents types d'objectifs : dérive des caractéristiques d'entrée, dérive de sortie et attribution de caractéristiques. Model Monitoring sur Agent Platform v2 vous permet de surveiller les modèles que vous déployez sur une plate-forme de diffusion gérée comme Agent Platform, ainsi que 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 que pour un point de terminaison.
  • Surveiller la mise en service des modèles d'IA générative : pour garantir 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 sur tous les modèlesGoogle Cloud , utilisez le tableau de bord d'observabilité des modèles.

Surveillance pendant la mise en service : prédiction par lot

Pour surveiller la prédiction par lots, vous pouvez exécuter des jobs d'évaluation standards dans le service d'évaluation Agent Platform. Model Monitoring sur Agent Platform 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 des ressources à l'aide des métriques de l'explorateur de métriques.

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

Pour faire passer les modèles de l'état de prototypes à des systèmes de production fiables, vous avez besoin d'un processus d'évaluation standardisé. Ce processus vous aide à suivre la progression des itérations, à comparer différents modèles, à détecter et à atténuer les biais, et à vous assurer que vous respectez 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 de 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. Standardisez 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 supervisée des fraudes 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 peut être le rappel, qui indique la couverture des transactions frauduleuses. Agent Platform fournit un service d'évaluation pour des 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 Agent Platform.

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 manuel comme Labelbox.

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

Une évaluation est statistiquement significative 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 utilisant des approches telles que les suivantes :

  • Ensemble de données de référence : utilisez des échantillons 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 guider les améliorations futures, recueillez les commentaires directs des utilisateurs dans le cadre du trafic de production.

Selon la technique d'évaluation, la taille et le type des données d'évaluation, ainsi que la fréquence d'évaluation, vous pouvez utiliser BigQuery ou Cloud Storage comme sources de données, y compris pour le service d'évaluation Agent Platform.

3. Standardiser le pipeline d'évaluation

Pour automatiser le processus d'évaluation, tenez compte des services et outils suivants :

  • Service d'évaluation Agent Platform : fournit des primitives prêtes à l'emploi pour suivre les performances du modèle dans le cadre du cycle de vie du ML sur Agent Platform.
  • Service d'évaluation de l'IA générative : vous permet d'évaluer n'importe quel modèle ou application d'IA 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 le prompt engineering, la génération augmentée par récupération (RAG) et l'optimisation des agents IA.
  • Outil d'évaluation automatique côte à côte (AutoSxS) d'Agent Platform : compatible avec l'évaluation par paire basée sur un modèle.
  • Kubeflow : fournit des composants spéciaux pour exécuter des évaluations de modèles.

Exécuter et suivre des tests fréquents

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

  • Faciliter le développement itératif, afin que les équipes puissent passer d'une idée à des résultats validés avec rapidité, fiabilité et évolutivité.
  • Permettre aux équipes de découvrir efficacement les configurations optimales qu'elles peuvent utiliser pour déclencher des jobs d'entraînement.
  • Fournir un accès contrôlé aux données, fonctionnalités et outils pertinents pour effectuer et suivre des tests.
  • Permettre 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 éléments de données à l'aide des techniques suivantes :

Technique Description Avantages
Isolation des ressources Isolez les ressources de 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'éviter que les charges de travail expérimentales ne consomment les ressources dont les systèmes de production ont besoin. Par exemple, si vous utilisez un seul projet pour les tests et la production, un test peut consommer tous les GPU NVIDIA A100 disponibles pour l'entraînement géré Agent Platform. 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 à la charge de travail. Accordez l'accès à l'aide de rôles IAM (Identity and Access Management) prédéfinis, tels que Utilisateur de la plate-forme d'agents (roles/aiplatform.user). Cette approche permet d'éviter les actions accidentelles ou malveillantes susceptibles de corrompre les tests.
Sécurité réseau Isolez le trafic réseau à l'aide de 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'éviter que le trafic expérimental n'affecte 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, un test peut modifier par inadvertance les valeurs de caractéristiques dans une table BigQuery partagée, ce qui peut entraîner une dégradation significative de la justesse du modèle dans l'environnement de production.

Fournir les outils appropriés aux équipes

Pour établir un ensemble d'outils organisé permettant 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 l'exploration rapide des données, les tests d'hypothèses et le prototypage de code, utilisez Colab Enterprise ou des instances JupyterLab gérées sur Gemini Enterprise Agent Platform 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é compatible avec l'entraînement distribué et des ressources de calcul évolutives telles que les GPU et Cloud TPU. Cette approche permet de réduire le temps d'entraînement de plusieurs jours à quelques heures et d'effectuer davantage 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 de SQL.
  • Suivi des tests : créez un historique des données de test interrogeable et comparable en consignant 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 l'affinage. Pour un prompt engineering rapide, utilisez Agent Studio sur Gemini Enterprise Agent Platform. Pour tester des modèles de fondation (comme Gemini) et trouver un modèle adapté à 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 efficacement les ressources et produisent des résultats cohérents et fiables, standardisez et automatisez les tests en utilisant les approches suivantes :

  • Assurez la cohérence des environnements à l'aide de conteneurs : empaquetez 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 les problèmes sur différentes machines en répétant les tests dans des environnements identiques. Agent Platform fournit des conteneurs prédéfinis pour l'entraînement sans serveur.
  • Automatiser 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 Gemini Enterprise Agent Platform 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 Agent Platform ML Metadata.
  • Automatiser le provisionnement avec l'infrastructure as code (IaC) : définissez et déployez des environnements d'expérimentation standardisés à l'aide d'outils IaC tels que Terraform. Pour vous assurer que chaque projet respecte un ensemble standardisé 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 mettre en service des modèles d'IA, configurez une plate-forme robuste qui permet un développement, un déploiement et une mise en service efficaces et fiables. 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étitives du cycle de vie du ML, de la préparation des données à la validation du modèle.

Collecte et préparation des données

Pour entraîner efficacement un 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 d'une exécution d'entraînement à l'autre et partager les caractéristiques 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 d'Agent Platform Pipelines. Ce service fournit des services Kubeflow et TFX gérés. Définissez chaque étape du pipeline en tant que composant s'exécutant 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 suivantes :

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

Pour réduire les tâches fastidieuses de gestion de l'infrastructure et des déploiements de modèles, automatisez les flux de tâches reproductibles. Une approche orientée services vous permet de vous concentrer sur la vitesse et d'accélérer le retour sur investissement (TTV). Tenez compte des recommandations suivantes.

Implémenter le déploiement automatique

  • Une fois le modèle entraîné, utilisez l'automatisation pour le déployer. Agent Platform Pipelines fournit des composants spécialisés pour déployer des modèles sur des points de terminaison Agent Platform. 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, utilisez les 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 Agent Platform.

Profiter des fonctionnalités de scaling géré

Optimiser la latence et le débit sur les points de terminaison Agent Platform

Optimiser l'utilisation des ressources

Optimiser 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 de la plate-forme d'agent. Pour comprendre le comportement des modèles en production, vous avez besoin d'outils permettant de surveiller la qualité et les performances. Model Monitoring sur Agent Platform 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, déterminez si ces choix répondent à vos exigences métier 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 des performances 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 goulots d'étranglement des performances. Ces goulots d'étranglement peuvent être causés par des problèmes d'E/S de données dans la couche de stockage ou par des limites de performances du modèle.

Concentrez-vous 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 d'un échec peut augmenter de manière quadratique. Vous ne pouvez pas vous fier uniquement aux métriques d'efficacité des ressources conventionnelles, telles que l'utilisation des FLOP du modèle (MFU). Pour comprendre pourquoi la MFU peut ne pas être un indicateur suffisant des performances d'entraînement globales, examinez le cycle de vie d'un job d'entraînement classique. 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 vers l'avant ou vers l'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 préemptions de 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 constitue 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 garantir une mesure et une optimisation globales des performances, ne vous concentrez plus sur les métriques d'efficacité des ressources classiques telles que la MFU, mais sur le goodput. Le débit utile prend en compte la disponibilité et l'utilisation de vos clusters et de vos ressources de calcul, et 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 de manière précise 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 requises pour l'entraînement ou la mise en service sont disponibles.
  • Le débit utile d'exécution représente la proportion d'étapes d'entraînement utiles réalisées sur une période donnée.
  • Le débit utile de programmation correspond aux performances matérielles optimales ou à l'utilisation des FLOP du modèle (MFU) 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 débit utile 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 en 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'obtention appropriés

Dans le cloud computing, la disponibilité est la capacité à provisionner des ressources lorsqu'elles sont nécessaires. Google Cloud propose les modes de disponibilité suivants :

  • VM à la demande : vous provisionnez des VM Compute Engine lorsque vous en avez besoin 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 à un prix réduit par rapport aux VM à la demande, maisGoogle Cloud peut préempter les VM Spot à tout moment. Nous vous recommandons d'utiliser des VM Spot pour les charges de travail sans état qui peuvent échouer de manière progressive 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 nécessitent une garantie 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.
  • Programmeur de charge de travail dynamique : ce mécanisme de provisionnement met en file d'attente les requêtes 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 d'obtention :

    • Ruptures de stock en mode à la demande.
    • Contrainte d'absence d'état et risque de préemption des VM Spot.
    • Implications des réservations sur les coûts et la 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 Dynamic Workload Scheduler
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 Cloud TPU et de H4D avec le provisionnement à démarrage flexible
Lot 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
Entraînement géré Agent Platform 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 jobs d'entraînement Planifier des jobs d'entraînement en fonction de la disponibilité des ressources
Agent Platform Obtenez des inférences par lots 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 débit utile 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 efficacement 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 des points de contrôle pour suivre la progression et minimiser la perte d'apprentissage due aux préemptions de ressources. Les modèles plus volumineux allongent les interruptions de point de contrôle, 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 actualisés.

Pour optimiser le débit utile de l'environnement d'exécution, utilisez les techniques suivantes :

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

La création fréquente de points de contrôle vous permet de suivre la progression de l'entraînement à un niveau précis. 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 point de contrôle aux moments où l'hôte nécessite une maintenance. N'oubliez pas que certaines défaillances matérielles peuvent ne pas déclencher de signaux SIGTERM. Vous devez donc trouver un juste équilibre 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 jobs d'entraînement, le chargement des artefacts requis, tels que les données ou les points de contrôle du modèle, peut prendre un certain temps. Pour réduire le temps nécessaire au rechargement des données et à la reprise de l'entraînement, utilisez les techniques suivantes :

Utiliser 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 graphe 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 bénéfiques lorsque vous utilisez Cloud 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 de programmation 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 de la diffusion. Pour améliorer le débit utile du programme, vous avez besoin d'une stratégie de distribution optimisée, d'un chevauchement efficace entre le calcul et la communication, d'un accès optimisé à la mémoire et de pipelines efficaces.

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

Stratégie Description
Utilisez les options de personnalisation au niveau du framework. Les frameworks ou les compilateurs tels que Accelerated Linear Algebra (XLA) fournissent de nombreux composants clés du débit utile du programme. 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 Cloud TPU et les GPU.
Déchargez la mémoire vers la DRAM de l'hôte. Pour l'entraînement à grande échelle, qui nécessite une mémoire très élevée des accélérateurs, vous pouvez décharger une partie de l'utilisation de la mémoire vers la DRAM hôte. Par exemple, JAX et XLA vous permettent de décharger les activations de modèle de la passe avant vers la mémoire de l'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 de lot.
Utilisez la quantification pendant l'entraînement.

Vous pouvez améliorer l'efficacité de l'entraînement et le débit utile du programme en exploitant 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, ce qui améliore le débit utile de programmation. Toutefois, cette stratégie peut nécessiter des efforts d'ingénierie supplémentaires lors du développement du modèle.

Pour en savoir plus, consultez les ressources suivantes :

Implémenter 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 pendant l'entraînement et lors du chargement des données.

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

Pour obtenir un 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 vous assurer que vos efforts d'optimisation des performances sont efficaces et holistiques, vous devez adapter les décisions d'optimisation aux exigences spécifiques de vos charges de travail d'entraînement et d'inférence. Choisir des modèles d'IA appropriés et utiliser des stratégies d'optimisation des prompts pertinentes Sélectionnez les frameworks et les 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 liées aux tâches et à la qualité

Définissez la tâche principale de la charge de travail et la référence de performances. Répondez à des questions telles que :

  • La tâche implique-t-elle une régression, une classification ou une génération ?
  • Quel est le niveau de qualité minimal acceptable : par exemple, la justesse, la précision 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 significatif 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 traitement 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é peut accélérer la rentabilisation.

Choisir un modèle approprié

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

  • Pour les tâches spécifiques à une modalité, telles que la reconnaissance optique des caractères (OCR), l'étiquetage et la modération de contenu, choisissez des API de ML telles que 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 faites votre choix parmi une sélection de modèles de fondation et de modèles Google spécifiques à une tâche. Model Garden fournit également des modèles ouverts comme Gemma et des modèles tiers, que vous pouvez exécuter sur la plate-forme d'agents ou déployer sur des environnements d'exécution comme 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 modèles plus petits.

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

Pour améliorer la qualité de vos prompts à grande échelle, utilisez l'optimiseur de prompts Agent Platform. Vous n'avez pas besoin de réécrire manuellement les instructions système et les requêtes. L'optimiseur de requêtes accepte 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 prompts en évaluant les réponses d'un modèle à des exemples de prompts par rapport à des métriques d'évaluation spécifiques.

Pour en savoir plus sur l'optimisation des prompts, consultez Présentation des stratégies de prompt.

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 sur plusieurs dimensions : architecture, performances et étape d'entraînement (via des points de contrôle).
  • Le réglage vous aide à obtenir une génération plus stable et de meilleure qualité, 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 À propos de l'affinage supervisé pour Gemini.

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 de réglage. 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 d'options de framework optimisées pour les performances, telles que 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 Gemini Enterprise Agent Platform vous permet d'intégrer le framework d'entraînement distribué de Ray à 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 blueprints 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 :

  • Mettre en œuvre l'entraînement distribué sur Agent Platform ou sur les frameworks décrits précédemment. L'entraînement distribué permet le parallélisme des modèles et le parallélisme des données, ce qui peut aider à augmenter la taille de l'ensemble de données d'entraînement et la taille du modèle, et à réduire le temps d'entraînement.
  • Pour entraîner efficacement les modèles 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 de l'environnement d'exécution.

Optimiser la diffusion autogérée

Pour la diffusion autogérée, 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érieur. 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 réduction de la précision.

    • La quantification post-entraînement (PTQ) est une tâche reproductible. Les principaux frameworks de ML tels que PyTorch et TensorFlow sont compatibles avec la PTQ.
    • Vous pouvez orchestrer la PTQ à l'aide d'un pipeline sur Agent Platform Pipelines.
    • Pour stabiliser les performances du modèle et bénéficier de réductions 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 des 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é du modèle 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 Cloud TPU, car ils nécessitent de grandes quantités de mémoire et de calculs matriciels parallèles. Pour en savoir plus sur les charges de travail adaptées aux processeurs, aux GPU et aux Cloud TPU, consultez Quand utiliser des Cloud TPU.
  • Les VM optimisées pour le calcul sont idéales pour les charges de travail HPC.

Optimiser l'entraînement et la mise en 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électionner 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 (espace mémoire utilisé) 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 la mise en service.
  • Taille du lot d'entraînement : pour les lots plus volumineux, davantage d'activations sont stockées et les besoins en mémoire sont plus élevés.
  • 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 besoins en bande passante des cœurs et de la mémoire. En plus de la taille de la mémoire, tenez compte d'autres exigences telles que le nombre de cœurs Tensor et la bande passante de la mémoire. Ces facteurs influencent la vitesse d'accès aux données et des calculs sur la puce.
Choisissez des types de machines GPU appropriés.

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

  • Les jobs d'entraînement nécessitent un ou plusieurs GPU, voire plusieurs nœuds, avec une mémoire et une bande passante très importantes.
  • 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 de grande taille pour l'entraînement et des types de machines plus petits et plus é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 de manière appropriée.

Exploitez le partage de GPU sur GKE.

Dans certains cas, dédier un GPU complet à un seul conteneur peut s'avérer inefficace. Pour vous aider à surmonter ce manque d'efficacité, 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 GPU H100 volumineux à l'aide des stratégies de GPU multi-instances et de temps partagé des GPU, la plate-forme de diffusion peut effectuer un scaling à la hausse ou à la baisse 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èles.

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 Agent Platform. Vous pouvez configurer plusieurs points de terminaison Agent Platform pour utiliser 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 la diffusion sur Cloud TPU

Cloud TPU fournit des puces Google qui aident à résoudre les problèmes de grande envergure liés aux 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, Cloud TPU offre une plus grande efficacité pour l'entraînement et la diffusion du deep learning. Pour en savoir plus sur les cas d'utilisation adaptés à Cloud TPU, consultez Quand utiliser Cloud TPU. Cloud TPU est compatible avec les frameworks de ML tels que TensorFlow, PyTorch et JAX.

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

  • Maximisez la taille de lot pour chaque unité de mémoire Cloud TPU.
  • Assurez-vous que les ressources Cloud TPU ne sont pas inactives. Par exemple, implémentez des lectures de données parallèles.
  • Optimisez le compilateur XLA. Ajustez les dimensions des tenseurs si nécessaire 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 Cloud TPU et la diffusion sur les GPU

Cloud TPU permet un entraînement efficace. Les GPU offrent une polyvalence et une disponibilité plus large pour les charges de travail d'inférence. Pour combiner les avantages des Cloud TPU et des GPU, vous pouvez entraîner des modèles sur Cloud TPU et les diffuser sur des GPU. Cette approche peut contribuer à réduire les coûts globaux et à accélérer le développement, en particulier pour les modèles volumineux. Pour en savoir plus sur les emplacements où les types de machines Cloud TPU et GPU sont disponibles, consultez Régions et zones Cloud 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 aux performances. Les jobs d'entraînement et les charges de travail d'inférence impliquent les activités suivantes liées au stockage :

  • Chargement et traitement des données.
  • Créer des points de contrôle du modèle pendant l'entraînement.
  • Recharger les binaires pour reprendre l'entraînement après la préemption de nœuds.
  • Charger efficacement le modèle pour gérer l'inférence à grande échelle

Les facteurs suivants déterminent vos exigences 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 dotés de disques SSD locaux. Pour en savoir plus sur l'amélioration des performances de Cloud Storage FUSE, consultez Bonnes pratiques d'optimisation des performances.

Un connecteur PyTorch vers Cloud Storage offre des performances élevées pour les lectures et les écritures de données. Ce connecteur est particulièrement utile pour l'entraînement avec de grands ensembles de données 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 les performances de lecture/écriture et la latence au niveau de la couche de stockage, vous pouvez utiliser des outils tels que le testeur d'E/S flexible (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 Présentation des services de stockage pour les charges de travail d'IA et de ML dans AI Hypercomputer.

Optimiser la couche réseau

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

Recommandation Techniques d'implémentation suggérées
Optimiser les réseaux VPC.
Rapprochez les VM les unes des autres.
Configurez les VM pour qu'elles acceptent des vitesses réseau plus élevées.

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 de performances. Vous avez besoin d'un enregistrement fiable de la traçabilité des éléments de ML, des déploiements, des sorties de modèle, ainsi que des configurations et 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 être en mesure de retracer chaque version du modèle jusqu'aux données, au code et aux configurations exacts qui ont été utilisés pour produire le modèle. À mesure que vous faites évoluer un modèle, ce traçage devient difficile. Vous avez besoin d'un système de traçabilité 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 conduisent aux modèles les plus performants.

Pour afficher et analyser la traçabilité des artefacts de pipelines pour les charges de travail dans Agent Platform, vous pouvez utiliser Agent Platform ML Metadata ou Knowledge Catalog. Ces deux options vous permettent d'enregistrer des événements ou des artefacts pour répondre aux exigences de gouvernance, 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 Agent Platform ML Metadata et Knowledge Catalog, consultez Suivre la traçabilité des artefacts de pipelines.

Implémentation par défaut : Agent Platform ML Metadata

La première exécution de pipeline ou le premier test dans Agent Platform crée un service ML Metadata Agent Platform par défaut. Les paramètres et les métadonnées d'artefact que le pipeline consomme et génère sont automatiquement enregistrés dans un magasin de métadonnées ML Agent Platform. 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 qui représente 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, Agent Platform 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 aux tests sur Agent Platform, à Model Registry et aux ensembles de données gérés par Agent Platform.

La journalisation automatique est une fonctionnalité intégrée à l'entraînement géré Agent Platform qui permet de consigner automatiquement des données dans Experiments sur Agent Platform. Pour suivre efficacement les tests afin d'optimiser les performances, utilisez les intégrations intégrées entre les tests sur Agent Platform et le service de métadonnées de ML Agent Platform associé.

Agent Platform ML Metadata fournit une syntaxe de filtrage et des opérateurs 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 son ensemble de données ou son évaluation pour une exécution de test spécifique. Ces métadonnées peuvent aider à accélérer la découverte de 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 pour obtenir des exemples de requêtes, consultez Analyser les métadonnées.

Alternative : Knowledge Catalog

Knowledge Catalog découvre les métadonnées des ressourcesGoogle Cloud , y compris les artefacts Agent Platform. Vous pouvez également intégrer une source de données personnalisée.

Knowledge Catalog peut lire les métadonnées dans plusieurs régions et magasins à l'échelle de l'organisation, tandis que Agent Platform ML Metadata est une ressource spécifique à un projet. Par rapport à Agent Platform ML Metadata, Knowledge Catalog nécessite plus d'efforts de configuration. Toutefois, Knowledge 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.

Knowledge Catalog découvre 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 composé de projets, de groupes d'entrées, d'entrées et d'aspects. Knowledge Catalog fournit une syntaxe spécifique que vous pouvez utiliser pour découvrir des artefacts. Si nécessaire, vous pouvez mapper des artefacts de métadonnées à Knowledge 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é sous forme de 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. Cependant, ces connaissances sont essentielles pour l'optimisation des performances.

Prenons l'exemple d'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 l'étiquette "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 montrant des 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 dans les 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 des 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 recommandons une approche systématique de l'AED qui inclut les caractéristiques suivantes :

  • Automatisation : à mesure qu'un ensemble d'entraînement s'agrandit, le processus d'EDA doit s'exécuter automatiquement en arrière-plan.
  • Couverture étendue : lorsque vous ajoutez de nouvelles caractéristiques, l'EDA doit révéler des insights sur ces nouvelles caractéristiques.

De nombreuses tâches d'EDA sont spécifiques au type de données et au contexte métier. Pour automatiser le processus d'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 Agent Platform.

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

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 ou la recherche des plus proches voisins 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 résultats similaires.
  • Identifiez et corrigez les lacunes dans les données d'entraînement en recherchant des exemples similaires pour une prédiction incorrecte.
  • Classifiez les entrées que le modèle n'a pas été entraîné à reconnaître à l'origine, en utilisant les voisins d'un ensemble de référence.
  • Identifiez les anomalies en recherchant les entrées qui sont significativement différentes de tous les exemples d'entraînement connus.
  • Améliorez l'efficacité de la collecte de données en identifiant les cas ambigus, par exemple lorsque les voisins ont des étiquettes mixtes. Donnez la priorité à ces cas pour l'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 montrent dans quelle mesure chaque caractéristique affecte une prédiction par rapport à une référence.

Les techniques d'explicabilité et les explications tabulaires fournissent des méthodes d'attribution de caractéristiques en fonction du type de modèle et de la tâche. Ces méthodes s'appuient généralement sur l'échantillonnage et l'analyse de sensibilité pour mesurer l'ampleur de la modification de la sortie en réponse aux modifications d'une caractéristique d'entrée.

  • Identifier les biais qu'une étape de validation pourrait ne pas détecter
  • 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 intentionnellement ajouter, supprimer ou concevoir des caractéristiques.
Outil de simulation What-If L'outil de simulation What-If a été développé par l'initiative PAIR (People + AI Research) 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 Démonstrations Web de l'outil de simulation What-If.
  • Déboguez et identifiez la cause principale des prédictions incorrectes.
  • Étudiez les performances d'un modèle sur différents sous-ensembles de données en identifiant les biais grâce à une analyse d'é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.
  • Comparez 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 :