Create a launch job
less than a minute
Launch jobsは、W&B runを再現するための設計図です。Jobsは、ワークロードを実行するために必要なソース コード、依存関係、および入力をキャプチャするW&B Artifactsです。
wandb launch コマンドでjobsを作成および実行します。
wandb job create コマンドを使用します。詳細については、コマンドリファレンスドキュメントを参照してください。Git jobs
W&B Launchを使用して、コードやその他の追跡対象アセットがリモートgitリポジトリの特定のコミット、ブランチ、またはタグからクローンされるGitベースのjobを作成できます。コードを含むURIを指定するには、--uriまたは-uフラグを使用し、必要に応じてサブディレクトリーを指定するには、--build-contextフラグを使用します。
次のコマンドを使用して、gitリポジトリから「hello world」jobを実行します。
wandb launch --uri "https://github.com/wandb/launch-jobs.git" --build-context jobs/hello_world --dockerfile Dockerfile.wandb --project "hello-world" --job-name "hello-world" --entry-point "python job.py"
このコマンドは次のことを行います。
- W&B Launch jobs repositoryを一時ディレクトリーにクローンします。
- hello プロジェクトにhello-world-gitという名前のjobを作成します。このjobは、リポジトリのデフォルトブランチの先頭にあるコミットに関連付けられています。
- jobs/hello_worldディレクトリーと- Dockerfile.wandbからコンテナーイメージを構築します。
- コンテナーを起動し、python job.pyを実行します。
特定のブランチまたはコミットハッシュからjobを構築するには、-g、--git-hash引数を追加します。引数の完全なリストについては、wandb launch --helpを実行してください。
リモートURLの形式
Launch jobに関連付けられたgitリモートは、HTTPSまたはSSH URLのいずれかになります。URLタイプは、jobソース コードの取得に使用されるプロトコルを決定します。
| リモートURLタイプ | URL形式 | アクセスと認証の要件 | 
|---|---|---|
| https | https://github.com/organization/repository.git | gitリモートで認証するためのユーザー名とパスワード | 
| ssh | git@github.com:organization/repository.git | gitリモートで認証するためのsshキー | 
正確なURL形式は、ホスティングプロバイダーによって異なることに注意してください。wandb launch --uriで作成されたjobsは、指定された--uriで指定された転送プロトコルを使用します。
Code artifact jobs
Jobsは、W&B Artifactに保存されている任意のソース コードから作成できます。--uriまたは-u引数を持つローカルディレクトリーを使用して、新しいcode artifactとjobを作成します。
まず、空のディレクトリーを作成し、次のコンテンツを含むmain.pyという名前のPythonスクリプトを追加します。
import wandb
with wandb.init() as run:
    run.log({"metric": 0.5})
