Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://wb-21fd5541-docs-2661.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Cette page décrit les étapes générales nécessaires pour configurer W&B Launch afin que vous puissiez soumettre des jobs de machine learning à votre propre infrastructure de calcul (telle que Kubernetes, Amazon SageMaker ou Vertex AI) directement depuis W&B. La configuration de Launch permet à votre équipe de partager des ressources de calcul, de mettre des jobs en file d’attente et de reproduire des Runs dans différents environnements. Pour configurer Launch, vous devez effectuer les opérations suivantes :
  1. Configurer une file d’attente : Les files d’attente suivent un ordre FIFO (premier entré, premier sorti) et disposent d’une configuration de la file d’attente. La configuration d’une file d’attente détermine où et comment les jobs sont exécutés sur une ressource cible.
  2. Configurer un agent : Les agents s’exécutent sur votre machine ou votre infrastructure et interrogent une ou plusieurs files d’attente à la recherche de jobs Launch. Lorsqu’un job est récupéré par l’agent, celui-ci s’assure que l’image est créée et disponible. L’agent soumet ensuite le job à la ressource cible.
Une fois ces deux étapes terminées, votre équipe peut soumettre des jobs Launch à la file d’attente et les exécuter automatiquement sur la ressource cible.

Configurer une file d’attente

Configurez les files d’attente Launch de façon à pointer vers une ressource cible spécifique, avec toute configuration supplémentaire propre à cette ressource. Par exemple, une file d’attente Launch qui pointe vers un cluster Kubernetes peut inclure des variables d’environnement ou définir un espace de noms personnalisé dans sa configuration de file d’attente. Lorsque vous créez une file d’attente, vous spécifiez à la fois la ressource cible que vous souhaitez utiliser et la configuration à appliquer à cette ressource. Lorsqu’un agent reçoit un job d’une file d’attente, il reçoit également la configuration de la file d’attente. Lorsque l’agent soumet le job à la ressource cible, il inclut la configuration de la file d’attente ainsi que les surcharges définies dans le job lui-même. Par exemple, vous pouvez utiliser une configuration de job pour spécifier le type d’instance Amazon SageMaker pour ce job uniquement. Dans ce cas, il est courant d’utiliser des modèles de configuration de file d’attente comme interface destinée aux utilisateurs finaux.

Créer une file d’attente

Créez une file d’attente pour définir où les jobs Launch s’exécutent et comment ils sont configurés. Pour créer une file d’attente :
  1. Accédez à Launch App sur wandb.ai/launch.
  2. Cliquez sur le bouton create queue en haut à droite de l’écran.
  3. Dans le menu déroulant Entity, sélectionnez l’entité à laquelle la file d’attente appartient.
  4. Saisissez un nom pour votre file d’attente dans le champ Queue.
  5. Dans le menu déroulant Resource, sélectionnez la ressource de calcul que les jobs ajoutés à cette file d’attente doivent utiliser.
  6. Choisissez si vous souhaitez autoriser la Prioritization pour cette file d’attente. Si la priorisation est activée, un utilisateur de votre équipe peut définir une priorité pour son job Launch au moment de sa mise en file d’attente. Les jobs ayant une priorité plus élevée s’exécutent avant ceux ayant une priorité plus faible.
  7. Saisissez une configuration de ressource au format JSON ou YAML dans le champ Configuration. La structure et la sémantique de votre document de configuration dépendent du type de ressource vers lequel pointe la file d’attente. Pour plus de détails, consultez la page de configuration dédiée à votre ressource cible.
Création d’une file d’attente Launch
Vous disposez maintenant d’une file d’attente capable de recevoir des jobs Launch et de les acheminer vers la ressource cible que vous avez choisie. Ensuite, configurez un agent pour extraire les jobs de cette file d’attente.

Configurer un agent Launch

Les agents Launch sont des processus de longue durée qui interrogent une ou plusieurs files d’attente Launch à la recherche de jobs. Les agents Launch récupèrent les jobs des files d’attente dans l’ordre FIFO ou par ordre de priorité, selon les files d’attente depuis lesquelles ils les extraient. Lorsqu’un agent récupère un job dans une file d’attente, il peut éventuellement construire une image pour ce job. L’agent soumet ensuite le job à la ressource cible avec les options de configuration spécifiées dans la configuration de la file d’attente.
Les agents sont flexibles et peuvent être configurés pour prendre en charge de nombreux cas d’usage. La configuration requise pour votre agent dépend de votre cas d’usage spécifique. Voir la page dédiée à Docker, Amazon SageMaker, Kubernetes ou Vertex AI.
W&B recommande de démarrer les agents avec la clé API d’un compte de service plutôt qu’avec la clé API d’un utilisateur spécifique. L’utilisation de la clé API d’un compte de service présente deux avantages :
  • L’agent ne dépend pas d’un utilisateur en particulier.
  • Pour Launch, l’auteur associé à un run créé via Launch est l’utilisateur qui a soumis le job Launch, et non l’utilisateur associé à l’agent.

