Passer au contenu principal
Vous pouvez utiliser W&B Launch pour soumettre des jobs à exécuter en tant que tâches d’entraînement Vertex AI. Avec les tâches d’entraînement Vertex AI, vous pouvez entraîner des modèles de machine learning à l’aide d’algorithmes fournis ou personnalisés sur la plateforme Vertex AI. Une fois un job Launch démarré, Vertex AI gère l’infrastructure sous-jacente, la mise à l’échelle et l’orchestration. W&B Launch fonctionne avec Vertex AI via la classe CustomJob du SDK google-cloud-aiplatform. Les paramètres d’un CustomJob peuvent être définis via la configuration de la file d’attente Launch. Vertex AI ne peut pas être configuré pour récupérer des images depuis un registre privé situé hors de Google Cloud. Cela signifie que vous devez stocker les images de conteneur dans Google Cloud ou dans un registre public si vous souhaitez utiliser Vertex AI avec W&B Launch. Voir la documentation de Vertex AI pour plus d’informations sur la façon de rendre les images de conteneur accessibles aux jobs Vertex.

Prérequis

  1. Créez un projet Google Cloud, ou accédez à un projet Google Cloud, avec l’API Vertex AI activée. Voir la documentation de la console des API Google Cloud pour plus d’informations sur l’activation d’une API.
  2. Créez un dépôt Google Cloud Artifact Registry pour stocker les images que vous souhaitez exécuter sur Vertex. Voir la documentation Google Cloud Artifact Registry pour plus d’informations.
  3. Créez un bucket GCS de staging pour que Vertex AI y stocke ses métadonnées. Notez que ce bucket doit se trouver dans la même région que vos charges de travail Vertex AI pour pouvoir être utilisé comme bucket de staging. Le même bucket peut être utilisé pour les contextes de staging et de build.
  4. Créez un compte de service avec les autorisations nécessaires pour lancer des jobs Vertex AI. Voir la documentation Google Cloud IAM pour plus d’informations sur l’attribution des autorisations aux comptes de service.
  5. Accordez à votre compte de service l’autorisation de gérer les jobs Vertex
AutorisationPortée de la ressourceDescription
aiplatform.customJobs.createProjet Google Cloud spécifiéPermet de créer de nouveaux jobs de machine learning dans le projet.
aiplatform.customJobs.listProjet Google Cloud spécifiéPermet de lister les jobs de machine learning dans le projet.
aiplatform.customJobs.getProjet Google Cloud spécifiéPermet de récupérer des informations sur des jobs de machine learning spécifiques dans le projet.
Si vous souhaitez que vos charges de travail Vertex AI s’exécutent avec l’identité d’un compte de service non standard, référez-vous à la documentation Vertex AI pour obtenir des instructions sur la création de comptes de service et les autorisations nécessaires. Le champ spec.service_account de la configuration de la file d’attente Launch peut être utilisé pour sélectionner un compte de service personnalisé pour vos runs W&B.

Configurer une file d’attente pour Vertex AI

La configuration de la file d’attente pour les ressources Vertex AI définit les arguments passés au constructeur CustomJob dans le SDK Python Vertex AI, ainsi qu’à la méthode run de CustomJob. Les configurations de ressources sont stockées sous les clés spec et run :
  • La clé spec contient les valeurs des arguments nommés du constructeur CustomJob dans le SDK Python Vertex AI.
  • La clé run contient les valeurs des arguments nommés de la méthode run de la classe CustomJob dans le SDK Python Vertex AI.
La personnalisation de l’environnement d’exécution se fait principalement dans la liste spec.worker_pool_specs. Une spécification de pool de workers définit un groupe de workers qui exécuteront votre job. La spécification de worker de la configuration par défaut demande une seule machine n1-standard-4 sans accélérateur. Vous pouvez modifier le type de machine, le type d’accélérateur et le nombre d’accélérateurs selon vos besoins. Pour plus d’informations sur les types de machines et d’accélérateurs disponibles, voir la Vertex AI documentation.

Créer une file d’attente

Créez une file d’attente dans l’application W&B en utilisant Vertex AI comme ressource de calcul :
  1. Accédez à la page Launch.
  2. Cliquez sur le bouton Créer une file d’attente.
  3. Sélectionnez l’Entité dans laquelle vous souhaitez créer la file d’attente.
  4. Saisissez un nom pour votre file d’attente dans le champ Nom.
  5. Sélectionnez Google Cloud Vertex AI comme Ressource.
  6. Dans le champ Configuration, indiquez les informations relatives au CustomJob Vertex AI que vous avez défini dans la section précédente. Par défaut, W&B préremplit un corps de requête YAML et JSON similaire à celui-ci :
spec:
  worker_pool_specs:
    - machine_spec:
        machine_type: n1-standard-4
        accelerator_type: ACCELERATOR_TYPE_UNSPECIFIED
        accelerator_count: 0
      replica_count: 1
      container_spec:
        image_uri: ${image_uri}
  staging_bucket: <REQUIRED>
run:
  restart_job_on_worker_restart: false
  1. Après avoir configuré votre file d’attente, cliquez sur le bouton Créer une file d’attente.
Vous devez au minimum spécifier :
  • spec.worker_pool_specs : liste non vide de spécifications de pool de workers.
  • spec.staging_bucket : bucket GCS utilisé pour le staging des assets et des métadonnées Vertex AI.
Certains documents de la documentation Vertex AI présentent des spécifications de pool de workers dont toutes les clés sont en camel case, par exemple workerPoolSpecs. Le SDK Python de Vertex AI utilise le snake case pour ces clés, par exemple worker_pool_specs.Chaque clé de la configuration de la file d’attente Launch doit être en snake case.

Configurer un agent Launch

L’agent Launch se configure à l’aide d’un fichier de configuration situé, par défaut, à l’emplacement ~/.config/wandb/launch-config.yaml.
max_jobs: <n-concurrent-jobs>
queues:
  - <queue-name>
Si vous souhaitez que l’agent Launch crée pour vous des images exécutées dans Vertex AI, voir Configuration avancée de l’agent.

Configurer les autorisations de l’agent

Il existe plusieurs méthodes pour vous authentifier à l’aide de ce compte de service. Vous pouvez le faire via Workload Identity, un fichier JSON de compte de service téléchargé, des variables d’environnement, l’outil en ligne de commande Google Cloud Platform, ou une combinaison de ces méthodes.