ハイパーパラメータをチューニングする
Weights & Biases スイープを使って、ハイパーパラメータ探索を自動化し、可能なモデルの空間を調べます。コード数行でスイープを作成できます。スイープは、自動化されたハイパーパラメータ探索の利点を、視覚化豊富でインタラクティブな実験追跡と組み合わせます。ベイズ、グリッドサーチ、ランダムなどの人気のある探索方法から選択して、ハイパーパラメータ空間を探索できます。スイープジョブを1台以上のマシンにスケーリングおよび並列化します。
仕組み
Weights & Biases スイープには、コントローラー と 1 つ以上の エージェント の 2 つのコンポーネントがあります。コントローラは、新しいハイパーパラメータの組み合わせを選びます。通常、スイープサーバーは Weights & Biases サーバーで管理されます。
エージェントは、Weights & Biases サーバーからハイパーパラメーターを問い合わせ、それらを使用してモデルのトレーニングを実行します。トレーニングの結果は、スイープサーバーに報告されます。エージェントは、1台以上のマシンで1つ以上のプロセスを実行できます。エージェントが複数のプロセスを複数のマシンで実行できる柔軟性で、スイープを並列化およびスケーリングしやすくなります。スイープのスケーリング方法についての詳細は、エージェントの並列化を参照してください。
以下の手順で W&B スイープを作成します。
- コードに W&B を追加する: Python スクリプトに、ハイパーパラメータと出力メトリクスをログに記録するためのコードを数行追加します。詳細については、コードに W&B を追加するを参照してください。
- スイープ構成の定義: スイープ対象となる変数と範囲を定義します。検索戦略を選択します。グリッド、ランダム、ベイズ探索などがサポートされており、早期停止などの高速化技術も利用できます。詳細については、スイープ構成の定義を参照してください。
- スイープの初期化: スイープサーバーを開始します。当社では、この中央コントローラをホストし、スイープを実行するエージェント間で調整を行います。詳細については、スイープの初期化を参照してください。
- スイープを開始する: スイープ内でモデルをトレーニングしたい各マシンで、1行のコマンドを実行します。エージェントは、次に試すハイパーパラメータを中央のスイープサーバーに尋ね、実行を実行します。詳細については、スイープエージェントの開始を参照してください。
- 結果の可視化(任意): ライブダッシュボードを開き、すべての結果を1つの中央の場所に表示します。
使い始める方法
ユースケースに応じて、以下のリソースを参照して、Weights & Biases Sweepsを始めてください。
Weights & Biases Sweepsで初めてハイパーパラメータチューニングを行う場合は、Quickstartをお読みいただくことをお勧めします。クイックスタートでは、最初のW&Bスイープの設定方法を説明しています。
Weights and Biases Developer Guideで、Sweepsに関する以下のトピックを探索してください:
PyTorchフレームワークを用いたJupyterノートブックでスイープを作成する方法の例として、Organizing Hyperparameter Sweeps in PyTorch Google Colab Jupyterノートブックを試してください。
W&B Sweepsを用いたハイパーパラメータ最適化を探る厳選されたスイープ実験のリスト を探索してください。結果はW&B Reportsに保存されます。
Weights & Biases SDK リファレンスガイドをお読みください。
ステップバイステップのビデオはこちらをご覧ください:W&Bスイープを使って簡単にハイパーパラメータをチューニングする。