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

Colab で試す

W&B Launch を使用して、ハイパーパラメーター調整ジョブ (sweeps) を作成します。Launch 上の sweeps では、sweep 対象として指定したハイパーパラメーターとともに、sweep scheduler が Launch キュー に送られます。sweep scheduler は agent によって取得されると開始し、選択されたハイパーパラメーターを使って sweep runs を同じキューに起動します。これは、sweep が完了するか停止されるまで続きます。 デフォルトの W&B Sweep scheduling engine を使用することも、独自の custom scheduler を実装することもできます。
  1. 標準 sweep scheduler: W&B Sweeps を制御する、デフォルトの W&B Sweep scheduling engine を使用します。おなじみの bayesgridrandom の method を利用できます。
  2. custom sweep scheduler: sweep scheduler をジョブとして実行するように設定します。このオプションでは、完全にカスタマイズできます。標準の sweep scheduler を拡張して logging を追加する例は、以下のセクションにあります。
このガイドでは、W&B Launch が事前に設定済みであることを前提としています。W&B Launch が設定されていない場合は、Launch ドキュメントの how to get started セクションを参照してください。
Launch 上の sweeps を初めて使用する場合は、‘basic’ method で sweep を作成することをおすすめします。標準の W&B scheduling engine で要件を満たせない場合は、Launch 上の custom sweeps scheduler を使用してください。

W&B 標準スケジューラーで sweep を作成する

Launch を使用して W&B Sweeps を作成します。W&B App を使ってインタラクティブに sweep を作成することも、W&B CLI を使ってプログラムで作成することもできます。スケジューラーをカスタマイズする機能を含む Launch sweeps の高度な設定を行う場合は、CLI を使用してください。
W&B Launch で sweep を作成する前に、まず sweep 対象のジョブを作成しておいてください。詳細は Create a Job ページを参照してください。
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 job の優先度を指定します。launch queue が優先度設定をサポートしていない場合、launch job の優先度は “Medium” に設定されます。
  8. (省略可) run または sweep scheduler の override args を設定します。たとえば、scheduler overrides を使用して、scheduler が管理する同時実行 runs 数を num_workers で設定できます。
  9. (省略可) Destination Project ドロップダウンメニューを使用して、sweep の保存先プロジェクトを選択します。
  10. Save をクリックします
  11. Launch Sweep を選択します。
Launch sweep の設定

カスタム sweep scheduler を作成する

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

# sweep runが実行するトレーニング/チューニングジョブ
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’ のようなエイリアスを持つトレーニングジョブを使用していた場合、前回の run 以降に最新のジョブバージョンが変更されていると、再開時に異なる結果になる可能性があります。
  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>