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.

Ce tutoriel explique comment configurer W&B Launch pour utiliser Docker sur une machine locale, à la fois comme environnement de l’agent Launch et comme ressource cible de la file d’attente. À la fin, vous disposerez d’une file d’attente Launch basée sur Docker, opérationnelle, ainsi que d’un agent Launch local prêt à exécuter des jobs de ML. Utiliser Docker pour exécuter des jobs et comme environnement de l’agent Launch sur une même machine locale est utile si vos ressources de calcul se trouvent sur une machine qui ne dispose pas d’un système de gestion de cluster (comme Kubernetes). Vous pouvez également utiliser des files d’attente Docker pour exécuter des charges de travail sur des postes de travail.
Cette configuration est courante pour les utilisateurs qui exécutent des expériences sur leur machine locale ou qui se connectent en SSH à une machine distante pour soumettre des jobs Launch.
Lorsque vous utilisez Docker avec Launch, W&B construit d’abord une image, puis crée et exécute un conteneur à partir de cette image. W&B construit l’image à l’aide de la commande Docker docker run [IMAGE-URI]. W&B interprète la configuration de la file d’attente comme des arguments supplémentaires transmis à la commande docker run.

Configurer une file d’attente Docker

Une configuration de file d’attente pour une ressource cible Docker définit la manière dont Launch traduit les options de la file d’attente en une commande docker run. La configuration de la file d’attente Launch (pour une ressource cible Docker) accepte les mêmes options que celles définies dans la commande CLI docker run. L’agent reçoit les options définies dans la configuration de la file d’attente. Il fusionne ensuite les options reçues avec les surcharges de la configuration du job Launch pour produire une commande docker run finale, exécutée sur la ressource cible (dans ce cas, une machine locale). Deux transformations de syntaxe ont lieu :
  • Définissez les options répétées dans la configuration de la file d’attente sous forme de liste.
  • Définissez les options de type indicateur dans la configuration de la file d’attente sous forme d’un booléen avec la valeur true.
Par exemple, la configuration de file d’attente suivante :
{
  "env": ["MY_ENV_VAR=value", "MY_EXISTING_ENV_VAR"],
  "volume": "/mnt/datasets:/mnt/datasets",
  "rm": true,
  "gpus": "all"
}
Donne la commande docker run suivante :
docker run \
  --env MY_ENV_VAR=value \
  --env MY_EXISTING_ENV_VAR \
  --volume "/mnt/datasets:/mnt/datasets" \
  --rm [IMAGE-URI] \
  --gpus all
Spécifiez les volumes soit sous forme de liste de chaînes, soit sous forme d’une chaîne unique. Utilisez une liste si vous spécifiez plusieurs volumes. Docker transmet depuis l’environnement de l’agent Launch les variables d’environnement auxquelles aucune valeur n’est attribuée. Si l’agent Launch possède une variable d’environnement MY_EXISTING_ENV_VAR, cette variable sera disponible dans le conteneur. Cela est utile si vous souhaitez utiliser d’autres clés de configuration sans les publier dans la configuration de la file d’attente. L’indicateur --gpus de la commande docker run vous permet de spécifier les GPU disponibles pour un conteneur Docker. Pour plus d’informations sur l’indicateur --gpus, voir la documentation Docker.
  • Installez le NVIDIA Container Toolkit pour utiliser des GPU dans un conteneur Docker.
  • Si vous créez des images à partir d’un job basé sur du code ou provenant d’un artifact, vous pouvez remplacer l’image de base utilisée par l’agent pour inclure le NVIDIA Container Toolkit. Par exemple, dans votre file d’attente Launch, vous pouvez remplacer l’image de base par tensorflow/tensorflow:latest-gpu :
    {
      "builder": {
        "accelerator": {
          "base_image": "tensorflow/tensorflow:latest-gpu"
        }
      }
    }
    

Créer une file d’attente

Pour créer une file d’attente qui utilise Docker comme ressource de calcul, suivez ces étapes :
  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 Docker comme Ressource.
  6. Définissez la configuration de votre file d’attente Docker dans le champ Configuration.
  7. Cliquez sur le bouton Créer une file d’attente.
Vous disposez maintenant d’une file d’attente Launch basée sur Docker, prête à recevoir des jobs. Ensuite, configurez un agent Launch sur votre machine locale pour récupérer les jobs de cette file d’attente.

Configurer un agent Launch sur une machine locale

Configurez l’agent Launch à l’aide d’un fichier de configuration YAML nommé launch-config.yaml. Par défaut, W&B recherche le fichier de configuration dans ~/.config/wandb/launch-config.yaml. Vous pouvez également spécifier un autre répertoire lorsque vous activez l’agent Launch.
Vous pouvez utiliser la CLI W&B pour spécifier les principales options configurables de l’agent Launch (au lieu du fichier de configuration YAML) : le nombre maximal de jobs, l’entité W&B et les files d’attente Launch. Voir la commande wandb launch-agent pour en savoir plus.

Principales options de configuration de l’agent

Les onglets suivants montrent comment définir les principales options de configuration de l’agent avec le CLI W&B et un fichier de configuration YAML :
wandb launch-agent -q [QUEUE-NAME] --max-jobs [N]

Outils de création d’images Docker

Vous pouvez configurer l’agent Launch sur votre machine pour créer des images Docker. Par défaut, ces images sont stockées dans le dépôt local d’images de votre machine. Pour permettre à votre agent Launch de créer des images Docker, définissez la clé builder de la configuration de l’agent Launch sur docker :
launch-config.yaml
builder:
	type: docker
Si vous ne voulez pas que l’agent construise des images Docker et préférez utiliser des images déjà construites depuis un registre, définissez la clé builder sur noop dans la configuration de l’agent Launch :
launch-config.yaml
builder:
  type: noop

Registres de conteneurs

Launch utilise des registres de conteneurs externes comme Docker Hub, Google Container Registry, Azure Container Registry et Amazon ECR. Si vous souhaitez exécuter un job dans un environnement différent de celui dans lequel vous l’avez créé, configurez votre agent pour qu’il puisse récupérer des images depuis un registre de conteneurs, afin que l’agent puisse récupérer des images qui n’ont pas été créées localement. Pour en savoir plus sur la façon de connecter l’agent Launch à un registre cloud, consultez la page Configuration avancée de l’agent.