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

> 1 台以上のマシンで sweep エージェントを開始または停止します。

# sweep エージェントを開始する

このページでは、1 台以上のマシンで sweep エージェントを開始し、W\&B でハイパーパラメーター探索を実行する方法を説明します。sweep エージェントは、[sweep を初期化](/ja/products/wandb/sweeps/initialize-sweeps)する際に定義した sweep 設定に基づいて、さまざまなハイパーパラメーターの組み合わせを探索します。W\&B は、sweep エージェントが実行するハイパーパラメーターの組み合わせごとに新しい run を作成します。

実行中の sweep エージェントを一時停止、再開、停止、またはキャンセルする方法については、[sweep を管理する](/ja/products/wandb/sweeps/pause-resume-and-cancel-sweeps)を参照してください。

始める前に、次の準備を行ってください。

* W\&B でハイパーパラメーターの組み合わせを作成してトラッキングするよう、トレーニングスクリプトを設定します。サンプルについては、[コードに W\&B を追加する](/ja/products/wandb/sweeps/add-w-and-b-to-your-code#python-script-or-notebook)を参照してください。
* sweep 用の[設定ファイル](/ja/products/wandb/sweeps/define-sweep-configuration)を定義します。

以下のサンプルでは、W\&B CLI または Python から sweep エージェントを開始する方法を示します。sweep の初期化時に W\&B から返される sweep ID が必要です。短い sweep ID をそのまま使用する (例: `dtzl1o7u`) ことも、entity と project を含むパス形式で指定することもできます。

```bash theme={"system"}
entity/project/sweep_ID
```

各項目の説明:

* `entity`: W\&B のユーザー名またはチーム名。
* `project`: W\&B が run の出力を保存する project の名前。project を指定しない場合、W\&B は run を "Uncategorized" という名前の project に配置します。
* `sweep_ID`: W\&B が生成する疑似ランダムな一意の ID。

<Tabs>
  <Tab title="CLI">
    sweep を開始するには、`wandb agent` コマンドを使用します。sweep の初期化時に W\&B から返される sweep ID を指定してください。

    次のコマンドの `[SWEEP-ID]` を、お使いの sweep ID に置き換えてください。

    ```bash theme={"system"}
    wandb agent [SWEEP-ID]
    ```

    エージェントを中断したとき (`Ctrl+C` を押したときなど) に正常なシャットダウンを行うには、`wandb agent --forward-signals [SWEEP-ID]` を使用します。これにより、現在の run がシグナルを受け取り、クリーンにシャットダウンできます。詳細については、[シグナル処理と sweep run](/ja/products/wandb/sweeps/signal-handling-sweep-runs) を参照してください。
  </Tab>

  <Tab title="Python スクリプトまたはノートブック">
    sweep を開始するには、[`wandb.agent()`](/ja/products/wandb/ref/python/functions/agent) を使用します。sweep の初期化時に W\&B から返される sweep ID と、トレーニングスクリプトのエントリポイントとなる関数の名前を指定してください。

    次のコードの `[SWEEP-ID]` をお使いの sweep ID に、`[FUNCTION-NAME]` をトレーニング関数の名前に置き換えてください。

    ```python theme={"system"}
    wandb.agent(sweep_id="[SWEEP-ID]", function="[FUNCTION-NAME]")
    ```

    エージェントからトレーニング run へのシグナル転送がサポートされるのは、CLI (`wandb agent --forward-signals`) を使用する場合のみです。Python の `wandb.agent()` では、トレーニング関数が子プロセスではなくスレッド内で実行されるため、シグナル転送はサポートされていません。

    この方法でトレーニングスクリプトを設定する例については、「W\&B をコードに追加する」の [Python スクリプトまたはノートブックタブ](/ja/products/wandb/sweeps/add-w-and-b-to-your-code#python-script-or-notebook) を参照してください。

    <Warning>
      **マルチプロセッシング**

      Python 標準ライブラリの `multiprocessing` または PyTorch の `pytorch.multiprocessing` パッケージを使用する場合は、`wandb.agent()` と `wandb.sweep()` の呼び出しを `if __name__ == '__main__':` でラップする必要があります。例:

      ```python theme={"system"}
      if __name__ == '__main__':
          wandb.agent(sweep_id="[SWEEP-ID]", function="[FUNCTION]", count="[COUNT]")
      ```

      この規約に従ってコードをラップすると、そのコードはスクリプトを直接実行した場合にのみ実行され、ワーカープロセスがモジュールとしてインポートした場合には実行されなくなります。

      マルチプロセッシングの詳細については、[Python 標準ライブラリ `multiprocessing`](https://docs.python.org/3/library/multiprocessing.html#the-spawn-and-forkserver-start-methods) または [PyTorch `multiprocessing`](https://docs.pytorch.org/docs/stable/notes/multiprocessing.html#asynchronous-multiprocess-training-e-g-hogwild) を参照してください。`if __name__ == '__main__':` 規約の詳細については、[Defining main functions in Python](https://realpython.com/if-name-main-python/) を参照してください。
    </Warning>
  </Tab>
</Tabs>

<h2 id="limit-the-number-of-runs-a-sweep-agent-tries">
  sweep エージェントが試行する run の数を制限する
</h2>

デフォルトでは、ランダム探索とベイズ探索は無期限に実行されるため、エージェントが試行する run の数に上限を設けてください。sweep エージェントが試行する run の数を指定することで、処理量を制限できます。以下のコードスニペットは、CLI、および Jupyter ノートブックまたは Python スクリプト内で [run](/ja/products/wandb/ref/python/experiments/run) の最大数を設定する方法を示しています。

<Warning>
  ランダム探索とベイズ探索は無期限に実行されます。run の数を設定しない場合は、コマンドライン、Python スクリプト内、または [Sweeps UI](/ja/products/wandb/sweeps/visualize-sweep-results) からプロセスを停止する必要があります。
</Warning>

<Tabs>
  <Tab title="CLI">
    まず、[`wandb sweep`](/ja/products/wandb/ref/cli/wandb-sweep) コマンドで sweep を初期化します。詳細については、[Initialize sweeps](/ja/products/wandb/sweeps/initialize-sweeps) を参照してください。

    ```bash theme={"system"}
    wandb sweep config.yaml
    ```

    次に、count フラグに整数値を渡して、試行する run の最大数を設定します。

    ```bash theme={"system"}
    NUM=10
    SWEEPID="dtzl1o7u"
    wandb agent --count $NUM $SWEEPID
    ```
  </Tab>

  <Tab title="Python スクリプトまたはノートブック">
    まず、sweep を初期化します。詳細については、[Initialize sweeps](/ja/products/wandb/sweeps/initialize-sweeps) を参照してください。

    ```python theme={"system"}
    sweep_id = wandb.sweep(sweep_config)
    ```

    次に、sweep ジョブを開始します。その際、sweep の初期化時に生成された sweep ID を指定します。count パラメーターに整数値を渡して、試行する run の最大数を設定します。

    ```python theme={"system"}
    sweep_id, count = "dtzl1o7u", 10
    wandb.agent(sweep_id, count=count)
    ```

    <Warning>
      sweep エージェントの終了後、同じスクリプトまたはノートブック内で新しい run を開始する場合は、その前に `wandb.teardown()` を呼び出してください。
    </Warning>
  </Tab>
</Tabs>


## Related topics

- [Sweeps の概要](/ja/products/wandb/sweeps.md)