次のコンテンツを含むrequirements.txtファイルを追加します。
wandb>=0.17.1
ディレクトリーをcode artifactとして記録し、次のコマンドでjobを起動します。
wandb launch --uri . --job-name hello-world-code --project launch-quickstart --entry-point "python main.py"
上記のコマンドは次のことを行います。
- 現在のディレクトリーをhello-world-codeという名前のcode artifactとして記録します。
- launch-quickstartプロジェクトに- hello-world-codeという名前のjobを作成します。
- 現在のディレクトリーとLaunchのデフォルトのDockerfileからコンテナーイメージを構築します。デフォルトのDockerfileは、requirements.txtファイルをインストールし、エントリポイントをpython main.pyに設定します。
Image jobs
または、既製のDockerイメージからjobsを構築することもできます。これは、MLコード用の確立された構築システムがすでに存在する場合、またはjobのコードまたは要件を調整する予定はないが、ハイパーパラメーターまたはさまざまなインフラストラクチャースケールを試したい場合に役立ちます。
イメージはDockerレジストリからプルされ、指定されたエントリポイント、またはエントリポイントが指定されていない場合はデフォルトのエントリポイントで実行されます。--docker-imageオプションに完全なイメージタグを渡して、Dockerイメージからjobを作成および実行します。
既製のイメージから単純なjobを実行するには、次のコマンドを使用します。
wandb launch --docker-image "wandb/job_hello_world:main" --project "hello-world"           
Automatic job creation
W&Bは、追跡されたソース コードを含むrunに対してjobを自動的に作成および追跡します。これは、Launchでrunが作成されなかった場合でも同様です。Runは、次の3つの条件のいずれかが満たされた場合に、追跡されたソース コードを持っていると見なされます。
- Runに関連付けられたgitリモートとコミットハッシュがある
- Runがcode artifactを記録した(詳細については、Run.log_codeを参照してください)
- Runが、イメージタグに設定されたWANDB_DOCKER環境変数を持つDockerコンテナーで実行された
Launch jobがW&B runによって自動的に作成された場合、GitリモートURLはローカルgitリポジトリから推測されます。
Launch job names
デフォルトでは、W&Bはjob名を自動的に生成します。名前は、jobの作成方法(GitHub、code artifact、またはDockerイメージ)に応じて生成されます。または、環境変数またはW&B Python SDKを使用してLaunch jobの名前を定義することもできます。
次の表は、jobソースに基づいてデフォルトで使用されるjob命名規則を示しています。
| ソース | 命名規則 | 
|---|---|
| GitHub | job-<git-remote-url>-<path-to-script> | 
| Code artifact | job-<code-artifact-name> | 
| Docker image | job-<image-name> | 
W&B環境変数またはW&B Python SDKを使用してjobに名前を付けます。
WANDB_JOB_NAME環境変数を優先job名に設定します。次に例を示します。
WANDB_JOB_NAME=awesome-job-name
wandb.Settingsを使用してjobの名前を定義します。次に、wandb.initでW&Bを初期化するときに、このオブジェクトを渡します。次に例を示します。
settings = wandb.Settings(job_name="my-job-name")
wandb.init(settings=settings)
Containerization
Jobsはコンテナー内で実行されます。Image jobsは既製のDockerイメージを使用しますが、Gitおよびcode artifact jobsはコンテナー構築手順を必要とします。
Jobのコンテナー化は、wandb launchへの引数とjobソース コード内のファイルを使用してカスタマイズできます。
Build context
構築コンテキストという用語は、コンテナーイメージを構築するためにDockerデーモンに送信されるファイルとディレクトリーのツリーを指します。デフォルトでは、Launchはjobソース コードのルートを構築コンテキストとして使用します。サブディレクトリーを構築コンテキストとして指定するには、jobの作成および起動時にwandb launchの--build-context引数を使用します。
--build-context引数は、複数のプロジェクトを含むモノレポを指すGit jobsを操作する場合に特に役立ちます。サブディレクトリーを構築コンテキストとして指定することで、モノレポ内の特定のプロジェクトのコンテナーイメージを構築できます。
--build-context引数を公式のW&B Launch jobsリポジトリで使用する方法のデモについては、上記の例を参照してください。
Dockerfile
Dockerfileは、Dockerイメージを構築するための命令を含むテキストファイルです。デフォルトでは、Launchはrequirements.txtファイルをインストールするデフォルトのDockerfileを使用します。カスタムDockerfileを使用するには、wandb launchの--dockerfile引数を使用してファイルへのパスを指定します。
Dockerfileパスは、構築コンテキストを基準にして指定されます。たとえば、構築コンテキストがjobs/hello_worldで、Dockerfileがjobs/hello_worldディレクトリーにある場合、--dockerfile引数はDockerfile.wandbに設定する必要があります。--dockerfile引数を公式のW&B Launch jobsリポジトリで使用する方法のデモについては、上記の例を参照してください。
Requirements file
カスタムDockerfileが提供されていない場合、LaunchはインストールするPython依存関係の構築コンテキストを検索します。requirements.txtファイルが構築コンテキストのルートに見つかった場合、Launchはそのファイルにリストされている依存関係をインストールします。それ以外の場合、pyproject.tomlファイルが見つかった場合、Launchはproject.dependenciesセクションから依存関係をインストールします。
[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.