チュートリアル: Docker を使用して W&B ローンンチを設定する
less than a minute
以下のガイドでは、ローカルマシンでドッカーを使用してW&B Launchを設定し、ローンンチエージェントの環境とキューの対象リソースとして使用する方法を説明します。
ドッカーを使用してジョブを実行し、同じローカルマシン上でローンンチエージェントの環境として使用することは、クラスター管理システム(Kubernetesなど)がインストールされていないマシンにコンピュートがある場合に特に役立ちます。
また、強力なワークステーションでのワークロードを実行するためにドッキューを使用することもできます。
ドッカーをW&B Launchと一緒に使用する場合、W&Bはまずイメージをビルドし、そのイメージからコンテナをビルドして実行します。イメージはDockerの docker run <image-uri>
コマンドでビルドされます。キュー設定は、docker run
コマンドに渡される追加の引数として解釈されます。
Dockerキューの設定
Dockerの対象リソースのためのローンンチキュー設定は、docker run
CLIコマンドで定義された同じオプションを受け入れます。
エージェントはキュー設定で定義されたオプションを受け取り、その後、受け取ったオプションをローンンチジョブの設定からのオーバーライドとマージし、対象リソース(この場合はローカルマシン)で実行される最終的な docker run
コマンドを生成します。
次の2つの構文変換が行われます:
- 繰り返しオプションは、キュー設定でリストとして定義されます。
- フラグオプションは、キュー設定で
true
の値を持つブール値として定義されます。
例えば、以下のキュー設定:
{
"env": ["MY_ENV_VAR=value", "MY_EXISTING_ENV_VAR"],
"volume": "/mnt/datasets:/mnt/datasets",
"rm": true,
"gpus": "all"
}
結果として以下の docker run
コマンドになります:
docker run \
--env MY_ENV_VAR=value \
--env MY_EXISTING_ENV_VAR \
--volume "/mnt/datasets:/mnt/datasets" \
--rm <image-uri> \
--gpus all
ボリュームは文字列のリストまたは単一の文字列として指定できます。複数のボリュームを指定する場合はリストを使用してください。
ドッカーは値が割り当てられていない環境変数をローンンチエージェントの環境から自動的に渡します。これは、ローンンチエージェントが環境変数 MY_EXISTING_ENV_VAR
を持っている場合、その環境変数がコンテナ内で利用可能であることを意味します。これは、キュー設定で公開せずに他の設定キーを使用したい場合に便利です。
docker run
コマンドの --gpus
フラグを使って、ドッカーコンテナで利用可能なGPUを指定できます。gpus
フラグの使用方法について詳しくは、Dockerのドキュメントをご覧ください。
-
Dockerコンテナ内でGPUを使用するには、NVIDIA Container Toolkit をインストールしてください。
-
コードやアーティファクトをソースとするジョブからイメージをビルドする場合、NVIDIA Container Toolkitを含めるためにエージェントでベースイメージをオーバーライドできます。 例えば、キュー内でベースイメージを
tensorflow/tensorflow:latest-gpu
にオーバーライドできます:{ "builder": { "accelerator": { "base_image": "tensorflow/tensorflow:latest-gpu" } } }
キューの作成
W&B CLIを使用して、ドッカーをコンピュートリソースとして使用するキューを作成します:
- Launchページに移動します。
- Create Queue ボタンをクリックします。
- キューを作成したい Entity を選択します。
- Name フィールドにキューの名前を入力します。
- Resource として Docker を選択します。
- Configuration フィールドにドッカーキューの設定を定義します。
- Create Queue ボタンをクリックしてキューを作成します。
ローカルマシンでローンンチエージェントを設定する
ローンンチエージェントを launch-config.yaml
という名前の YAML 設定ファイルで設定します。デフォルトでは、W&B は ~/.config/wandb/launch-config.yaml
で設定ファイルをチェックします。ローンンチエージェントをアクティベートするときに異なるディレクトリをオプションとして指定できます。
wandb launch-agent
コマンドを参照してください。コアエージェント設定オプション
以下のタブは、W&B CLIとYAML設定ファイルを使用して、コアエージェント設定オプションを指定する方法を示しています:
wandb launch-agent -q <queue-name> --max-jobs <n>
max_jobs: <n concurrent jobs>
queues:
- <queue-name>
ドッカーイメージビルダー
マシン上のローンンチエージェントは、ドッカーイメージをビルドするように設定できます。デフォルトでは、これらのイメージはマシンのローカルイメージリポジトリに保存されます。ローンンチエージェントがドッカーイメージをビルドできるようにするには、ローンンチエージェント設定で builder
キーを docker
に設定します:
builder:
type: docker
エージェントがドッカーイメージをビルドせず、代わりにレジストリからの事前ビルドイメージを使用したい場合は、ローンンチエージェント設定で builder
キーを noop
に設定します:
builder:
type: noop
コンテナレジストリ
Launch は Dockerhub、Google Container Registry、Azure Container Registry、Amazon ECR などの外部コンテナレジストリを使用します。 異なる環境でジョブを実行したい場合は、コンテナレジストリから引き出せるようにエージェントを設定してください。
ローンンチエージェントをクラウドレジストリと接続する方法について詳しくは、Advanced agent setup ページを参照してください。
フィードバック
このページは役に立ちましたか?
Glad to hear it! If you have more to say, please let us know.
Sorry to hear that. Please tell us how we can improve.