翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トレーニングスクリプトでは SMDDP ライブラリを使用してください。 PyTorch
SageMaker 分散データ並列処理 (SMDDP) ライブラリ v1.4.0 以降では、このライブラリを配布パッケージのバックエンドオプションとして使用できます。PyTorch AllReduce
AllGather
と一括操作を使用するには、トレーニングスクリプトの開始時に SMDDP ライブラリをインポートし、プロセスグループの初期化時に SMDDP を分散モジュールのバックエンドとして設定するだけで済みます。 PyTorch 1 行のバックエンド仕様で、 PyTorch すべてのネイティブ分散モジュールとトレーニングスクリプト全体を変更せずに保持できます。次のコードスニペットは、SMDDP PyTorch ライブラリをベースとする分散型トレーニングパッケージのバックエンドとして使用する方法を示しています:PyTorch 分散データ並列 (DDP)、PyTorch 完全分割データ並列処理 (FSDP)
DDP または FSDP の場合 PyTorch
プロセスグループを以下のように初期化します。
import torch.distributed as dist import smdistributed.dataparallel.torch.torch_smddp dist.init_process_group(backend="smddp")
注記
( PyTorch DDP ジョブのみ) 現在、smddp
バックエンドは API によるサブプロセスグループの作成をサポートしていません。torch.distributed.new_group()
また、smddp
バックエンドをやなどの他のプロセスグループバックエンドと同時に使用することもできません。NCCL
Gloo
DeepSpeed またはメガトロン-DeepSpeed
プロセスグループを以下のように初期化します。
import deepspeed import smdistributed.dataparallel.torch.torch_smddp deepspeed.init_distributed(dist_backend="smddp")
注記
mpirun
ベースランチャー (smdistributed
およびpytorchddp
) AllGather
で SMDDP を使用するにはステップ 2: SageMaker Python SDK を使用して分散型トレーニングジョブを起動する、トレーニングスクリプトに次の環境変数を設定する必要もあります。
export SMDATAPARALLEL_OPTIMIZE_SDP=true
PyTorch FSDP トレーニングスクリプトの作成に関する一般的なガイダンスについては、ドキュメントの「完全シャーディングデータ並列処理 (FSDP) による高度なモデルトレーニング
PyTorch DDP トレーニングスクリプトの作成に関する一般的なガイダンスについては、 PyTorch ドキュメントの「分散データparallel 入門
トレーニングスクリプトの調整が完了したら、ステップ 2: SageMaker Python SDK を使用して分散型トレーニングジョブを起動する に進みます。