Skip to main content
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 の値に置き換えます:
詳細は、UI では run の状態が crashed になっていますが、マシン上ではまだ実行されていますを参照してください。 クラッシュによるデータ損失の防止 wandb.init() をコンテキストマネージャーとして使用すると、スクリプトが例外を送出したときに run が正常に終了します。run は Crashed ではなく Failed としてマークされ、バッファ内のデータが書き出されます。
run の状態の定義については、run の状態を参照してください。クラッシュ後のコンソールログについては、run のコンソール出力が取得されないのはなぜですか?を参照してください。
Runs run のクラッシュ
Last modified on September 30, 2026