これは、このセクションの複数ページの印刷可能なビューです。 印刷するには、ここをクリックしてください.
ジョブを作成してデプロイする
- 1: ローンンチ ジョブを表示する
- 2: ローンンチキューを監視する
- 3: ローンンチジョブを作成する
- 4: キューにジョブを追加
- 5: ジョブ入力を管理する
1 - ローンンチ ジョブを表示する
以下のページでは、キューに追加されたローンンチジョブの情報を表示する方法を説明します。
ジョブの表示
W&B アプリケーションを使用してキューに追加されたジョブを表示します。
- https://wandb.ai/home にある W&B アプリケーションにアクセスします。
- 左側のサイドバーにある Applications セクション内の Launch を選択します。
- All entities ドロップダウンを選択し、ローンンチジョブが所属するエンティティを選択します。
- Launch Application ページから折りたたみ可能なUIを展開し、その特定のキューに追加されたジョブのリストを表示します。
例えば、次の画像は、job-source-launch_demo-canonical
というジョブから作成された2つのrunを示しています。このジョブは Start queue
というキューに追加されました。キューにリストされている最初のrunは resilient-snowball
と呼ばれ、2番目のrunは earthy-energy-165
と呼ばれます。

W&B アプリケーションUI内で、ローンンチジョブから作成されたrunに関する次のような追加情報を見つけることができます:
- Run: そのジョブに割り当てられた W&B run の名前。
- Job ID: ジョブの名前。
- Project: runが所属するプロジェクトの名前。
- Status: キューに入れられたrunのステータス。
- Author: run を作成した W&B エンティティ。
- Creation date: キューが作成されたタイムスタンプ。
- Start time: ジョブが開始されたタイムスタンプ。
- Duration: ジョブのrunを完了するのにかかった時間(秒単位)。
ジョブのリスト
プロジェクト内に存在するジョブのリストを W&B CLI を使用して表示します。W&B job list コマンドを使用し、--project
および --entity
フラグにローンンチジョブが所属するプロジェクト名とエンティティ名を指定します。
wandb job list --entity your-entity --project project-name
ジョブのステータスを確認する
次の表は、キューに入れられたrunが持つ可能性のあるステータスを定義しています:
ステータス | 説明 |
---|---|
Idle | runはアクティブなエージェントのないキューにあります。 |
Queued | runはエージェントが処理するのを待っているキューにあります。 |
Pending | run はエージェントによって取得されましたが、まだ開始されていません。これはクラスターでリソースが利用できないことが原因である可能性があります。 |
Running | run は現在実行中です。 |
Killed | ジョブはユーザーによって終了されました。 |
Crashed | run はデータの送信を停止したか、正常に開始しませんでした。 |
Failed | run は非ゼロの終了コードで終了したか、run の開始に失敗しました。 |
Finished | ジョブは正常に完了しました。 |
2 - ローンンチキューを監視する
Use the interactive キュー監視ダッシュボード を使用して、launch キューが混雑しているかアイドル状態かを表示し、実行中のワークロードを視覚化し、非効率なジョブを見つけます。launch キューのダッシュボードは、計算ハードウェアやクラウドリソースを効果的に使用しているかどうかを判断するのに特に役立ちます。
詳細な分析を行うには、ページから W&B の実験管理ワークスペースや Datadog、NVIDIA Base Command、クラウドコンソールなどの外部インフラストラクチャーモニタリングプロバイダーへのリンクを利用します。
ダッシュボードとプロット
Monitor タブを使用して、過去 7 日間に発生したキューの活動を表示します。左側のパネルを使用して、時間範囲、グループ化、およびフィルターを制御します。
ダッシュボードには、パフォーマンスと効率性に関するよくある質問に対する答えが表示されるいくつかのプロットが含まれています。以下のセクションでは、キューダッシュボードの UI 要素について説明します。
ジョブステータス
ジョブステータス プロットは、各時間間隔において何件のジョブが実行中、保留中、キュー中、または完了済みであるかを示します。この ジョブステータス プロットを使用して、キューのアイドル期間を特定します。

