> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/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) を参照してください。

<div id="metric">
  ## `metric`
</div>

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

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

<div id="parameters">
  ## `parameters`
</div>

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>

<div id="method">
  ## `method`
</div>

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

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

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

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

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

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

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

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

[ランダム](#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) からプロセスを停止しない限り、実行され続けます。

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

`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` です。          |

<div id="early_terminate">
  ## `early_terminate`
</div>

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

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

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

<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>

<div id="command">
  ## `command`
</div>

`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` 環境変数の値に展開されます。                                                    |
