> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# sweep 設定オプション

> method、metric、parameters、早期終了、command を含む、すべての sweep 設定キーのリファレンスです。

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

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

| トップレベルキー | 説明 |
| - | - |
| `program` | (必須) 実行するトレーニングスクリプト |
| `entity` | この sweep の entity |
| `project` | この sweep の project |
| `description` | sweep の説明文 |
| `name` | W\&B UI に表示される sweep 名 |
| [`method`](#method) | (必須) 探索戦略 |
| [`metric`](#metric) | 最適化するメトリクス (一部の探索戦略および停止条件でのみ使用) |
| [`parameters`](#parameters) | (必須) 探索するパラメーターの範囲 |
| [`early_terminate`](#early_terminate) | 早期停止の条件 |
| [`command`](#command) | トレーニングスクリプトを呼び出して引数を渡すためのコマンド構造 |
| `run_cap` | この sweep で実行する run の最大数 |

詳細は、[sweep 設定を定義する](/ja/products/wandb/sweeps/define-sweep-configuration)を参照してください。

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

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

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

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

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

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

| 探索制約 | 説明 |
| - | - |
| `values` | このハイパーパラメーターの有効な値をすべて指定します。`grid` で利用可能です。 |
| `value` | このハイパーパラメーターの有効な値を 1 つだけ指定します。`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`) 量子化されたハイパーパラメーターの量子化ステップサイズ。 |
| `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` キーでハイパーパラメーター探索の戦略を指定します。戦略は、グリッドサーチ、ランダムサーチ、ベイズ探索の 3 種類から選択できます。

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

グリッドサーチは、ハイパーパラメーター値のすべての組み合わせを順に試行します。各反復処理で使用するハイパーパラメーター値のセットは、過去の結果を考慮せずに決定されます。グリッドサーチは計算コストが高くなる場合があります。

連続的な探索空間を探索する場合、グリッドサーチは終了せずに実行され続けます。

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

ランダムサーチでは、各反復処理で分布に基づき、過去の結果を考慮せずにハイパーパラメーター値の組み合わせをランダムに選択します。ランダムサーチは、コマンドライン、Python スクリプト内、または [W\&B アプリ](/ja/products/wandb/sweeps/visualize-sweep-results) からプロセスを停止しない限り、無期限に実行されます。

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

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

[ランダムサーチ](#random-search)や[グリッドサーチ](#grid-search)とは異なり、ベイズモデルはそれまでの結果を踏まえて判断を行います。ベイズ最適化では、確率モデルを使用して次に試す値を決定します。このプロセスでは、目的関数を評価する前に、代理関数 (サロゲート関数) 上で値を反復的にテストします。ベイズ探索は連続パラメーターの数が少ない場合に効果的ですが、スケーラビリティは高くありません。ベイズ探索の詳細については、論文「[Bayesian Optimization Primer](https://web.archive.org/web/20240209053347/https://static.sigopt.com/b/20a144d208ef255d3b981ce419667ec25d8412e2/static/pdf/SigOpt_Bayesian_Optimization_Primer.pdf)」を参照してください。

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

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

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

次の表は、W\&B がサポートする分布の一覧です。

| `distribution` キーの値 | 説明 |
| - | - |
| `constant` | 定数分布。使用する定数値 (`value`) を指定する必要があります。 |
| `categorical` | カテゴリカル分布。このハイパーパラメーターの有効な値 (`values`) をすべて指定する必要があります。 |
| `int_uniform` | 整数上の離散一様分布。`max` と `min` を整数で指定する必要があります。 |
| `uniform` | 連続一様分布。`max` と `min` を浮動小数点数で指定する必要があります。 |
| `q_uniform` | 量子化一様分布。`X` が一様分布に従うとき、`round(X / q) * q` を返します。`q` のデフォルトは `1` です。 |
| `log_uniform` | 対数一様分布。`exp(min)` から `exp(max)` の範囲の値 `X` を返します。このとき、自然対数は `min` から `max` の範囲で一様分布に従います。 |
| `log_uniform_values` | 対数一様分布。`min` から `max` の範囲の値 `X` を返します。このとき、`log(X)` は `log(min)` から `log(max)` の範囲で一様分布に従います。 |
| `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 設定で、`early_terminate` の下に `type` キーをネストしてください。
</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 のメトリクス値が高すぎる場合 (目標が最小化のとき) 、または低すぎる場合 (目標が最大化のとき) 、sweep はその run を終了します。

brackets は、ログされた反復処理数に基づいて決まります。brackets の数は、最適化対象のメトリクスをログする回数に対応します。反復処理は、step、エポック、またはその中間の単位に対応させることができます。bracket の計算に step カウンターの数値は使用されません。

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

| キー | 説明 |
| - | - |
| `min_iter` | 最初の bracket の反復処理を指定します |
| `max_iter` | 反復処理の最大数を指定します。 |
| `s` | bracket の総数を指定します (`max_iter` を使用する場合は必須) |
| `eta` | bracket の乗数スケジュールを指定します (デフォルト: `3`) 。 |
| `strict` | 元の Hyperband 論文により忠実に従い、run を積極的に枝刈りする `strict` モードを有効にします。デフォルトは `false` です。 |

<Note>
  Hyperband は、終了すべき [run](/ja/products/wandb/ref/python/experiments/run) を数分ごとに確認します。そのため、run や反復処理が短い場合、run が終了するタイムスタンプが指定した brackets とずれることがあります。
</Note>

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

`command` トップレベルキーを使用すると、sweep エージェントがトレーニングスクリプトを呼び出す方法と、スクリプトに引数を渡す方法を制御できます。形式と内容は、`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` の値に展開されます。 |


## Related topics

- [Kubernetes Operator を使用して W&B をデプロイする](/ja/products/wandb/platform/hosting/self-managed/operator.md)
