> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-dbrian-docs-serverless-training-quickstart.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> 1 台以上のマシンで 1 つ以上の W&B Sweep Agent を起動または停止します。

# sweep エージェントを起動する

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

sweep の一時停止、再開、停止、キャンセルの方法については、[sweep を管理する](/ja/models/sweeps/pause-resume-and-cancel-sweeps)を参照してください。

<Note>
  続行する前に、次のことを確認してください。

  * トレーニングスクリプトを設定し、W\&B でハイパーパラメーターの組み合わせを作成してトラッキングするようにします。詳細は、[コードに W\&B を追加する](./add-w-and-b-to-your-code#training-script-with-w%26b-python-sdk)を参照してください。
  * sweep 用の[設定ファイル](./define-sweep-configuration)が定義されていること。
</Note>

以下のコードスニペットは、CLI、Jupyter Notebook、または Python スクリプト内でエージェントを起動する方法を示しています。どちらの方法でも、sweep を初期化したときに W\&B が返す sweep ID を指定します。sweep ID の形式は次のとおりです。

```bash theme={null}
entity/project/sweep_ID
```

各項目の意味は次のとおりです。

* `entity`: あなたの W\&B ユーザー名またはチーム名。
* `project`: W\&B が run の出力を保存するプロジェクト名です。プロジェクトを指定しない場合、W\&B は run を "Uncategorized" という名前のプロジェクトに保存します。
* `sweep_ID`: W\&B が生成する疑似乱数の一意の ID です。

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

    以下のコードスニペットをコピー＆ペーストし、`sweep_id` を自分の sweep ID に置き換えてください。

    ```bash theme={null}
    wandb agent sweep_id
    ```

    エージェントを中断したとき (たとえば Ctrl+C) に正常にシャットダウンするには、`wandb agent --forward-signals sweep_id` を使用します。これにより、現在の run がシグナルを受け取り、正常に終了できます。詳しくは、[Signal handling and sweep runs](/ja/models/sweeps/signal-handling-sweep-runs) を参照してください。
  </Tab>

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

    以下のコードスニペットをコピー＆ペーストし、`<sweep_id>` を自分の sweep ID に、`<function_name>` をトレーニング関数の名前に置き換えてください。

    ```python theme={null}
    wandb.agent(sweep_id="<sweep_id>", function="<function_name>")
    ```

    エージェントからトレーニング run へのシグナル転送は、CLI (`wandb agent --forward-signals`) を使用する場合にのみサポートされます。Python の `wandb.agent()` では、トレーニング関数は子プロセスではなくスレッド内で実行されるため、サポートされません。詳しくは、[Signal handling and sweep runs](/ja/models/sweeps/signal-handling-sweep-runs) を参照してください。

    この方法を使用する場合のトレーニングスクリプトの設定例については、Add W\&B to your code の [Python script or notebook tab](/ja/models/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={null}
      if __name__ == '__main__':
          wandb.agent(sweep_id="<sweep_id>", function="<function>", count="<count>")
      ```

      この規約でコードをラップすると、スクリプトが直接実行されたときにのみコードが実行され、ワーカープロセス内でモジュールとして import されたときには実行されないことが保証されます。

      マルチプロセッシングの詳細については、[Python standard library `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__':` 規約については [https://realpython.com/if-name-main-python/](https://realpython.com/if-name-main-python/) を参照してください。
    </Warning>
  </Tab>
</Tabs>

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

<Warning>
  ランダム探索とベイズ探索は停止するまで実行され続けます。コマンドライン、Python スクリプト内、または [Sweeps UI](./visualize-sweep-results) からプロセスを停止する必要があります。
</Warning>

sweep エージェント が試行する run 数を指定します。以下のコードスニペットは、CLI、Jupyter Notebook、Python スクリプトで [W\&B Runs](/ja/models/ref/python/experiments/run) の最大数を設定する方法を示しています。

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

    ```
    wandb sweep config.yaml
    ```

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

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

  <Tab title="Python script or notebook">
    まず、sweep を初期化します。詳細は [Initialize sweeps](./initialize-sweeps) を参照してください。

    ```
    sweep_id = wandb.sweep(sweep_config)
    ```

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

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

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