Plate-forme ML Diagnostics

Google Cloud ML Diagnostics est une plate-forme gérée de bout en bout permettant d'optimiser, de surveiller et de diagnostiquer les charges de travail d'IA et de ML sur Google Cloud. Utilisez les diagnostics de ML pour surveiller les charges de travail, et collecter et visualiser tous les profils, métriques et configurations de charges de travail au même endroit. ML Diagnostics s'applique aux charges de travail d'entraînement, d'apprentissage par renforcement (RL) post-entraînement et d'inférence. Il est compatible avec tous les orchestrateurs sur Cloud TPU. La compatibilité avec GKE est en disponibilité générale. La compatibilité avec Slurm géré via Cluster Director, les orchestrateurs personnalisés tels que Kubernetes et Slurm, et Compute Engine est en version preview.

ML Diagnostics inclut les fonctionnalités suivantes en disponibilité générale :

  • Surveillance des charges de travail : surveillez et diagnostiquez automatiquement les charges de travail d'IA/de ML exécutées sur les TPU GKE. Pour chaque job GKE, la surveillance des charges de travail avec ML Diagnostics crée automatiquement une exécution de machine learning, surveille le cycle d'utilisation des TPU dans la charge de travail, détecte les événements qui l'affectent et analyse ses différentes couches (infrastructure, orchestrateur et framework, par exemple) pour aider à déterminer les causes potentielles de l'événement.
  • Exécutions de machine learning : utilisez ML Diagnostics pour créer et enregistrer vos exécutions de machine learning via la Google Cloud CLI, ou intégrez le SDK ML Diagnostics à votre charge de travail. Vous pouvez créer et enregistrer des exécutions automatiquement avec la surveillance des charges de travail, déployer des instances XProf gérées avec vos exécutions de machine learning, et collecter et gérer les métriques, les configurations et les sessions de profil des charges de travail.
  • Expérience gcloud CLI : utilisez les API ML Diagnostics via gcloud CLI pour enregistrer et gérer les exécutions, déployer des ressources XProf gérées, visualiser les sessions de profil dans les buckets de stockage et déclencher des captures de profil à partir de la CLI. Vous pouvez également lister tous les événements détectés par la surveillance des charges de travail et obtenir des détails sur l'analyseur pour ces événements via la CLI ou l'API.
  • SDK Python : utilisez le SDK ML Diagnostics Open Source intégré aux charges de travail de ML pour une expérience complète de diagnostic des charges de travail de ML. Surveillez les charges de travail, et collectez et gérez les métriques, les configurations et les profils des charges de travail sur Google Cloud.
  • Profilage géré : ML Diagnostics déploie une instance gérée de XProf avec un backend évolutif dans les comptes associés, ce qui permet de charger rapidement des profils volumineux. Il permet à plusieurs utilisateurs d'accéder simultanément aux profils et contient des fonctionnalités intégrées telles que le profilage multihôte et le profilage à la demande.
  • Métriques de charge de travail : suivez les métriques de charge de travail, y compris la qualité du modèle, les performances du modèle et les métriques système. La surveillance des charges de travail vous permet d'obtenir des métriques système associées à la charge de travail sans intégrer le SDK.
  • Gestion de la configuration des charges de travail : suivez les configurations des charges de travail, y compris les configurations logicielles, les configurations système et les configurations définies par l'utilisateur.
  • Visualisations dans Cluster Director et GKE : visualisez les métriques, les configurations et les profils dans Cluster Director et Google Kubernetes Engine dans la console Google Cloud .
  • Partage par lien : collaborez à l'aide de liens partageables contenant des informations sur les exécutions de machine learning, la surveillance des charges de travail, les métriques et les profils.

ML Diagnostics inclut également les fonctionnalités en preview suivantes :

  • Surveillance des charges de travail : capturez automatiquement les profils XProf pour un diagnostic plus approfondi lorsque les analyseurs de dégradation des performances indiquent un état incorrect.
  • SDK Python : compatibilité avec les charges de travail vLLM, Tunix et TorchTPU.
  • Profilage géré : profilage continu en mode instantané et analyse de profil agentique.

Frameworks de charge de travail et types d'orchestrateurs

ML Diagnostics est compatible avec JAX et est en disponibilité générale sur GKE. Les frameworks de charge de travail tels que TorchTPU, vLLM sur JAX, vLLM sur TorchTPU et Tunix sont disponibles en version preview sur les orchestrateurs suivants :

  • GKE
  • Kubernetes autogéré
  • Slurm géré par Cluster Director
  • Slurm autogéré
  • Compute Engine

Le tableau suivant récapitule les fonctionnalités compatibles et les composants requis pour les charges de travail JAX selon les types d'orchestrateurs :

Type d'outil d'orchestration Fonctionnalités compatibles et composants requis
GKE
  • Surveillance des charges de travail pour les charges de travail GKE Job et JobSet
  • Métriques du SDK et profilage programmatique (webhook GKE)
  • Profilage à la demande (opérateur GKE)
  • Profilage à la demande, profilage continu et capture automatique de profils à partir de la surveillance des charges de travail (DaemonSet Diagon)
Kubernetes autogéré
  • Métriques du SDK et profilage programmatique (webhook Kubernetes)
  • Profilage à la demande (opérateur Kubernetes)
  • Profilage à la demande et continu (DaemonSet Diagon)
