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

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

# 스윕 에이전트 시작하기

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

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

시작하기 전에 다음 사항을 준비하세요.

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

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

```bash theme={"system"}
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가 반환한 스윕 ID를 지정하세요.

    다음 명령에서 `[SWEEP-ID]`를 스윕 ID로 바꾸세요.

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

    에이전트를 중단할 때(예: `Ctrl+C`) 정상 종료(graceful shutdown)되도록 하려면 `wandb agent --forward-signals [SWEEP-ID]`를 사용하세요. 그러면 현재 run이 시그널을 받아 안전하게 종료됩니다. 자세한 내용은 [시그널 처리와 스윕 run](/ko/products/wandb/sweeps/signal-handling-sweep-runs)을 참조하세요.
  </Tab>

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

    다음 코드에서 `[SWEEP-ID]`를 스윕 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 script or notebook 탭](/ko/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이 해당 코드를 실행하며, 워커 프로세스가 스크립트를 모듈로 임포트할 때는 실행되지 않습니다.

      멀티프로세싱에 대한 자세한 내용은 [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">
  스윕 에이전트가 시도하는 run 수 제한하기
</h2>

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

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

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

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

    그런 다음 스윕 작업을 시작하세요. 스윕을 초기화할 때 생성된 스윕 ID를 지정하고, count 매개변수에 정수 값을 전달하여 시도할 최대 run 수를 설정하세요.

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

    <Warning>
      스윕 에이전트가 종료된 후 같은 스크립트나 노트북에서 새 run을 시작하려면, 먼저 `wandb.teardown()`을 호출하세요.
    </Warning>
  </Tab>
</Tabs>


## Related topics

- [Sweeps 개요](/ko/products/wandb/sweeps.md)
