> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-dependabot-npm-and-yarn-scripts-css-minify-npm.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Sweep 設定オプション

> method、metric、parameters、early termination、command を含む、すべての sweep 設定キーのリファレンス。

sweep 設定は、入れ子になったキーと値のペアで構成されます。sweep 設定内のトップレベルキーを使用して、探索対象のパラメーター ([`parameters`](#parameters) キー) や、パラメーター空間の探索手法 ([`method`](#method) キー) など、sweep 検索の特性を定義します。

以下の表は、トップレベルの sweep 設定キーとその簡単な説明を示しています。各キーの詳細については、それぞれのセクションを参照してください。

| Top-level keys | Description |
| - | - |
| `program` | (必須) 実行するトレーニングスクリプト |
| `entity` | この sweep の entity |
| `project` | この sweep のプロジェクト |
| `description` | sweep の説明テキスト |
| `name` | W\&B UI に表示される sweep の名。 |
| [`method`](#method) | (必須) 検索戦略 |
| [`metric`](#metric) | 最適化するメトリクス (一部の検索戦略および停止条件でのみ使用) |
| [`parameters`](#parameters) | (必須) 探索するパラメーターの範囲 |
| [`early_terminate`](#early_terminate) | 早期終了の条件 |
| [`command`](#command) | トレーニングスクリプトの呼び出しと引数の受け渡しに使用する command 構造 |
| `run_cap` | この sweep の runs の最大数 |

詳細は、[Define sweep configuration](/ja/models/sweeps/define-sweep-configuration) を参照してください。

<h2 id="metric">
  `metric`
</h2>

`metric` のトップレベルキーを使用して、最適化するメトリクスの名、目標、およびターゲット値を指定します。

| Key | Description |
| - | - |
| `name` | 最適化するメトリクスの名。 |
| `goal` | `minimize` または `maximize` のいずれかです (デフォルトは `minimize`) 。 |
| `target` | 最適化するメトリクスの目標値です。run が指定したターゲット値に達すると、sweep は新しい run を作成しなくなります。run を実行中のアクティブな エージェント は、その run が完了するまで待機し、その後は新しい run の作成を停止します。 |

<h2 id="parameters">
  `parameters`
</h2>

YAML ファイルまたは Python スクリプトで、トップレベルキーとして `parameters` を指定します。`parameters` キー内では、最適化したいハイパーパラメーターの名を指定します。一般的なハイパーパラメーターには、学習率、バッチサイズ、エポック数、オプティマイザーがあります。sweep 設定で定義する各ハイパーパラメーターには、1 つ以上の探索制約を指定します。

次の表は、サポートされるハイパーパラメーター探索の制約を示しています。ハイパーパラメーターやユースケースに応じて、以下のいずれかの探索制約を使用し、sweep エージェントに探索または使用する対象を指定します。分布を使う場合はどこを探索するか、`value` や `values` などを使う場合は何を使用するかを指定します。

| Search constraint | Description |
| - | - |
| `values` | このハイパーパラメーターで有効なすべての値を指定します。`grid` と互換性があります。 |
| `value` | このハイパーパラメーターで有効な単一の値を指定します。`grid` と互換性があります。 |
| `distribution` | 確率[分布](#distribution-options-for-random-and-bayesian-search)を指定します。デフォルト値については、この表の後の注記を参照してください。 |
| `probabilities` | `random` を使用する場合に、`values` の各要素が選択される確率を指定します。 |
| `min`, `max` | (`int` または `float`) 最大値と最小値です。`int` の場合は `int_uniform` 分布のハイパーパラメーター、`float` の場合は `uniform` 分布のハイパーパラメーターに使用します。 |
| `mu` | (`float`) `normal` 分布または `lognormal` 分布のハイパーパラメーターの平均パラメーターです。 |
| `sigma` | (`float`) `normal` 分布または `lognormal` 分布のハイパーパラメーターの標準偏差パラメーターです。 |
| `q` | (`float`) 量子化ハイパーパラメーターの量子化 step サイズです。 |
| `parameters` | ルートレベルのパラメーター内に、他のパラメーターをネストします。 |

<Note>
  [分布](#distribution-options-for-random-and-bayesian-search)を指定しない場合、W\&B は以下の条件に基づいて次の分布を設定します。

  * `values` を指定した場合は `categorical`
  * `max` と `min` を整数で指定した場合は `int_uniform`
  * `max` と `min` を浮動小数点数で指定した場合は `uniform`
  * `value` を指定した場合は `constant`
</Note>

<h2 id="method">
  `method`
</h2>

`method` キーを使用して、ハイパーパラメーター探索の戦略を指定します。選択できる戦略は、grid、random、ベイズ探索の 3 つです。

<h3 id="grid-search">
  グリッドサーチ
</h3>

グリッドサーチは、ハイパーパラメーター値のあらゆる組み合わせを順に試します。グリッドサーチでは、各反復で使用するハイパーパラメーター値の組み合わせを、過去の結果に基づかずに決定します。グリッドサーチは計算コストが高くなる場合があります。

連続的な探索空間を探索する場合、グリッドサーチは終了しません。

<h3 id="random-search">
  ランダムサーチ
</h3>

各反復で、分布に基づいて、事前情報を用いずにランダムなハイパーパラメーター値のセットを選択します。ランダムサーチは、コマンドライン、Python スクリプト内、または [W\&B App](/ja/models/sweeps/visualize-sweep-results) からプロセスを停止しない限り、実行され続けます。

ランダムサーチ (`method: random`) を選択する場合は、`parameters` キーで各ハイパーパラメーターの分布を指定します。

<h3 id="bayesian-search">
  ベイズ探索
</h3>

[ランダム](#random-search)検索や[グリッド](#grid-search)検索とは異なり、ベイズモデルは情報に基づいて判断を行います。ベイズ最適化では、どの値を使用するかを確率モデルで決定します。このプロセスでは、目的関数を評価する前に、サロゲート関数上で値を試すことを反復的に行います。ベイズ探索は、少数の連続パラメーターには適していますが、スケーリング性能は高くありません。ベイズ探索の詳細については、[Bayesian Optimization Primer paper](https://web.archive.org/web/20240209053347/https://static.sigopt.com/b/20a144d208ef255d3b981ce419667ec25d8412e2/static/pdf/SigOpt_Bayesian_Optimization_Primer.pdf)を参照してください。

ベイズ探索は、コマンドラインから、Pythonスクリプト内で、または [W\&B App](/ja/models/sweeps/visualize-sweep-results) からプロセスを停止しない限り、実行され続けます。

<h3 id="distribution-options-for-random-and-bayesian-search">
  ランダム探索およびベイズ探索の分布オプション
</h3>

`parameters` キーの中に、ハイパーパラメーターの名をネストします。次に、`distribution` キーを指定し、その値の分布を指定します。

次の表に、W\&B がサポートする分布を示します。

| Value for `distribution` key | Description |
| - | - |
| `constant` | 定数分布。使用する定数値 (`value`) を指定する必要があります。 |
| `categorical` | カテゴリカル分布。このハイパーパラメーターで有効な値をすべて (`values`) 指定する必要があります。 |
| `int_uniform` | 整数上の離散一様分布。`max` と `min` は整数で指定する必要があります。 |
| `uniform` | 連続一様分布。`max` と `min` は浮動小数点数で指定する必要があります。 |
| `q_uniform` | 量子化一様分布。`X` が一様分布に従うとき、`round(X / q) * q` を返します。`q` のデフォルトは `1` です。 |
| `log_uniform` | 対数一様分布。自然対数が `min` と `max` の間で一様分布するような、`exp(min)` から `exp(max)` の間の値 `X` を返します。 |
| `log_uniform_values` | 対数一様分布。`log(`X`)` が `log(min)` と `log(max)` の間で一様分布するような、`min` から `max` の間の値 `X` を返します。 |
| `q_log_uniform` | 量子化対数一様分布。`X` が `log_uniform` に従うとき、`round(X / q) * q` を返します。`q` のデフォルトは `1` です。 |
| `q_log_uniform_values` | 量子化対数一様分布。`X` が `log_uniform_values` に従うとき、`round(X / q) * q` を返します。`q` のデフォルトは `1` です。 |
| `inv_log_uniform` | 逆対数一様分布。`log(1/X)` が `min` と `max` の間で一様分布する `X` を返します。 |
| `inv_log_uniform_values` | 逆対数一様分布。`log(1/X)` が `log(1/max)` と `log(1/min)` の間で一様分布する `X` を返します。 |
| `normal` | 正規分布。戻り値は、平均 `mu` (デフォルト `0`) 、標準偏差 `sigma` (デフォルト `1`) の正規分布に従います。 |
| `q_normal` | 量子化正規分布。`X` が `normal` に従うとき、`round(X / q) * q` を返します。`q` のデフォルトは `1` です。 |
| `log_normal` | 対数正規分布。自然対数 `log(X)` が平均 `mu` (デフォルト `0`) 、標準偏差 `sigma` (デフォルト `1`) の正規分布に従う値 `X` を返します。 |
| `q_log_normal` | 量子化対数正規分布。`X` が `log_normal` に従うとき、`round(X / q) * q` を返します。`q` のデフォルトは `1` です。 |

<h2 id="early_terminate">
  `early_terminate`
</h2>

パフォーマンスの低い run を停止するには、早期終了 (`early_terminate`) を使用します。早期終了が発生すると、W\&B は新しいハイパーパラメーター値のセットで新しい run を作成する前に、現在の run を停止します。

<Note>
  `early_terminate` を使用する場合は、停止アルゴリズムを指定する必要があります。sweep の設定では、`type` キーを `early_terminate` の中にネストしてください。
</Note>

<h3 id="stopping-algorithm">
  停止アルゴリズム
</h3>

<Note>
  W\&B は [Hyperband](https://arxiv.org/abs/1603.06560) 停止アルゴリズムをサポートしています。
</Note>

[Hyperband](https://arxiv.org/abs/1603.06560) ハイパーパラメーター最適化では、プログラムを停止すべきか、それとも *brackets* と呼ばれる 1 つ以上の事前設定された反復回数まで継続すべきかを評価します。

W\&B run が bracket に到達すると、sweep はその run のメトリクスを、それまでに報告されたすべてのメトリクス値と比較します。目標が最小化の場合は run のメトリクス値が高すぎると run を終了し、目標が最大化の場合は run のメトリクス値が低すぎると run を終了します。

brackets は、ログされた反復回数に基づいて決まります。bracket の数は、最適化対象のメトリクスをログする回数に対応します。反復は steps、epochs、またはその中間に対応する場合があります。step カウンターの数値は bracket の計算には使用されません。

<Note>
  bracket スケジュールを作成するには、`min_iter` または `max_iter` のいずれかを指定します。
</Note>

| Key | Description |
| - | - |
| `min_iter` | 最初の bracket の反復回数を指定します |
| `max_iter` | 反復の最大回数を指定します。 |
| `s` | bracket の総数を指定します (`max_iter` では必須) |
| `eta` | bracket の乗数スケジュールを指定します (デフォルト: `3`) 。 |
| `strict` | run を積極的に刈り込む `strict` モードを有効にし、元の Hyperband paper により忠実に従います。デフォルトは `false` です。 |

<Note>
  Hyperband は数分ごとに、どの[runs](/ja/models/ref/python/experiments/run)を終了するかを確認します。run や反復が短い場合、終了した run の Timestamp は指定した brackets と異なることがあります。
</Note>

<h2 id="command">
  `command`
</h2>

`sweep エージェント` がトレーニングスクリプトをどのように呼び出し、どのように引数を渡すかを制御するには、トップレベルの `command` キーを使用します。`command` キー内のネストされた値を使って、形式と内容を変更できます。ファイル名などの固定コンポーネントを直接含めることもできます。

<Note>
  Unix システムでは、`/usr/bin/env` により、環境に応じて OS が適切な Python インタープリターを選択します。
</Note>

W\&B は、コマンドの可変コンポーネントに対して次のマクロをサポートします。

| コマンドマクロ | 説明 |
| - | - |
| `${env}` | Unix システムでは `/usr/bin/env` に展開され、Windows では省略されます。 |
| `${interpreter}` | `python` に展開されます。 |
| `${program}` | sweep 設定の `program` キーで指定されたトレーニングスクリプトのファイル名です。 |
| `${args}` | `--param1=value1 --param2=value2` 形式のハイパーパラメーターとその値です。 |
| `${args_no_boolean_flags}` | `--param1=value1` 形式のハイパーパラメーターとその値です。ただし、ブール値のパラメーターは、`True` の場合は `--boolean_flag_param` 形式となり、`False` の場合は省略されます。 |
| `${args_no_hyphens}` | `param1=value1 param2=value2` 形式のハイパーパラメーターとその値です。 |
| `${args_json}` | JSON としてエンコードされたハイパーパラメーターとその値です。 |
| `${args_json_file}` | JSON としてエンコードされたハイパーパラメーターとその値を含むファイルへのパスです。 |
| `${envvar}` | 環境変数を渡すためのマクロです。`${envvar:MYENVVAR}` は、`MYENVVAR` 環境変数の値に展開されます。 |
