Colab で試す
wandb launch コマンドを使ってジョブを作成して実行します。
ジョブを実行用に送信せずに作成するには、
wandb job create コマンドを使用します。詳しくは command reference docs を参照してください。Git ジョブ
--uri または -u フラグを使用してコードを含む URI を指定し、必要に応じて --build-context フラグでサブディレクトリを指定します。
次のコマンドで git リポジトリから「hello world」ジョブを実行します。
- 一時ディレクトリに W&B Launch jobs リポジトリ をクローンします。
- hello プロジェクトに hello-world-git という名前のジョブを作成します。ジョブは、そのリポジトリのデフォルトブランチの先頭のコミット(最新コミット)に紐づけられます。
jobs/hello_worldディレクトリとDockerfile.wandbからコンテナイメージをビルドします。- コンテナを起動し、
python job.pyを実行します。
-g、--git-hash 引数を追加します。利用可能な引数の一覧を表示するには、wandb launch --help を実行してください。
リモート URL の形式
| リモート URL の種類 | URL の形式 | アクセスおよび認証の要件 |
|---|---|---|
| https | https://github.com/organization/repository.git | git リモートに対して認証するためのユーザー名とパスワード |
| ssh | git@github.com:organization/repository.git | git リモートに対して認証するための SSH 鍵 |
wandb launch --uri で作成されたジョブでは、指定した --uri に含まれる転送プロトコルが使用されます。
コード Artifact ジョブ
--uri または -u 引数で指定して、新しいコード Artifact とジョブを作成します。
まずは、空のディレクトリを作成し、次の内容の main.py という名前の Python スクリプトを追加します:
requirements.txt ファイルを追加してください:
- 現在のディレクトリを、
hello-world-codeという名前のコード Artifacts としてログに記録します。 launch-quickstartプロジェクトに、hello-world-codeという名前のジョブを作成します。- 現在のディレクトリと Launch のデフォルト Dockerfile を元にコンテナイメージをビルドします。デフォルトの Dockerfile は、
requirements.txtに記載されたパッケージをインストールし、エントリーポイントをpython main.pyに設定します。
イメージ ジョブ
--docker-image オプションに完全なイメージ タグを渡すことで、Docker イメージから job を作成して実行できます。
あらかじめ用意されたイメージから単純な job を実行するには、次のコマンドを使用します。
自動ジョブ作成
- run に関連付けられた Git のリモートとコミットハッシュがある。
- run がコード Artifacts をログしている。
Run.log_codeを参照。 - run が、
WANDB_DOCKER環境変数がイメージタグに設定された Docker コンテナ内で実行された。
Launch ジョブ名
| Source | Naming convention |
|---|---|
| GitHub | job-<git-remote-url>-<path-to-script> |
| Code artifact | job-<code-artifact-name> |
| Docker image | job-<image-name> |
- Environment variable
- W&B Python SDK
WANDB_JOB_NAME 環境変数を希望するジョブ名に設定します。例:Docker イメージのジョブの場合、バージョン エイリアスが自動的にジョブのエイリアスとして追加されます。
コンテナ化
wandb launch への引数と、ジョブのソースコード内のファイルによってカスタマイズできます。
ビルドコンテキスト
wandb launch の --build-context 引数を使用します。
--build-context 引数は、複数のプロジェクトを含むモノレポジトリを参照する Git ジョブを扱う場合に特に便利です。サブディレクトリをビルドコンテキストとして指定することで、そのモノレポジトリ内の特定のプロジェクト用コンテナイメージをビルドできます。公式の W&B Launch jobs リポジトリで --build-context 引数を使用する方法については、上記の例を参照してください。Dockerfile
requirements.txt ファイルをインストールする既定の Dockerfile を使用します。カスタム Dockerfile を使用するには、wandb launch の --dockerfile 引数でファイルへのパスを指定します。
Dockerfile のパスはビルドコンテキストからの相対パスで指定します。たとえば、ビルドコンテキストが jobs/hello_world で、Dockerfile が jobs/hello_world ディレクトリ内にある場合、--dockerfile 引数には Dockerfile.wandb を指定します。公式の W&B Launch jobs リポジトリで --dockerfile 引数を使用する方法については、上記の例 を参照してください。
Requirements ファイル
requirements.txt ファイルが見つかった場合、Launch はそのファイルに記載されている依存関係をインストールします。requirements.txt がない場合に pyproject.toml ファイルが見つかれば、Launch は project.dependencies セクションから依存関係をインストールします。