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

> CommError, CUDA 메모리 부족, wandb agent 실패 등 자주 발생하는 스윕 문제를 해결하세요.

# Sweeps 문제 해결

이 페이지에서는 W\&B Sweeps를 실행할 때 발생할 수 있는 일반적인 오류 메시지를 진단하고 해결하는 방법을 안내합니다. 다음 섹션에서는 각 오류의 내용과 발생 원인, 권장 해결 방법을 설명합니다.

<h2 id="commerror-run-does-not-exist-and-error-error-uploading">
  `CommError, Run does not exist` 및 `ERROR Error uploading`
</h2>

W\&B에서 이 두 오류 메시지가 모두 반환된다면 W\&B run ID를 직접 정의했을 수 있습니다. 예를 들어 Jupyter 노트북이나 Python 스크립트 어딘가에 다음과 비슷한 코드 스니펫이 정의되어 있을 수 있습니다.

```python theme={"system"}
wandb.init(id="some-string")
```

스윕이 생성하는 run에는 W\&B가 무작위 고유 ID를 자동으로 부여하므로, 스윕에서는 run ID를 설정할 수 없습니다.

W\&B run ID는 프로젝트 내에서 고유해야 합니다.

table과 그래프에 표시할 맞춤형 이름을 설정하려면 W\&B를 초기화할 때 `name` 매개변수에 이름을 전달하세요. 예시:

```python theme={"system"}
wandb.init(name="a helpful readable run name")
```

`wandb.init()`에서 `id` 인수를 제거하면 스윕이 고유한 run ID를 직접 부여할 수 있으므로 업로드 오류가 더 이상 발생하지 않습니다.

<h2 id="cuda-out-of-memory">
  `CUDA out of memory`
</h2>

이 오류 메시지가 표시되면 프로세스 기반으로 실행되도록 코드를 리팩터링하세요. 각 trial을 별도의 프로세스에서 실행하면 W\&B가 run 사이에 GPU 메모리를 해제합니다.

코드를 리팩터링하려면 다음 단계를 따르세요.

1. 코드를 `train.py`라는 Python 스크립트로 다시 작성하세요. 그런 다음 트레이닝 스크립트 이름(`train.py`)을 YAML 스윕 설정 파일(이 예제에서는 `config.yaml`)에 추가하세요.

   ```yaml theme={"system"}
   program: train.py
   method: bayes
   metric:
     name: validation_loss
     goal: maximize
   parameters:
     learning_rate:
       min: 0.0001
       max: 0.1
     optimizer:
       values: ["adam", "sgd"]
   ```

2. `train.py` Python 스크립트에 다음 코드를 추가하세요.

   ```python theme={"system"}
   if __name__ == "__main__":
       train()
   ```

3. CLI에서 `wandb sweep`으로 스윕을 초기화하세요.

   ```bash theme={"system"}
   wandb sweep config.yaml
   ```

4. W\&B가 반환하는 스윕 ID를 기록해 두세요. Python SDK([`wandb.agent()`](/ko/products/wandb/ref/python/functions/agent)) 대신 CLI에서 [`wandb agent`](/ko/products/wandb/ref/cli/wandb-agent)로 스윕 작업을 시작하세요. 다음 코드 스니펫의 `[SWEEP-ID]`를 이전 단계에서 W\&B가 반환한 스윕 ID로 바꾸세요.

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

트레이닝 코드를 CLI 에이전트에서 스크립트로 실행하면 각 trial이 별도의 프로세스에서 실행되므로 W\&B가 run 사이에 GPU 메모리를 해제합니다.

<h2 id="anaconda-400-error">
  `anaconda 400 error`
</h2>

다음 오류는 보통 최적화 대상 메트릭을 로깅하지 않았을 때 발생합니다.

```text theme={"system"}
wandb: ERROR Error while calling W&B API: anaconda 400 error: 
{"code": 400, "message": "TypeError: bad operand type for unary -: 'NoneType'"}
```

YAML 파일 또는 중첩 딕셔너리에서 최적화할 대상으로 `metric`이라는 키를 지정합니다. 이 메트릭은 반드시 `wandb.Run.log()`로 로깅하세요. 또한 Python 스크립트나 Jupyter 노트북에서는 스윕의 최적화 대상으로 정의한 메트릭 이름과 정확히 같은 이름을 사용해야 합니다. 설정 파일에 대한 자세한 내용은 [스윕 설정 정의](/ko/products/wandb/sweeps/define-sweep-configuration)를 참조하세요.
