Skip to main content

Try in Colab

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

W&B 標準スケジューラーを使用したスイープの作成

Launch で W&B Sweeps を作成します。W&B App を使用してインタラクティブにスイープを作成することも、W&B CLI を使用してプログラム的にスイープを作成することもできます。Launch スイープの高度な設定、スケジューラーのカスタマイズを可能にする CLI を使用します。
W&B Launch でスイープを作成する前に、まずスイープするジョブを作成しておいてください。Create a Job ページを参照してください。
W&B App を使って、インタラクティブにスイープを作成します。
  1. W&B App であなたの W&B プロジェクトへ移動します。
  2. 左側のパネルからスイープのアイコン(ほうきのイメージ)を選択します。
  3. 次に、Create Sweep ボタンを選択します。
  4. Configure Launch 🚀 ボタンをクリックします。
  5. Job ドロップダウンメニューから、スイープを作成したい仕事の名前とバージョンを選択します。
  6. Queue ドロップダウンメニューを使用して、スイープを実行するキューを選択します。
  7. Job Priority ドロップダウンで、Launch ジョブの優先度を指定します。Launch Queue が優先度をサポートしていない場合、Launch ジョブの優先度は「Medium」に設定されます。
  8. (オプション) run またはスイープスケジューラーの引数を override 設定します。例えば、スケジューラーオーバーライドを使用して、スケジューラーが管理する同時 run の数を num_workers を使って設定します。
  9. (オプション) Destination Project ドロップダウンメニューを使用してスイープを保存するプロジェクトを選択します。
  10. Save をクリックします。
  11. Launch Sweep を選択します。

カスタムスイープスケジューラーの作成

W&B スケジューラーまたはカスタムスケジューラーを使用してカスタムスイープスケジューラーを作成します。
スケジューラージョブを使用するには、wandb cli バージョンが 0.15.4 以上である必要があります。
W&B スイープスケジューリングロジックをジョブとして使用して Launch スイープを作成します。
  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スイープ設定
scheduler:
  job: wandb/sweep-jobs/job-wandb-sweep-scheduler:latest
  num_workers: 8  # 8つの同時スイープ実行を許可

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

launch で sweeps を再開する方法

以前に実行されたスイープから launch-sweep を再開することも可能です。ハイパーパラメーターとトレーニングジョブは変更できませんが、スケジューラー固有のパラメーターおよび送信先キューは変更可能です。
最初のスイープが「latest」などのエイリアスを持つトレーニングジョブを使用していた場合、再開すると最新のジョブバージョンが最後に実行されたジョブと変わっている場合に異なる結果をもたらす可能性があります。
  1. 以前に実行された launch-sweep のスイープ名/ID を特定します。スイープ ID は 8 文字の文字列です(例:hhd16935)。W&B App のプロジェクトで見つけることができます。
  2. スケジューラーパラメーターを変更する場合、更新された設定ファイルを構成します。
  3. ターミナルで、次のコマンドを実行します。<> で囲まれている内容を自身の情報で置き換えます。
wandb launch-sweep <optional config.yaml> --resume_id <sweep id> --queue <queue_name>