例えば、固定リソース (たとえば、DGX BasePod) を持っているとします。固定リソースを使用しているキューがアイドル状態であることを観察した場合、低優先度の先取可能 launch ジョブ (例えば Sweeps) を実行する機会があるかもしれません。
一方、クラウドリソースを使用しており、定期的な活動の急増を観察した場合、それは特定の時間帯にリソースを予約してお金を節約する機会を示すかもしれません。
プロットの右側には、launch ジョブのステータス を示す色が表示されるキーがあります。
Queued
項目は、ワークロードを他のキューにシフトする機会を示すかもしれません。失敗の急増は、launch ジョブの設定で助けが必要なユーザーを特定するのに役立ちます。キュー時間
キュー時間 プロットは、特定の日付または時間範囲で launch ジョブがキュー上にあった時間(秒数)を表示します。

x 軸は指定した時間枠を、y 軸は launch ジョブが launch キュー上にあった時間(秒数)を示します。例えば、ある日に 10 件の launch ジョブがキューに入っていると仮定します。それら 10 件の launch ジョブがそれぞれ平均 60 秒待機する場合、キュー時間 プロットは 600 秒を表示します。
左バーの Grouping
コントロールを使用して、各ジョブの色をカスタマイズします。
特に、ユーザーとジョブが限られたキュー容量にどの程度影響を受けているかを特定するのに役立ちます。
ジョブ実行

このプロットは、指定した期間に実行されたジョブの開始と終了を、各 run ごとに異なる色で示しています。これにより、指定した時間にキューがどのワークロードを処理していたかを一目で確認できます。
パネルの右下にある Select ツールを使用して、ジョブをブラシオーバーして下のテーブルに詳細を表示します。
CPU と GPU の使用
ジョブによる GPU の使用、ジョブによる CPU の使用、ジョブによる GPU メモリ、ジョブによるシステムメモリ を使用して、launch ジョブの効率性を確認します。

例えば、ジョブによる GPU メモリ を使用して、W&B run が完了するのに長い時間を要し、CPU コアの使用率が低かったかどうかを確認できます。
各プロットの x 軸は W&B run (launch ジョブによって作成された) の期間を秒単位で示しています。データポイントにマウスを重ねて、W&B run の情報(run ID、run の属するプロジェクト、W&B run を作成した launch ジョブなど)を確認します。
エラー
エラーパネル は、特定の launch キューで発生したエラーを表示します。より具体的には、エラーパネルはエラーが発生したタイムスタンプ、エラーが発生した launch ジョブの名前、および作成されたエラーメッセージを示します。デフォルトでは、エラーは最新のものから古いものの順に並べられます。

