メインコンテンツへスキップ

Colab で試す

W&B Launch を使用して、ハイパーパラメーターチューニングジョブ( Sweeps )を作成します。Launch での Sweeps では、指定されたハイパーパラメーターを探索するための sweep scheduler が、指定された Launch Queue にプッシュされます。sweep scheduler は エージェント によってピックアップされると開始され、選択されたハイパーパラメーターを使用して sweep Runs を同じキューにローンチします。これは、sweep が終了するか停止されるまで継続されます。 デフォルトの W&B Sweep スケジューリングエンジンを使用するか、独自のカスタムスケジューラーを実装することができます。
  1. 標準 sweep scheduler: W&B Sweeps を制御するデフォルトの W&B Sweep スケジューリングエンジンを使用します。おなじみの bayesgridrandom メソッドが利用可能です。
  2. カスタム sweep scheduler: sweep scheduler を ジョブ として実行するように設定します。このオプションでは完全なカスタマイズが可能です。標準の sweep scheduler を拡張してロギングを追加する例については、以下のセクションを参照してください。
このガイドは、W&B Launch があらかじめ設定されていることを前提としています。W&B Launch が設定されていない場合は、Launch ドキュメントの 開始方法 セクションを参照してください。
Launch で Sweeps を初めて使用する場合は、「標準(basic)」メソッドを使用して作成することをお勧めします。標準の W&B スケジューリングエンジンではニーズを満たせない場合にのみ、カスタムの Launch Sweeps スケジューラーを使用してください。

標準スケジューラーで Sweep を作成する

Launch を使用して W&B Sweeps を作成します。W&B App を使用して対話的に、または W&B CLI を使用してプログラムで作成できます。スケジューラーのカスタマイズを含む Launch Sweeps の高度な設定を行うには、CLI を使用してください。
Launch で Sweep を作成する前に、まず探索対象となる ジョブ を作成していることを確認してください。詳細は ジョブの作成 ページを参照してください。
W&B App で対話的に Sweep を作成します。
  1. W&B App 上の W&B プロジェクトに移動します。
  2. 左パネルの Sweeps アイコン(ほうきのアイコン)を選択します。
  3. 次に、Create Sweep ボタンを選択します。
  4. Configure Launch ボタンをクリックします。
  5. Job ドロップダウンメニューから、Sweep の作成元となる ジョブ 名と ジョブ バージョンを選択します。
  6. Queue ドロップダウンメニューを使用して、Sweep を実行するキューを選択します。
  7. Job Priority ドロップダウンを使用して、Launch ジョブの優先度を指定します。ローンチキューが優先度をサポートしていない場合、優先度は「Medium」に設定されます。
  8. (任意) Run または sweep scheduler のオーバーライド引数を設定します。例えば、スケジューラーのオーバーライドを使用して、スケジューラーが管理する同時実行 Run 数を num_workers で設定します。
  9. (任意) Destination Project ドロップダウンメニューを使用して、Sweep を保存するプロジェクトを選択します。
  10. Save をクリックします。
  11. Launch Sweep を選択します。
Launch sweep configuration

カスタム sweep scheduler を作成する

W&B スケジューラーまたは独自のカスタムスケジューラーを使用して、カスタム sweep scheduler を作成します。
スケジューラージョブを使用するには、wandb cli バージョン 0.15.4 以上が必要です。
W&B sweep スケジューリングロジックを ジョブ として使用して、Launch Sweep を作成します。
  1. 公開されている wandb/sweep-jobs プロジェクト内で Wandb スケジューラージョブを特定するか、以下のジョブ名を使用します: 'wandb/sweep-jobs/job-wandb-sweep-scheduler:latest'
  2. この名前を指す job キーを含む scheduler ブロックを追加した設定 yaml を作成します(以下の例を参照)。
  3. 新しい設定で wandb launch-sweep コマンドを使用します。
設定例:
# launch-sweep-config.yaml  
description: Launch sweep config using a scheduler job
scheduler:
  job: wandb/sweep-jobs/job-wandb-sweep-scheduler:latest
  num_workers: 8  # 8つの同時実行 sweep runs を許可

# sweep runs が実行するトレーニング/チューニングジョブ
job: wandb/sweep-jobs/job-fashion-MNIST-train:latest
method: grid
parameters:
  learning_rate:
    min: 0.0001
    max: 0.1
カスタム sweep scheduler ジョブで可能なことの例は、wandb/launch-jobs リポジトリの jobs/sweep_schedulers 以下にあります。このガイドでは、公開されている Wandb Scheduler Job の使用方法、およびカスタム sweep scheduler ジョブを作成するプロセスを紹介しました。

Launch での Sweeps を再開する方法

以前にローンチされた Sweep から launch-sweep を再開することも可能です。ハイパーパラメーターとトレーニングジョブは変更できませんが、スケジューラー固有のパラメータや、プッシュ先のキューは変更できます。
最初の Sweep で ‘latest’ のようなエイリアスを持つトレーニングジョブを使用していた場合、前回の実行以降に最新のジョブバージョンが変更されていると、再開時に異なる結果が生じる可能性があります。
  1. 以前実行された launch sweep の Sweep 名/ID を特定します。Sweep ID は 8 文字の文字列(例: hhd16935)で、W&B App のプロジェクト内で確認できます。
  2. スケジューラーパラメータを変更する場合は、更新された設定ファイルを作成します。
  3. ターミナルで以下のコマンドを実行します。<> で囲まれた内容を自分の情報に置き換えてください。
wandb launch-sweep <optional config.yaml> --resume_id <sweep id> --queue <queue_name>