Skip to main content

Docker インテグレーション

W&B は、コードの実行に使用された Docker image への参照を保存できます。これにより、以前の実験を実行時とまったく同じ環境で復元できます。wandb ライブラリは、この状態を保持するために WANDB_DOCKER 環境変数を参照します。この状態を自動的に設定するヘルパーもいくつか用意されています。

ローカル開発

wandb docker は、Dockerコンテナーを起動し、wandb の環境変数を渡してコードをマウントし、wandb がインストールされている状態を確保するコマンドです。デフォルトでは、このコマンドは TensorFlow、PyTorch、Keras、Jupyter がインストールされた Docker image を使用します。同じコマンドで独自の Docker image を起動することもできます: wandb docker my/image:latest。このコマンドは現在のディレクトリーをコンテナー内の “/app” ディレクトリーにマウントします。これは --dir フラグで変更できます。

本番

wandb docker-run コマンドは、本番ワークロード向けに提供されています。これは nvidia-docker をそのまま置き換えて使えるように設計されています。docker run コマンドのシンプルなラッパーで、認証情報と WANDB_DOCKER 環境変数をコマンド呼び出しに追加します。"--runtime" フラグを渡さず、マシン上で nvidia-docker が利用可能な場合は、ランタイムが nvidia に設定されることも保証されます。

Kubernetes

Kubernetes でトレーニングのワークロードを実行しており、k8s API が pod に公開されている場合 (これはデフォルトです) 、wandb は API に対して Docker image のダイジェストをクエリし、WANDB_DOCKER 環境変数を自動的に設定します。

復元

run が WANDB_DOCKER 環境変数を使って記録されている場合、wandb restore username/project:run_id を実行すると、コードを復元した新しいブランチがチェックアウトされ、続いて元のコマンドがあらかじめ設定された、トレーニングに使用されたものとまったく同じ Docker image が起動します。