Slurm géré par Cluster Director, Slurm autogéré et Compute Engine
  • Métriques du SDK et profilage programmatique
  • Profilage à la demande et continu (DaemonSet Diagon)

Chemins utilisateur

Vous pouvez utiliser la plate-forme ML Diagnostics automatiquement avec la surveillance des charges de travail pour tous les jobs GKE, ou intégrer le SDK à votre charge de travail pour bénéficier de l'expérience complète de diagnostic des charges de travail de ML. Vous pouvez interagir avec la plate-forme ML Diagnostics via la console Google Cloud ou la CLI. La surveillance des charges de travail est automatiquement disponible pour toutes les charges de travail déployées avec GKE sur des TPU.

Avec la CLI, vous pouvez utiliser la gcloud CLI ML Diagnostics pour créer ou modifier une exécution de machine learning, et déployer les ressources XProf gérées. Le SDK ML Diagnostics doit être intégré à votre charge de travail de ML pour collecter et gérer les métriques et les configurations de la charge de travail, et déployer des ressources XProf gérées.

Pour commencer, utilisez l'un des guides suivants :

Prérequis

Avant d'utiliser ML Diagnostics, activez l'API Cluster Director et ajoutez les autorisations IAM requises. Si vous utilisez GKE, la surveillance des charges de travail est déjà activée. Toutefois, le SDK ML Diagnostics et le profilage à la demande nécessitent des artefacts GKE supplémentaires et la configuration de votre cluster GKE. Pour en savoir plus, consultez Configurer GKE.

Activer l'API Cluster Director

Vous n'avez pas besoin d'utiliser Cluster Director pour déployer et gérer vos clusters afin d'utiliser le produit ML Diagnostics. ML Diagnostics fonctionne avec les clusters gérés par GKE, Cluster Director ou des outils d'orchestration personnalisés. ML Diagnostics fait partie de la famille d'API Cluster Director, mais ne dépend pas de l'utilisation du produit Cluster Director lui-même.

Pour en savoir plus sur l'activation de l'API Cluster Director, consultez Activer une API dans votre projet Google Cloud .

Autorisations IAM

Le compte de service Google Cloud utilisé par votre charge de travail nécessite les rôles IAM suivants attribués au projet :

  • roles/hypercomputecluster.editor : pour un accès complet permettant de créer et de gérer des ressources MLRun, et d'afficher l'interface utilisateur.
  • roles/logging.logWriter : pour écrire des journaux et des métriques dans Cloud Logging.
  • roles/storage.objectUser : pour enregistrer les profils dans le bucket Cloud Storage spécifié dans machinelearning_run.

Vous pouvez également créer des rôles personnalisés qui attribuent aux utilisateurs un sous-ensemble d'API nécessaires pour ML Diagnostics. Étant donné que les utilisateurs n'ont pas besoin d'utiliser Cluster Director pour gérer les clusters, il vous suffit d'attribuer les autorisations suivantes :

  • hypercomputecluster.locations.get
  • hypercomputecluster.locations.list
  • hypercomputecluster.clusters.list
  • hypercomputecluster.nodes.list
  • hypercomputecluster.machineLearningRuns.create
  • hypercomputecluster.machineLearningRuns.delete
  • hypercomputecluster.machineLearningRuns.get
  • hypercomputecluster.machineLearningRuns.list
  • hypercomputecluster.machineLearningRuns.update
  • hypercomputecluster.operations.cancel
  • hypercomputecluster.operations.delete
  • hypercomputecluster.operations.get
  • hypercomputecluster.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Pour les charges de travail sur Google Kubernetes Engine, utilisez la fédération d'identité de charge de travail pour associer un compte de service Kubernetes à un compte de service Google Cloud auquel ont été attribués les rôles requis. Les pods s'exécutant sur le réseau hôte (hostNetwork: true) n'utilisent pas Workload Identity Federation for GKE. Dans ce cas, consultez Alternatives à la fédération d'identité de charge de travail pour GKE.

Activer l'analyse de l'observabilité sur Cloud Logging

Les graphiques de séries temporelles des métriques de modèle et des métriques de performances affichent leurs données à l'aide d'une requête d'Analyse de l'observabilité sur le bucket de journaux _Default du projet. Si l'analyse de l'observabilité n'est pas activée sur ce bucket, ces graphiques échouent et le widget affiche un message Something went wrong in the backend ou 0 time series, même si les données de métriques sont présentes dans Cloud Logging et que les profils et les métriques système s'affichent comme prévu.

Activez l'analyse de l'observabilité une fois par projet. Cette mise à niveau est non destructive, n'entraîne aucuns frais supplémentaires et ne peut pas être désactivée. Vous pouvez toujours interroger les journaux existants :

gcloud logging buckets update _Default --location=global \
  --enable-analytics --project=PROJECT_ID

Cette commande nécessite l'autorisation logging.buckets.update, qui est incluse dans des rôles tels que roles/logging.configWriter.

Tarifs

Le stockage des métriques vous est facturé via Cloud Logging, et le stockage des profils via Cloud Storage. Il n'est pas nécessaire d'activer une facturation supplémentaire pour ces services lorsque vous utilisez la plate-forme ML Diagnostics. Les ressources XProf gérées déployées par la plate-forme ML Diagnostics sont sans frais.