PyTorch トレーニングスクリプトでSMDDPライブラリを使用する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

PyTorch トレーニングスクリプトでSMDDPライブラリを使用する

SageMaker 分散データ並列処理 (SMDDP) ライブラリ v1.4.0 以降では、PyTorch 分散パッケージ のバックエンドオプションとしてライブラリを使用できます。SMDDP AllReduce および AllGather集合オペレーションを使用するには、トレーニングスクリプトの先頭にSMDDPライブラリをインポートし、プロセスグループの初期化中に PyTorch 分散モジュールのバックエンドSMDDPとして を設定するだけです。バックエンド仕様の 1 行では、すべてのネイティブ PyTorch 分散モジュールとトレーニングスクリプト全体を変更せずに維持できます。次のコードスニペットは、SMDDPライブラリを PyTorchベースの分散トレーニングパッケージのバックエンドとして使用する方法を示しています。PyTorch 分散データ並列 (DDP)PyTorch フルシャードデータ並列処理 (FSDP)DeepSpeedMegatron-DeepSpeed

または 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ベースのランチャー (smdistributedpytorchddp) SMDDPAllGatherで使用するには SageMaker Python SMDDPを使用して で分散トレーニングジョブを起動する SDK、トレーニングスクリプトで次の環境変数を設定する必要があります。

export SMDATAPARALLEL_OPTIMIZE_SDP=true

トレーニングスクリプトの作成 PyTorch FSDPに関する一般的なガイダンスについては、ドキュメントの「完全シャードデータ並列 (FSDP) を使用したアドバンストモデルトレーニング PyTorch」を参照してください。

トレーニングスクリプトの作成 PyTorch DDPに関する一般的なガイダンスについては、 PyTorch ドキュメントの「分散データ並列の開始方法」を参照してください。

トレーニングスクリプトの調整が完了したら、 SageMaker Python SMDDPを使用して で分散トレーニングジョブを起動する SDK に進みます。