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

> 하나 이상의 머신에서 W&B Sweep 에이전트를 시작하거나 중지합니다.

# sweep 에이전트 시작

하나 이상의 머신에서 하나 이상의 에이전트로 sweep을 시작합니다. Sweep 에이전트는 [sweep 초기화](/ko/models/sweeps/initialize-sweeps) 시 정의한 sweep 설정을 사용해 다양한 하이퍼파라미터 조합을 탐색합니다. W\&B는 sweep 에이전트가 시도하는 각 하이퍼파라미터 조합마다 새로운 run을 생성합니다.

sweep을 일시 중지, 재개, 중지 또는 취소하는 방법은 [sweep 관리](/ko/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](/ko/models/sweeps/signal-handling-sweep-runs)를 참조하세요.
  </Tab>

  <Tab title="Python 스크립트 또는 노트북">
    sweep를 시작하려면 [`wandb.agent()`](/ko/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](/ko/models/sweeps/signal-handling-sweep-runs)를 참조하세요.

    이 방법을 사용하는 경우, 트레이닝 스크립트를 설정하는 방법은 Add W\&B to your code의 [Python 스크립트 또는 노트북 tab](/ko/models/sweeps/add-w-and-b-to-your-code#python-script-or-notebook)을 참조하세요.

    <Warning>
      **멀티프로세싱**

      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>")
      ```

      이 규칙에 따라 코드를 감싸면 스크립트가 직접 실행될 때만 코드가 실행되고, worker 프로세스에서 모듈로 임포트될 때는 실행되지 않습니다.

      멀티프로세싱에 대한 자세한 내용은 [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 agent가 시도하는 run 수 제한하기
</div>

<Warning>
  무작위 검색과 베이즈 검색은 중지할 때까지 계속 실행됩니다. 명령줄, Python 스크립트 내부 또는 [Sweeps UI](./visualize-sweep-results)에서 프로세스를 중지해야 합니다.
</Warning>

sweep agent가 시도할 run 수를 지정합니다. 다음 코드 스니펫에서는 CLI와 Jupyter Notebook 또는 Python 스크립트에서 최대 [W\&B Runs](/ko/models/ref/python/experiments/run) 수를 설정하는 방법을 보여줍니다.

<Tabs>
  <Tab title="CLI">
    먼저 [`wandb sweep`](/ko/models/ref/cli/wandb-sweep) command로 sweep를 초기화합니다. 자세한 내용은 [sweep 초기화](./initialize-sweeps)를 참조하세요.

    ```
    wandb sweep config.yaml
    ```

    다음으로 count 플래그에 정수 값을 전달하여 시도할 최대 run 수를 설정합니다.

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

  <Tab title="Python 스크립트 또는 노트북">
    먼저 sweep를 초기화합니다. 자세한 내용은 [sweep 초기화](./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 agent가 완료된 뒤 새 run을 시작하는 경우, 새 run을 시작하기 전에 `wandb.teardown()`을 호출해야 합니다.
    </Warning>
  </Tab>
</Tabs>
