Run.config 全体をジョブの入力として取得しますが、Launch SDK には、run config 内の特定のキーを制御したり、JSON または YAML ファイルを入力として指定したりするための関数が用意されています。
Launch SDK の関数には
wandb-core が必要です。詳細については、wandb-core README を参照してください。Run オブジェクトを再設定する
wandb.init が返す Run オブジェクトは、デフォルトで再設定できます。Launch SDK では、ジョブの起動時に Run.config オブジェクトのどの部分を再設定可能にするかをカスタマイズできます。
launch.manage_wandb_config は、ジョブが Run.config オブジェクトの入力値を受け取れるように設定します。省略可能な include オプションと exclude オプションには、ネストされた設定オブジェクト内のパスプレフィックスを指定します。これは、たとえばジョブで、エンドユーザーに公開したくないオプションを持つライブラリを使用している場合に便利です。
include プレフィックスを指定すると、設定内で include プレフィックスに一致するパスだけが入力値を受け取ります。exclude プレフィックスを指定すると、exclude リストに一致するパスはすべて入力値から除外されます。あるパスが include プレフィックスと exclude プレフィックスの両方に一致する場合は、exclude プレフィックスが優先されます。
前述の例では、パス ["trainer.private"] は trainer オブジェクトから private キーを除外し、パス ["trainer"] は trainer オブジェクト配下以外のすべてのキーを除外します。
\ でエスケープした . を使用すると、名前に . を含むキーを除外できます。たとえば、r"trainer\.private" は、trainer オブジェクト配下の private キーではなく、trainer.private キーを除外します。上記の r プレフィックスは raw string を表します。trainer パラメーターのみです。
run config の入力 にアクセスする
Run.config を通じて入力値にアクセスできます。ジョブコード内で wandb.init が返す Run には、入力値が自動的に設定されます。使用する
ファイルを再設定する
Launch の Sweeps では、設定ファイルの入力を 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 から起動する際に再設定できるようになります。
include および exclude キーワード引数を使用すると、launch.manage_wandb_config と同様に、設定ファイルで受け付ける入力キーをフィルターできます.
設定ファイルの入力にアクセスする
launch.manage_config_file が呼び出されると、launch は入力値を使って設定ファイルの内容を書き換えます。書き換え後の設定ファイルはジョブ環境で利用できます。
ジョブの Launch drawer UI をカスタマイズする
launch.manage_wandb_config または launch.manage_config_file の呼び出しにスキーマを含めます。スキーマには、JSON Schema 形式の Python の dict、または Pydantic のモデルクラスを使用できます。
- JSON スキーマ
- Pydantic モデル
次の例は、以下のプロパティを持つスキーマを示しています。一般に、以下の JSON Schema 属性がサポートされます。
seed: 整数trainer: いくつかのキーが指定された辞書trainer.learning_rate: 0 より大きい必要がある浮動小数点数trainer.batch_size: 16、64、256 のいずれかである必要がある整数trainer.dataset:cifar10またはcifar100のいずれかである必要がある文字列
| 属性 | 必須 | メモ |
|---|---|---|
type | はい | number、integer、string、object のいずれかである必要があります |
title | いいえ | プロパティの表示名を上書きします |
description | いいえ | プロパティのヘルパーテキストを指定します |
enum | いいえ | 自由入力のテキストエントリの代わりに、ドロップダウン選択を作成します |
minimum | いいえ | type が number または integer の場合にのみ使用できます |
maximum | いいえ | type が number または integer の場合にのみ使用できます |
exclusiveMinimum | いいえ | type が number または integer の場合にのみ使用できます |
exclusiveMaximum | いいえ | type が number または integer の場合にのみ使用できます |
properties | いいえ | type が object の場合、ネストされた設定を定義するために使用されます |
