> ## 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 の失敗など、sweep でよく発生する問題のトラブルシューティング方法を説明します。

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

sweep では run ID を設定できません。sweep が作成する run には、W\&B がランダムな一意の ID を自動的に割り当てるためです。

W\&B の run ID は、project 内で一意である必要があります。

表やグラフに表示するカスタム名を設定する場合は、W\&B の初期化時に `name` パラメーターで名前を指定します。例:

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

`wandb.init()` から `id` 引数を削除すると、sweep が一意の run ID を独自に割り当てられるようになり、アップロードエラーは解消されます。

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

このエラーメッセージが表示された場合は、プロセスベースで実行するようにコードをリファクタリングしてください。各試行を個別のプロセスで実行すると、W\&B は run ごとに GPU メモリを解放します。

コードをリファクタリングするには、次の手順を実行します。

1. コードを `train.py` という名前の Python スクリプトとして書き直します。YAML 形式の sweep 設定ファイル (この例では `config.yaml`) に、トレーニングスクリプト名 (`train.py`) を追加します。

   ```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` を使用して sweep を初期化します。

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

4. W\&B から返される sweep ID を控えておきます。Python SDK ([`wandb.agent()`](/ja/products/wandb/ref/python/functions/agent)) ではなく、CLI から [`wandb agent`](/ja/products/wandb/ref/cli/wandb-agent) を使用して sweep ジョブを開始します。次のコードスニペット内の `[SWEEP-ID]` を、前のステップで W\&B から返された sweep ID に置き換えてください。

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

トレーニングコードを CLI エージェント経由でスクリプトとして実行すると、各試行が個別のプロセスで実行され、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 ノートブックでは、sweep の最適化対象として定義したメトリクス名とまったく同じ名前を使用してください。設定ファイルの詳細については、[sweep 設定を定義する](/ja/products/wandb/sweeps/define-sweep-configuration)を参照してください。
