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

# run がクラッシュと表示されるのはなぜですか？

Weights & Biases は、`wandb.init()` を呼び出したプロセスが `wandb.finish()` を呼び出さずにハートビートの送信を停止すると、その run を **Crashed** としてマークします。これは、トレーニングプロセスが強制終了したり、予期せず終了したり、正常終了を報告する前に接続を失ったりした場合に発生します。

**よくある原因**

* **メモリ不足 (OOM) エラー**: プロセスが利用可能なメモリを超えると、OS または GPU ドライバーによって強制終了されます。`output.log` に `CUDA out of memory` または `Killed` のメッセージがないか確認してください。
* **捕捉されない例外**: 未処理の Python 例外により、プロセスが `wandb.finish()` を呼び出さずに終了します。例外は `output.log` に記録されます。
* **ジョブスケジューラーによるプリエンプション**: SLURM などのクラスタースケジューラーでは、ジョブが予告なくプリエンプトされ、強制終了されることがあります。そのため、run は正常に終了できません。
* **ネットワーク接続の喪失**: まれに、長時間のネットワーク障害によって W\&B バックエンドでハートビートの待機がタイムアウトし、プロセスがまだ実行中であっても run がクラッシュとしてマークされることがあります。
* **プロセスの手動強制終了**: `kill -9` または `SIGKILL` を使用すると、Python のシグナルハンドラが実行されず、`wandb.finish()` が呼び出されません。

**デバッグ方法**

1. プロジェクトのサイドバーで **Runs** をクリックします。
2. run の名前をクリックし、**Files** タブをクリックします。
3. 標準出力と標準エラー出力を確認するために `output.log` をダウンロードします。このファイルには通常、クラッシュの原因となったエラーが記録されています。
4. Weights & Biases レベルの診断情報 (接続の問題、アップロードエラー) を確認するために、`debug.log` と `debug-internal.log` をダウンロードします。
5. run がクラスター上で実行されていた場合は、スケジューラーのジョブログでプリエンプションや OOM の兆候も確認します。

**クラッシュした run のデータ**

クラッシュ前にログされたメトリクスは保持され、UI で確認できます。run のチャート、システムメトリクス、およびクラッシュ前に完全にアップロードされたアーティファクトには、すべてアクセスできます。一部のみアップロードされたアーティファクトは、不完全な可能性があります。

ローカルでログされたステップが UI に表示されない場合 (たとえば、run がクラッシュとしてマークされた後もプロセスが実行され続けた場合) は、`wandb sync` を使用して、ローカルの run ディレクトリからバッファ内のデータを送信してください。`[TIMESTAMP]` と `[ID]` を run の値に置き換えます：

```bash theme={"system"}
wandb sync wandb/run-[TIMESTAMP]-[ID]
```

詳細は、[UI では run の状態が crashed になっていますが、マシン上ではまだ実行されています](https://docs.coreweave.com/ja/support/models/articles/my-runs-state-is-crashed-on-the-ui-but-i)を参照してください。

**クラッシュによるデータ損失の防止**

`wandb.init()` をコンテキストマネージャーとして使用すると、スクリプトが例外を送出したときに run が正常に終了します。run は **Crashed** ではなく **Failed** としてマークされ、バッファ内のデータが書き出されます。

```python theme={"system"}
import wandb

with wandb.init(project="[YOUR-PROJECT]") as run:
    for step in range(1000):
        loss = ...  # トレーニングステップ
        run.log({"loss": loss})
```

run の状態の定義については、[run の状態](https://docs.coreweave.com/ja/products/wandb/runs/run-states.md)を参照してください。クラッシュ後のコンソールログについては、[run のコンソール出力が取得されないのはなぜですか？](https://docs.coreweave.com/ja/support/models/articles/why-is-console-output-not-captured-for-my-run)を参照してください。

***

[Runs](https://docs.coreweave.com/ja/support/models/tags/runs.md)[run のクラッシュ](https://docs.coreweave.com/ja/support/models/tags/run-crashes.md)
