> ## 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 클라우드 호스팅 서비스를 사용하는 대신 로컬에서 검색 및 중지 알고리즘을 실행합니다.

# 알고리즘 로컬 관리

하이퍼파라미터 컨트롤러는 기본적으로 클라우드 서비스 형태로 호스팅됩니다. W\&B 에이전트는 컨트롤러와 통신하여 트레이닝에 사용할 다음 파라미터 세트를 확인합니다. 또한 컨트롤러는 어떤 run을 중지할 수 있는지 판단하기 위해 조기 중지 알고리즘을 실행하는 역할도 합니다.

로컬 컨트롤러 기능을 사용하면 검색 및 중지 알고리즘을 로컬에서 실행할 수 있습니다. 로컬 컨트롤러를 사용하면 문제를 디버그하고, 클라우드 서비스에 통합할 수 있는 새로운 기능을 개발할 수 있도록 코드를 검사하고 계측할 수 있습니다.

<Warning>
  이 기능은 Sweeps 도구의 새 알고리즘을 더 빠르게 개발하고 디버깅할 수 있도록 제공됩니다. 실제 하이퍼파라미터 최적화 워크로드용은 아닙니다.
</Warning>

시작하기 전에 W\&B SDK(`wandb`)를 설치해야 합니다. 다음 코드 스니펫을 명령줄에 입력하세요:

```
pip install wandb sweeps 
```

다음 예에서는 Python 스크립트 또는 Jupyter Notebook에 이미 설정 파일과 트레이닝 루프가 정의되어 있다고 가정합니다. 설정 파일을 정의하는 방법에 대한 자세한 내용은 [sweep 설정 정의하기](/ko/models/sweeps/define-sweep-configuration/)를 참조하세요.

<div id="run-the-local-controller-from-the-command-line">
  ### 명령줄에서 로컬 컨트롤러 실행
</div>

일반적으로 W\&B가 클라우드 서비스로 호스팅하는 하이퍼파라미터 컨트롤러를 사용할 때와 비슷한 방식으로 sweep을 초기화합니다. W\&B sweep 작업에 로컬 컨트롤러를 사용하려는 경우, 이를 나타내는 컨트롤러 플래그(`controller`)를 지정하세요:

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

또는 sweep 초기화와 로컬 컨트롤러를 사용하도록 지정하는 작업을 두 step으로 나눌 수 있습니다.

step을 나누려면 먼저 sweep의 YAML 설정 파일에 다음 키-값 쌍을 추가하세요:

```yaml theme={null}
controller:
  type: local
```

다음으로, sweep을 초기화합니다:

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

`wandb sweep`는 sweep ID를 생성합니다. sweep를 초기화한 후 [`wandb controller`](/ko/models/ref/python/functions/controller)로 컨트롤러를 시작하세요:

```bash theme={null}
wandb controller {user}/{entity}/{sweep_id}
```

로컬 컨트롤러를 사용하도록 지정한 후에는 sweep을 실행하기 위해 하나 이상의 Sweep agent를 시작하세요. 평소와 비슷한 방식으로 W\&B Sweep을 시작하세요. 자세한 내용은 [Sweep agent 시작](/ko/models/sweeps/start-sweep-agents/)을 참조하세요.

```bash theme={null}
wandb sweep sweep_ID
```

<div id="run-a-local-controller-with-wb-python-sdk">
  ### W\&B Python SDK로 로컬 컨트롤러 실행
</div>

다음 코드 스니펫은 W\&B Python SDK에서 로컬 컨트롤러를 지정하고 사용하는 방법을 보여줍니다.

Python SDK에서 컨트롤러를 사용하는 가장 간단한 방법은 [`wandb.controller()`](/ko/models/ref/python/functions/controller)에 sweep ID를 전달하는 것입니다. 그런 다음 반환된 객체의 `run` 메서드를 사용해 sweep 작업을 시작합니다:

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

컨트롤러 루프를 더 세밀하게 제어하고 싶다면:

```python theme={null}
import wandb

sweep = wandb.controller(sweep_id)
while not sweep.done():
    sweep.print_status()
    sweep.step()
    time.sleep(5)
```

또는 서빙할 파라미터를 더욱 세밀하게 제어할 수도 있습니다:

```python theme={null}
import wandb

sweep = wandb.controller(sweep_id)
while not sweep.done():
    params = sweep.search()
    sweep.schedule(params)
    sweep.print_status()
```

sweep를 전부 코드로 지정하려면 다음과 같이 할 수 있습니다:

```python theme={null}
import wandb

sweep = wandb.controller()
sweep.configure_search("grid")
sweep.configure_program("train-dummy.py")
sweep.configure_controller(type="local")
sweep.configure_parameter("param1", value=3)
sweep.create()
sweep.run()
```
