Skip to main content

Intégration Docker

W&B peut stocker une référence vers l’image Docker dans laquelle votre code a été exécuté, ce qui vous permet de restaurer une expérience précédente dans l’environnement exact où elle s’est exécutée. La bibliothèque wandb recherche la variable d’environnement WANDB_DOCKER pour enregistrer cet état. Nous fournissons quelques utilitaires qui définissent automatiquement cet état.

Développement local

wandb docker est une commande qui lance un conteneur Docker, transmet les variables d’environnement wandb, monte votre code et s’assure que wandb est installé. Par défaut, la commande utilise une image Docker avec TensorFlow, PyTorch, Keras et Jupyter installés. Vous pouvez utiliser la même commande pour lancer votre propre image Docker : wandb docker my/image:latest. La commande monte le répertoire courant dans le répertoire “/app” du conteneur. Vous pouvez modifier ce comportement avec l’option “—dir”.

Production

La commande wandb docker-run est destinée aux charges de travail de production. Elle est conçue pour remplacer directement nvidia-docker. Il s’agit d’un simple wrapper autour de la commande docker run qui ajoute vos identifiants et la variable d’environnement WANDB_DOCKER à l’appel. Si vous ne transmettez pas l’option --runtime et que nvidia-docker est disponible sur la machine, cela garantit également que le runtime est défini sur nvidia.

Kubernetes

Si vous exécutez vos charges de travail d’entraînement dans Kubernetes et que l’API k8s est exposée à votre pod (ce qui est le cas par défaut), wandb interroge l’API pour récupérer le digest de l’image Docker et définit automatiquement la variable d’environnement WANDB_DOCKER.

Restauration

Si un run a été instrumenté avec la variable d’environnement WANDB_DOCKER, l’exécution de wandb restore username/project:run_id créera une nouvelle branche pour restaurer votre code, puis lancera l’image Docker exacte utilisée pour l’entraînement, préremplie avec la commande originale.