エラーパネル を使用してユーザーを特定し、ブロックを解除します。
外部リンク
キューの可観測性ダッシュボードのビューはすべてのキュータイプで一貫していますが、多くの場合、環境固有のモニタに直接ジャンプすることが有用です。これを達成するために、コンソールからキューの可観測性ダッシュボードに直接リンクを追加します。
ページの下部で Manage Links
をクリックしてパネルを開きます。必要なページの完全な URL を追加します。次にラベルを追加します。追加したリンクは External Links セクションに表示されます。
3 - ローンンチジョブを作成する
Launch ジョブは、W&B Runs を再現するための設計図です。ジョブは、ワークロードを実行するために必要なソースコード、依存関係、および入力をキャプチャする W&B Artifacts です。
wandb launch
コマンドでジョブを作成して実行します。
wandb job create
コマンドを使用します。詳細については、コマンドリファレンスドキュメント を参照してください。Git ジョブ
W&B Launch を使って、ソースコードや他の追跡されたアセットをリモート git リポジトリの特定のコミット、ブランチ、またはタグからクローンする Git ベースのジョブを作成できます。--uri
または -u
フラグを使用して、コードを含む URI を指定し、オプションとして --build-context
フラグを使用してサブディレクトリーを指定します。
次のコマンドを使用して git リポジトリから “hello world” ジョブを実行します:
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 ジョブリポジトリ を一時ディレクトリーにクローンします。
- hello プロジェクト内に hello-world-git という名前のジョブを作成します。このジョブはリポジトリのデフォルトブランチのトップにあるコミットに関連付けられています。
jobs/hello_world
ディレクトリーとDockerfile.wandb
からコンテナイメージをビルドします。- コンテナを開始し、
python job.py
を実行します。
特定のブランチまたはコミットハッシュからジョブをビルドするには、-g
、--git-hash
引数を追加します。引数の完全なリストについては、wandb launch --help
を実行してください。
リモート URL 形式
Launch ジョブに関連付けられた git リモートは、HTTPS または SSH URL のいずれかを使用できます。URL タイプは、ジョブのソースコードを取得するために使用されるプロトコルを決定します。
リモート URL タイプ | URL 形式 | アクセスと認証の要件 |
---|---|---|
https | https://github.com/organization/repository.git |
git リモートでの認証用のユーザー名とパスワード |
ssh | git@github.com:organization/repository.git |
git リモートでの認証用の SSH キー |
正確な URL 形式はホスティングプロバイダーによって異なることに注意してください。wandb launch --uri
で作成されたジョブは、指定された --uri
で指定された転送プロトコルを使用します。
コードアーティファクトジョブ
ジョブは、任意のソースコードから W&B Artifact に保存して作成できます。ローカルディレクトリーを --uri
または -u
引数で使用して、新しいコードアーティファクトとジョブを作成します。
まず、空のディレクトリーを作成し、次の内容を持つ Python スクリプト main.py
を追加します:
import wandb
with wandb.init() as run:
run.log({"metric": 0.5})
次の内容を持つファイル requirements.txt
を追加します:
wandb>=0.17.1
ディレクトリーをコードアーティファクトとして記録し、次のコマンドでジョブを起動します:
wandb launch --uri . --job-name hello-world-code --project launch-quickstart --entry-point "python main.py"
前のコマンドは次のことを行います:
- 現在のディレクトリーを
hello-world-code
という名前のコードアーティファクトとして記録します。 launch-quickstart
プロジェクト内にhello-world-code
という名前のジョブを作成します。- 現在のディレクトリーと Launch のデフォルトの Dockerfile からコンテナイメージをビルドします。デフォルトの Dockerfile は
requirements.txt
ファイルをインストールし、エントリーポイントをpython main.py
に設定します。
イメージジョブ
別の方法として、事前に作成された Docker イメージからジョブを構築することもできます。これは、すでに ML コード用の確立されたビルドシステムを持っている場合や、ジョブのコードや要件を調整することはほとんどなく、ハイパーパラメーターや異なるインフラストラクチャー規模で実験したい場合に役立ちます。
イメージは Docker レジストリから取得され、指定されたエントリーポイントまたは指定されていない場合はデフォルトのエントリーポイントで実行されます。Docker イメージからジョブを作成して実行するには、--docker-image
オプションに完全なイメージタグを渡します。
事前に作成されたイメージからシンプルなジョブを実行するには、次のコマンドを使用します:
wandb launch --docker-image "wandb/job_hello_world:main" --project "hello-world"
自動ジョブ作成
W&B は、追跡されたソースコードを持つ任意の Run に対してジョブを自動的に作成して追跡します。この Run が Launch で作成されていなくてもです。Run が追跡されたソースコードを持つと見なされる条件は次の3つのうちのいずれかを満たした場合です:
- Run に関連付けられた git リモートとコミットハッシュがある
- Run がコードアーティファクトを記録した (詳細については
Run.log_code
を参照) - Run が
WANDB_DOCKER
環境変数をイメージタグに設定した Docker コンテナで実行された
Git リモート URL は、W&B Run によって自動的に作成された Launch ジョブの場合、ローカルの git リポジトリから推測されます。
Launch ジョブ名
デフォルトでは、W&B はジョブ名を自動的に生成します。名前は、ジョブの作成方法 (GitHub、コードアーティファクト、Docker イメージ) によって生成されます。別の方法として、環境変数または W&B Python SDK で Launch ジョブの名前を定義できます。
次の表は、ジョブソースに基づくデフォルトのジョブの命名規則について説明しています:
ソース | 命名規則 |
---|---|
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 でジョブに名前を付けます
WANDB_JOB_NAME
環境変数を希望のジョブ名に設定します。例:
WANDB_JOB_NAME=awesome-job-name
wandb.Settings
でジョブの名前を定義します。そして、このオブジェクトを使用して W&B を wandb.init
で初期化する際に渡します。例:
settings = wandb.Settings(job_name="my-job-name")
wandb.init(settings=settings)
コンテナ化
ジョブはコンテナ内で実行されます。イメージジョブは事前構築された Docker イメージを使用し、Git およびコードアーティファクトジョブはコンテナビルドステップが必要です。
ジョブのコンテナ化は、wandb launch
の引数やジョブソースコード内のファイルでカスタマイズできます。
ビルドコンテキスト
ビルドコンテキストとは、コンテナイメージをビルドするために Docker デーモンに送信されるファイルとディレクトリーのツリーを指します。デフォルトでは、Launch はジョブソースコードのルートをビルドコンテキストとして使用します。サブディレクトリーをビルドコンテキストとして指定するには、ジョブを作成して起動する際に wandb launch
の --build-context
引数を使用します。
--build-context
引数は、複数のプロジェクトを含むモノレポを参照する Git ジョブで作業する際に特に便利です。サブディレクトリーをビルドコンテキストとして指定することで、モノレポ内の特定のプロジェクト用のコンテナイメージをビルドできます。
この引数を公式の W&B Launch ジョブリポジトリで使用する方法については、上記の例をご覧ください。
Dockerfile
Dockerfile は、Docker イメージをビルドするための命令を含むテキストファイルです。デフォルトでは、Launch は requirements.txt
ファイルをインストールするデフォルトの Dockerfile を使用します。カスタム Dockerfile を使用するには、wandb launch
の --dockerfile
引数でファイルのパスを指定します。
Dockerfile のパスはビルドコンテキストに相対的に指定されます。たとえば、ビルドコンテキストが jobs/hello_world
で、Dockerfile が jobs/hello_world
ディレクトリーにある場合、--dockerfile
引数は Dockerfile.wandb
に設定されるべきです。この引数を公式の W&B Launch ジョブリポジトリで使用する方法については、上記の例をご覧ください。
要件ファイル
カスタム Dockerfile が提供されていない場合、Launch は Python の依存関係をインストールするためにビルドコンテキストを調べます。ビルドコンテキストのルートに requirements.txt
ファイルが見つかった場合、Launch はファイルにリストされた依存関係をインストールします。それ以外の場合、pyproject.toml
ファイルが見つかれば、project.dependencies
セクションから依存関係をインストールします。
4 - キューにジョブを追加
次のページでは、ローンチキューにローンチジョブを追加する方法について説明しています。
キューにジョブを追加する
W&B Appを使用してインタラクティブに、またはW&B CLIを使用してプログラム的にキューにジョブを追加します。
W&B Appを使用してプログラム的にキューにジョブを追加します。
- W&B Project Pageに移動します。
- 左のパネルで Jobs アイコンを選択します:
- Jobs ページには、以前に実行されたW&B runsから作成されたW&Bローンチジョブのリストが表示されます。
- ジョブ名の横にある Launch ボタンを選択します。ページの右側にモーダルが表示されます。
- Job version ドロップダウンから使用するローンチジョブのバージョンを選択します。ローンチジョブは他の W&B Artifact と同様にバージョン管理されます。ソフトウェアの依存関係やジョブを実行するために使用されるソースコードに変更を加えると、同じローンチジョブの異なるバージョンが作成されます。
- Overrides セクションで、ローンチジョブに設定された入力の新しい値を提供します。一般的なオーバーライドには、新しいエントリーポイントコマンド、引数、または新しいW&B runの
wandb.config
内の値が含まれます。
Paste from… ボタンをクリックして、ローンチジョブで使用された他のW&B runsから値をコピーして貼り付けることができます。
- Queue ドロップダウンから、ローンチジョブを追加するローンチキューの名前を選択します。
- Job Priority ドロップダウンを使用して、ローンチジョブの優先度を指定します。ローンチキューが優先度をサポートしていない場合は、ローンチジョブの優先度は「Medium」に設定されます。
- (オプション) この手順は、キュー設定テンプレートがチーム管理者によって作成されている場合にのみ従ってください
Queue Configurations フィールド内で、チームの管理者によって作成された設定オプションに対する値を提供します。
例えば、次の例では、チーム管理者がチームが使用できるAWSインスタンスタイプを設定しました。この場合、チームメンバーはml.m4.xlarge
またはml.p3.xlarge
のいずれかのコンピュートインスタンスタイプを選択してモデルをトレーニングできます。 - Destination project を選択して、結果として生成されるrunが表示されるプロジェクトを指定します。このプロジェクトは、キューと同じエンティティに属している必要があります。
- Launch now ボタンを選択します。
wandb launch
コマンドを使用して、キューにジョブを追加します。ハイパーパラメーターオーバーライドを含むJSON設定を作成します。例えば、クイックスタート ガイドのスクリプトを使用して、以下のオーバーライドを含むJSONファイルを作成します。
{
"overrides": {
"args": [],
"run_config": {
"learning_rate": 0,
"epochs": 0
},
"entry_point": []
}
}
キューの設定をオーバーライドする場合、またはローンチキューに設定リソースが定義されていない場合、config.json
ファイルで resource_args
キーを指定できます。例えば、上記の例を続けると、config.json
ファイルは次のようになります。
{
"overrides": {
"args": [],
"run_config": {
"learning_rate": 0,
"epochs": 0
},
"entry_point": []
},
"resource_args": {
"<resource-type>" : {
"<key>": "<value>"
}
}
}
<>
内の値を独自の値に置き換えてください。
queue
(-q
)フラグにはキューの名前を、job
(-j
)フラグにはジョブの名前を、config
(-c
)フラグには設定ファイルのパスを指定してください。
wandb launch -j <job> -q <queue-name> \
-e <entity-name> -c path/to/config.json
W&B Team内で作業する場合は、entity
フラグ(-e
)を指定して、キューが使用するエンティティを示すことをお勧めします。
5 - ジョブ入力を管理する
Launch のコア体験は、ハイパーパラメーターやデータセットのような異なるジョブの入力を簡単に実験し、それらのジョブを適切なハードウェアにルーティングすることです。一度ジョブが作成されると、元の作成者以外のユーザーも W&B GUI または CLI を介してこれらの入力を調整できます。CLI または UI からジョブ入力を設定する方法については、Enqueue jobs ガイドを参照してください。
このセクションでは、プログラム的にジョブの調整可能な入力を制御する方法を説明します。
デフォルトでは、W&B ジョブは Run.config
全体をジョブの入力としてキャプチャしますが、Launch SDK は run config の選択したキーを制御したり、JSON または YAML ファイルを入力として指定するための機能を提供します。
wandb-core
を必要とします。詳細については、wandb-core
README を参照してください。Run
オブジェクトの再設定
ジョブ内の wandb.init
によって返される Run
オブジェクトは、デフォルトで再設定可能です。Launch SDK は、ジョブの Launch 時に Run.config
オブジェクトのどの部分が再設定可能かをカスタマイズする方法を提供します。
import wandb
from wandb.sdk import launch
# Launch SDK の使用に必要
wandb.require("core")
config = {
"trainer": {
"learning_rate": 0.01,
"batch_size": 32,
"model": "resnet",
"dataset": "cifar10",
"private": {
"key": "value",
},
},
"seed": 42,
}
with wandb.init(config=config):
launch.manage_wandb_config(
include=["trainer"],
exclude=["trainer.private"],
)
# 等
関数 launch.manage_wandb_config
は、Run.config
オブジェクトに対する入力値をジョブに受け入れるように設定します。オプションの include
および exclude
オプションは、ネストされた config オブジェクト内のパスプレフィクスを取ります。例えば、ジョブがエンドユーザーに公開したくないオプションを持つライブラリを使用している場合に役立ちます。
include
プレフィクスが提供されている場合、config 内で include
プレフィクスと一致するパスのみが入力値を受け入れます。exclude
プレフィクスが提供されている場合、exclude
リストと一致するパスは入力値からフィルタリングされません。あるパスが include
および exclude
プレフィクスの両方に一致する場合、exclude
プレフィクスが優先されます。
前述の例では、パス ["trainer.private"]
は trainer
オブジェクトから private
キーをフィルタリングし、パス ["trainer"]
は trainer
オブジェクト下のすべてのキー以外をフィルタリングします。
名前に .
を含むキーをフィルタリングするには、\
-エスケープされた .
を使用します。
例えば、r"trainer\.private"
は trainer
オブジェクト下の private
キーではなく trainer.private
キーをフィルタリングします。
上記の r
プレフィクスは生文字列を示すことに注意してください。
上記のコードがパッケージ化され、ジョブとして実行される場合、ジョブの入力タイプは次のようになります:
{
"trainer": {
"learning_rate": "float",
"batch_size": "int",
"model": "str",
"dataset": "str",
},
}
W&B CLI または UI からジョブをローンチする際、ユーザーは 4 つの trainer
パラメーターのみを上書きできます。
run config の入力へのアクセス
run config の入力でローンチされたジョブは、Run.config
を通じて入力値にアクセスできます。ジョブ コード内で wandb.init
によって返された Run
は、入力値を自動的に設定します。ジョブ コードのどこでも run config の入力値をロードするには、次を使用します:
from wandb.sdk import launch
run_config_overrides = launch.load_wandb_config()
ファイルの再設定
Launch SDK はまた、ジョブ コードで設定ファイルに格納された入力値を管理する方法も提供します。これは、多くのディープラーニングや大規模な言語モデルのユースケースで一般的なパターンであり、例えばこの torchtune の例やこの Axolotl config などがあります。
Run.config
オブジェクトで制御する必要があります。launch.manage_config_file
関数を使用して、設定ファイルを Launch ジョブの入力として追加し、ジョブをローンチする際に設定ファイル内の値の編集アクセスを提供します。
デフォルトでは、launch.manage_config_file
が使用されると run config 入力はキャプチャされません。launch.manage_wandb_config
を呼び出すことで、この振る舞いを上書きします。
以下の例を考えてみましょう:
import yaml
import wandb
from wandb.sdk import launch
# Launch SDK の使用に必要
wandb.require("core")
launch.manage_config_file("config.yaml")
with open("config.yaml", "r") as f:
config = yaml.safe_load(f)
with wandb.init(config=config):
# 等
pass
コードが隣接するファイル config.yaml
と一緒に実行されていると想像してください:
learning_rate: 0.01
batch_size: 32
model: resnet
dataset: cifar10
launch.manage_config_file
の呼び出しは、config.yaml
ファイルをジョブの入力として追加し、W&B CLI または UI からローンチする際に再設定可能にします。
launch.manage_wandb_config
と同じようにして、設定ファイルに対する許容入力キーをフィルタリングするために include
と exclude
のキーワード引数を使用できます。
設定ファイルの入力へのアクセス
Launch によって作成された run で launch.manage_config_file
が呼び出されると、launch
は設定ファイルの内容を入力値でパッチします。修正された設定ファイルはジョブ 環境で利用可能です。
launch.manage_config_file
を呼び出すことで、入力値が使用されることを確実にします。ジョブの launch ドロワー UI のカスタマイズ
ジョブの入力スキーマを定義することで、ジョブをローンチするためのカスタム UI を作成できます。ジョブのスキーマを定義するには、launch.manage_wandb_config
または launch.manage_config_file
の呼び出しにそれを含めます。スキーマは、JSON Schema の形での Python 辞書または Pydantic モデル クラスのいずれかです。
次の例は、以下のプロパティを持つスキーマを示しています:
seed
, 整数trainer
, いくつかのキーが指定された辞書:trainer.learning_rate
, ゼロより大きくなければならない浮動小数点数trainer.batch_size
, 16, 64, 256 のいずれかでなければならない整数trainer.dataset
,cifar10
またはcifar100
のいずれかでなければならない文字列
schema = {
"type": "object",
"properties": {
"seed": {
"type": "integer"
},
"trainer": {
"type": "object",
"properties": {
"learning_rate": {
"type": "number",
"description": "モデルの学習率",
"exclusiveMinimum": 0,
},
"batch_size": {
"type": "integer",
"description": "バッチごとのサンプル数",
"enum": [16, 64, 256]
},
"dataset": {
"type": "string",
"description": "使用するデータセットの名前",
"enum": ["cifar10", "cifar100"]
}
}
}
}
}
launch.manage_wandb_config(
include=["seed", "trainer"],
exclude=["trainer.private"],
schema=schema,
)
一般的に、以下の JSON Schema 属性がサポートされています:
属性 | 必須 | 注釈 |
---|---|---|
type |
Yes | number , integer , string , object のいずれかでなければなりません |
title |
No | プロパティの表示名を上書きします |
description |
No | プロパティのヘルプテキストを提供します |
enum |
No | フリーフォームのテキスト入力の代わりにドロップダウン選択を作成します |
minimum |
No | type が number または integer のときのみ許可されます |
maximum |
No | type が number または integer のときのみ許可されます |
exclusiveMinimum |
No | type が number または integer のときのみ許可されます |
exclusiveMaximum |
No | type が number または integer のときのみ許可されます |
properties |
No | type が object のとき、ネストされた設定を定義するために使用します |
次の例は、以下のプロパティを持つスキーマを示しています:
seed
, 整数trainer
, いくつかのサブ属性が指定されたスキーマ:trainer.learning_rate
, ゼロより大きくなければならない浮動小数点数trainer.batch_size
, 1 から 256 までの範囲でなければならない整数trainer.dataset
,cifar10
またはcifar100
のいずれかでなければならない文字列
class DatasetEnum(str, Enum):
cifar10 = "cifar10"
cifar100 = "cifar100"
class Trainer(BaseModel):
learning_rate: float = Field(gt=0, description="モデルの学習率")
batch_size: int = Field(ge=1, le=256, description="バッチごとのサンプル数")
dataset: DatasetEnum = Field(title="Dataset", description="使用するデータセットの名前")
class Schema(BaseModel):
seed: int
trainer: Trainer
launch.manage_wandb_config(
include=["seed", "trainer"],
exclude=["trainer.private"],
schema=Schema,
)
クラスのインスタンスを使用することもできます:
t = Trainer(learning_rate=0.01, batch_size=32, dataset=DatasetEnum.cifar10)
s = Schema(seed=42, trainer=t)
launch.manage_wandb_config(
include=["seed", "trainer"],
exclude=["trainer.private"],
input_schema=s,
)
ジョブ入力スキーマを追加すると、launch ドロワーに構造化されたフォームが作成され、ジョブのローンチが容易になります。
