> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 分散トレーニングでトレーニングがハングするのはなぜですか？

この記事では、W\&B を分散トレーニング用フレームワークと併用したときに発生するトレーニングのハングを解消し、run が停止せずに開始および終了できるようにする方法を説明します。

W\&B を分散トレーニングで使用するときにトレーニングがハングする主な原因は、次の 2 つです。

* **トレーニング開始時にハングする**: W\&B のマルチプロセッシングが、分散トレーニング用フレームワークのマルチプロセッシングと干渉することがあります。
* **トレーニング終了時にハングする**: W\&B のプロセスは、いつ終了すべきかを認識できません。

<div id="fix-hangs-at-the-start">
  ## 開始時のハングを解消する
</div>

トレーニングの開始時に run が停止する場合、通常は W\&B のマルチプロセッシングと分散トレーニング フレームワークのマルチプロセッシングが競合していることが原因です。これを解決するには、W\&B Service を有効にしてください。これは W\&B SDK `0.13.0` 以降でデフォルトになっています。古いバージョンを使用している場合は、SDK をアップグレードしてください。

```bash theme={null}
pip install --upgrade wandb
```

W\&B SDK `0.12.5` から `0.12.x` までは、W\&B Service を明示的に有効化します:

```python theme={null}
def main():
    wandb.require("service")
    # 以降のスクリプト処理
```

W\&B SDK `0.12.4` 以前では、`WANDB_START_METHOD` 環境変数を設定してください:

```bash theme={null}
export WANDB_START_METHOD=thread
```

W\&B Service を有効にするか (古い SDK では start method を設定すると) 、分散トレーニング run は止まることなく開始されます。

<div id="fix-hangs-at-the-end">
  ## 終了時のハングを解消する
</div>

トレーニング完了後に run が停止する場合、W\&B は run が終了したことを検出できていません。トレーニングスクリプトの最後で `wandb.finish()` を呼び出し、run が完了したことを W\&B に通知します:

```python theme={null}
wandb.finish()
```

この呼び出しにより、すべてのデータがアップロードされ、W\&B プロセスが正常に終了します。

詳細は、[分散トレーニング](/ja/models/track/log/distributed-training/)をご覧ください。

***

<Badge stroke shape="pill" color="orange" size="md">[Experiments](/ja/support/models/tags/experiments)</Badge><Badge stroke shape="pill" color="orange" size="md">[Run のクラッシュ](/ja/support/models/tags/run-crashes)</Badge>