Configuration de l’agent

Configurez l’agent Launch afin qu’il sache quelles files d’attente interroger, sous quelle entité opérer et combien de jobs exécuter en parallèle. Configurez l’agent Launch à l’aide d’un fichier YAML nommé launch-config.yaml. Par défaut, W&B recherche le fichier de configuration dans ~/.config/wandb/launch-config.yaml. Vous pouvez aussi spécifier un autre répertoire lorsque vous activez l’agent Launch. Le contenu du fichier de configuration de votre agent Launch dépend de l’environnement de l’agent, de la ressource cible de la file d’attente Launch, des prérequis du builder Docker, des prérequis du registre cloud, etc. Quel que soit votre cas d’utilisation, l’agent Launch comporte les options de configuration de base suivantes :
  • max_jobs : nombre maximal de jobs que l’agent peut exécuter en parallèle.
  • entity : l’entité à laquelle appartient la file d’attente.
  • queues : le nom d’une ou plusieurs files d’attente que l’agent doit surveiller.
Vous pouvez utiliser la CLI W&B pour spécifier des options de configuration universelles pour l’agent Launch (au lieu du fichier YAML de configuration) : nombre maximal de jobs, entité W&B et files d’attente Launch. Voir la commande wandb launch-agent pour plus d’informations.
L’extrait YAML suivant montre comment spécifier les clés de configuration de base de l’agent Launch. Remplacez [ENTITY-NAME] par votre entité W&B et [QUEUE-NAME] par le nom d’une file d’attente que l’agent doit interroger.
launch-config.yaml
# Nombre maximal de runs simultanés à effectuer. -1 = aucune limite
max_jobs: -1

entity: [ENTITY-NAME]

# Liste des files d'attente à interroger.
queues:
  - [QUEUE-NAME]

Configurer un builder de conteneur

Vous pouvez configurer l’agent Launch pour créer des images. Vous devez configurer l’agent pour utiliser un builder de conteneur si vous prévoyez d’utiliser des jobs Launch créés à partir de dépôts git ou d’Artifacts de code. Voir Create a job Launch pour plus d’informations sur la création d’un job Launch. W&B Launch prend en charge trois options de builder :
  • Docker : le builder Docker utilise un démon Docker local pour créer des images.
  • Kaniko : Kaniko est un projet Google qui permet de créer des images dans des environnements où un démon Docker n’est pas disponible.
  • Noop : l’agent n’essaie pas de créer des jobs et se contente de récupérer des images préconstruites.
Utilisez le builder Kaniko si votre agent s’exécute dans un environnement où un démon Docker n’est pas disponible (par exemple, un cluster Kubernetes).Voir Set up Kubernetes pour plus de détails sur le builder Kaniko.
Pour spécifier un builder d’image, incluez la clé builder dans la configuration de votre agent. Par exemple, l’extrait de code suivant montre une partie de la configuration Launch (launch-config.yaml) qui indique d’utiliser Docker ou Kaniko :
launch-config.yaml
builder:
  type: docker | kaniko | noop

Configurer un registre de conteneurs

Parfois, vous pouvez vouloir connecter un agent Launch à un registre cloud afin qu’il puisse récupérer des images préconstruites ou y envoyer les images qu’il crée. Voici quelques scénarios courants où cela peut être utile :
  • Vous voulez exécuter un job dans un environnement différent de celui où vous l’avez construit, par exemple sur une station de travail plus puissante ou sur un cluster.
  • Vous voulez utiliser l’agent pour créer des images et exécuter ces images sur Amazon SageMaker ou Vertex AI.
  • Vous voulez que l’agent Launch fournisse des identifiants pour récupérer des images depuis un dépôt d’images.
Pour en savoir plus sur la configuration de l’agent afin qu’il interagisse avec un registre de conteneurs, voir la page de configuration avancée de l’agent.

Activer l’agent Launch

Après avoir configuré l’agent, activez-le afin qu’il commence à interroger les files d’attente que vous avez spécifiées et à envoyer les jobs vers votre ressource cible. Activez l’agent Launch à l’aide de la commande launch-agent de la CLI W&B. Remplacez [QUEUE-1] et [QUEUE-2] par les noms des files d’attente que l’agent doit interroger :
wandb launch-agent -q [QUEUE-1] -q [QUEUE-2] --max-jobs 5
Une fois l’agent démarré, il récupère tous les jobs soumis aux files d’attente spécifiées et les transfère à la ressource cible. Dans certains cas, vous souhaiterez peut-être qu’un agent Launch interroge des files d’attente depuis un cluster Kubernetes. Voir la page de configuration avancée des files d’attente pour plus d’informations.