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