Avec W&B Launch, vous placez des jobs dans des files d’attente pour créer des runs. Les jobs sont des scripts Python instrumentés avec W&B. Les files d’attente contiennent une liste de jobs à exécuter sur une ressource cible. Les agents récupèrent les jobs depuis les files d’attente et les exécutent sur des ressources cibles. W&B suit les jobs Launch de la même manière que les runs.
Un job Launch est un type spécifique de W&B Artifact qui représente une tâche à accomplir. Par exemple, parmi les jobs Launch courants, on trouve l’entraînement d’un modèle ou le déclenchement d’une évaluation de modèle. Les définitions de job incluent :
- Du code Python et d’autres ressources de fichier, y compris au moins un point d’entrée exécutable.
- Des informations sur l’entrée (paramètre de configuration) et la sortie (métriques enregistrées).
- Des informations sur l’environnement (par exemple,
requirements.txt, Dockerfile de base).
Il existe trois grands types de définitions de job :
| Types de job | Définition | Comment exécuter ce type de job |
|---|
| Jobs basés sur des Artifacts (ou sur le code) | Le code et les autres ressources sont enregistrés sous forme d’artifact W&B. | Pour exécuter des jobs basés sur des artifacts, l’agent Launch doit être configuré avec un builder. |
| Jobs basés sur Git | Le code et les autres ressources sont clonés à partir d’un commit, d’une branche ou d’un tag spécifiques dans un dépôt Git. | Pour exécuter des jobs basés sur Git, l’agent Launch doit être configuré avec un builder et des identifiants de dépôt Git. |
| Jobs basés sur des images | Le code et les autres ressources sont intégrés dans une image Docker. | Pour exécuter des jobs basés sur des images, l’agent Launch peut devoir être configuré avec des identifiants de dépôt d’images. |
Bien que les jobs Launch puissent effectuer des activités sans lien avec l’entraînement de modèle — par exemple, déployer un modèle sur un serveur d’inférence Triton — tous les jobs doivent appeler wandb.init pour se terminer correctement. Cela crée un run à des fins de suivi dans un Workspace W&B.
Retrouvez les jobs que vous avez créés dans la W&B App, sous l’onglet Jobs de l’espace de travail du projet. À partir de là, les jobs peuvent être configurés et envoyés vers une launch queue pour être exécutés sur diverses ressources cibles.
Les files d’attente Launch sont des listes ordonnées de jobs à exécuter sur une ressource cible spécifique. Les files d’attente Launch fonctionnent selon le principe du premier entré, premier sorti (FIFO). Il n’existe pas de limite pratique au nombre de files d’attente que vous pouvez avoir, mais il est généralement recommandé d’avoir une file d’attente par ressource cible. Les jobs peuvent être mis en file d’attente avec la W&B App UI, le W&B CLI ou le SDK Python. Vous pouvez ensuite configurer un ou plusieurs agents Launch pour extraire des éléments de la file d’attente et les exécuter sur la ressource cible de cette dernière.
L’environnement de calcul sur lequel une Launch queue est configurée pour exécuter des jobs est appelé ressource cible.
W&B Launch prend en charge les ressources cibles suivantes :
Chaque ressource cible utilise un ensemble différent de paramètres de configuration appelés configurations de ressource. Les configurations de ressource reprennent par défaut les valeurs définies pour chaque Launch queue, mais peuvent être remplacées indépendamment pour chaque job. Voir la documentation de chaque ressource cible pour plus de détails.
Les agents Launch sont des programmes légers et persistants qui vérifient régulièrement les files d’attente Launch à la recherche de jobs à exécuter. Lorsqu’un agent Launch reçoit un job, il commence par créer l’image à partir de la définition du job ou par la récupérer, puis l’exécute sur la ressource cible.
Un agent peut interroger plusieurs files d’attente, mais il doit être correctement configuré pour prendre en charge toutes les ressources cibles sous-jacentes de chaque file d’attente qu’il interroge.
Environnement de l’agent Launch
L’environnement de l’agent correspond à l’environnement dans lequel un agent Launch s’exécute et interroge la file d’attente à la recherche de jobs.
L’environnement d’exécution de l’agent est indépendant de la ressource cible d’une file d’attente. En d’autres termes, les agents peuvent être déployés n’importe où, à condition d’être configurés de manière adéquate pour accéder aux ressources cibles requises.