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

> 하나 이상의 머신에서 스윕 에이전트를 시작하거나 중지합니다.

# 스윕 에이전트 시작

이 페이지에서는 W\&B가 하이퍼파라미터 검색을 실행할 수 있도록 하나 이상의 머신에서 스윕 에이전트를 시작하는 방법을 설명합니다. 스윕 에이전트는 [스윕 초기화](/ko/models/sweeps/initialize-sweeps) 시 정의한 스윕 설정을 사용해 다양한 하이퍼파라미터 조합을 탐색합니다. W\&B는 스윕 에이전트가 실행하는 각 하이퍼파라미터 조합마다 새 run을 생성합니다.

실행 중인 스윕 에이전트를 일시 중지, 재개, 중지 또는 취소하는 방법은 [스윕 관리](/ko/models/sweeps/pause-resume-and-cancel-sweeps)를 참조하세요.

계속하기 전에 다음을 수행하세요:

* 트레이닝 스크립트를 설정하여 W\&B로 하이퍼파라미터 조합을 생성하고 추적하세요. 예시는 [코드에 W\&B 추가](/ko/models/sweeps/add-w-and-b-to-your-code#python-script-or-notebook)를 참조하세요.
* 스윕의 [설정 파일](/ko/models/sweeps/define-sweep-configuration)을 정의하세요.

다음 예시에서는 W\&B CLI 또는 Python에서 스윕 에이전트를 시작하는 방법을 보여줍니다. 스윕을 초기화할 때 W\&B가 반환하는 sweep ID가 필요합니다. 짧은 sweep ID만 단독으로 사용할 수도 있고(예: `dtzl1o7u`), entity와 프로젝트를 경로로 포함할 수도 있습니다:

```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">
    스윕을 시작하려면 `wandb agent` 명령어를 사용하세요. 스윕을 초기화할 때 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](/ko/models/sweeps/signal-handling-sweep-runs)을 참조하세요.
  </Tab>

  <Tab title="Python script or notebook">
    스윕을 시작하려면 [`wandb.agent()`](/ko/models/ref/python/functions/agent)를 사용하세요. 스윕을 초기화할 때 W\&B가 반환하는 sweep ID와 함께, 트레이닝 스크립트의 진입점으로 사용할 함수 이름을 지정하세요.

    다음 코드에서 `[SWEEP-ID]`를 sweep ID로, `[FUNCTION-NAME]`을 트레이닝 함수 이름으로 바꾸세요:

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

    W\&B는 CLI(`wandb agent --forward-signals`)를 사용할 때만 에이전트에서 트레이닝 run으로 시그널을 전달하는 기능을 지원합니다. Python의 `wandb.agent()`에서는 시그널 전달을 지원하지 않습니다. 트레이닝 함수가 자식 프로세스가 아니라 스레드에서 실행되기 때문입니다.

    이 방법을 사용하는 경우 트레이닝 스크립트를 어떻게 설정하는지에 대한 예시는 Add W\&B to your code의 [Python script or notebook tab](/ko/models/sweeps/add-w-and-b-to-your-code#python-script-or-notebook)을 참조하세요.

    <Warning>
      **Multiprocessing**

      Python 표준 라이브러리의 `multiprocessing` 또는 PyTorch의 `pytorch.multiprocessing` 패키지를 사용하는 경우, `wandb.agent()` 및 `wandb.sweep()` Call을 `if __name__ == '__main__':`로 감싸야 합니다. 예를 들면 다음과 같습니다:

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

      이 규칙으로 코드를 감싸면 Python은 스크립트를 직접 실행할 때만 해당 코드를 실행하고, 워커 프로세스가 이를 모듈로 임포트할 때는 실행하지 않습니다.

      multiprocessing에 대한 자세한 내용은 [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__':` 규칙에 대한 자세한 내용은 [Defining main functions in Python](https://realpython.com/if-name-main-python/)을 참조하세요.
    </Warning>
  </Tab>
</Tabs>

<div id="limit-the-number-of-runs-a-sweep-agent-tries">
  ## 스윕 에이전트가 시도할 runs 수 제한
</div>

기본적으로 랜덤 및 베이지안 탐색은 무기한 실행되므로, 에이전트가 시도하는 runs 수에 한도를 설정하세요. 스윕 에이전트가 시도할 runs 수를 지정해 작업 범위를 제한할 수 있습니다. 다음 코드 스니펫은 CLI 및 Jupyter notebook 또는 Python script에서 최대 [runs](/ko/models/ref/python/experiments/run) 수를 설정하는 방법을 보여줍니다.

<Warning>
  랜덤 및 베이지안 탐색은 무기한 실행됩니다. run 개수를 설정하지 않으면 명령줄, Python script 내부 또는 [Sweeps UI](/ko/models/sweeps/visualize-sweep-results)에서 프로세스를 중지해야 합니다.
</Warning>

<Tabs>
  <Tab title="CLI">
    먼저 [`wandb sweep`](/ko/models/ref/cli/wandb-sweep) 명령으로 스윕을 초기화하세요. 자세한 내용은 [Initialize sweeps](/ko/models/sweeps/initialize-sweeps)를 참조하세요.

    ```bash theme={null}
    wandb sweep config.yaml
    ```

    다음으로, 시도할 최대 runs 수를 설정하려면 count 플래그에 정수 값을 전달하세요.

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

  <Tab title="Python script or notebook">
    먼저 스윕을 초기화하세요. 자세한 내용은 [Initialize sweeps](/ko/models/sweeps/initialize-sweeps)를 참조하세요.

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

    다음으로, 스윕 작업을 시작하세요. 스윕 시작 시 생성된 sweep ID를 지정하세요. 시도할 최대 runs 수를 설정하려면 count 매개변수에 정수 값을 전달하세요.

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

    <Warning>
      같은 script 또는 notebook에서 스윕 에이전트가 종료된 뒤 새 run을 시작하려면, 새 run을 시작하기 전에 `wandb.teardown()`을 호출하세요.
    </Warning>
  </Tab>
</Tabs>
