Run.config 全体をジョブの入力としてキャプチャしますが、Launch SDK は run config の選択したキーを制御したり、JSON または YAML ファイルを入力として指定するための機能を提供します。
Launch SDK の関数は
wandb-core を必要とします。詳細については、wandb-core README を参照してください。Run オブジェクトの再設定
ジョブ内の wandb.init によって返される Run オブジェクトは、デフォルトで再設定可能です。Launch SDK は、ジョブの Launch 時に Run.config オブジェクトのどの部分が再設定可能かをカスタマイズする方法を提供します。
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 パラメーターのみを上書きできます。
run config の入力へのアクセス
run config の入力でローンチされたジョブは、Run.config を通じて入力値にアクセスできます。ジョブ コード内で wandb.init によって返された Run は、入力値を自動的に設定します。ジョブ コードのどこでも run config の入力値をロードするには、次を使用します:
ファイルの再設定
Launch SDK はまた、ジョブ コードで設定ファイルに格納された入力値を管理する方法も提供します。これは、多くのディープラーニングや大規模な言語モデルのユースケースで一般的なパターンであり、例えばこの torchtune の例やこの Axolotl config などがあります。Sweeps on Launch は、sweep パラメーターとしての設定ファイル入力の使用をサポートしていません。sweep パラメーターは
Run.config オブジェクトで制御する必要があります。launch.manage_config_file 関数を使用して、設定ファイルを Launch ジョブの入力として追加し、ジョブをローンチする際に設定ファイル内の値の編集アクセスを提供します。
デフォルトでは、launch.manage_config_file が使用されると run config 入力はキャプチャされません。launch.manage_wandb_config を呼び出すことで、この振る舞いを上書きします。
以下の例を考えてみましょう:
config.yaml と一緒に実行されていると想像してください:
launch.manage_config_file の呼び出しは、config.yaml ファイルをジョブの入力として追加し、W&B CLI または UI からローンチする際に再設定可能にします。
launch.manage_wandb_config と同じようにして、設定ファイルに対する許容入力キーをフィルタリングするために include と exclude のキーワード引数を使用できます。
設定ファイルの入力へのアクセス
Launch によって作成された run でlaunch.manage_config_file が呼び出されると、launch は設定ファイルの内容を入力値でパッチします。修正された設定ファイルはジョブ 環境で利用可能です。
ジョブの launch ドロワー UI のカスタマイズ
ジョブの入力スキーマを定義することで、ジョブをローンチするためのカスタム UI を作成できます。ジョブのスキーマを定義するには、launch.manage_wandb_config または launch.manage_config_file の呼び出しにそれを含めます。スキーマは、JSON Schema の形での Python 辞書または Pydantic モデル クラスのいずれかです。
- JSON schema
- Pydantic model
次の例は、以下のプロパティを持つスキーマを示しています:一般的に、以下の JSON Schema 属性がサポートされています:
seed, 整数trainer, いくつかのキーが指定された辞書:trainer.learning_rate, ゼロより大きくなければならない浮動小数点数trainer.batch_size, 16, 64, 256 のいずれかでなければならない整数trainer.dataset,cifar10またはcifar100のいずれかでなければならない文字列
| 属性 | 必須 | 注釈 |
|---|---|---|
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 のとき、ネストされた設定を定義するために使用します |
