トレーニングスクリプトでは SMDDP ライブラリを使用してください。 PyTorch - Amazon SageMaker

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

トレーニングスクリプトでは SMDDP ライブラリを使用してください。 PyTorch

SageMaker 分散データ並列処理 (SMDDP) ライブラリ v1.4.0 以降では、このライブラリを配布パッケージのバックエンドオプションとして使用できます。PyTorch SMDDP AllReduce AllGather と一括操作を使用するには、トレーニングスクリプトの開始時に SMDDP ライブラリをインポートし、プロセスグループの初期化時に SMDDP を分散モジュールのバックエンドとして設定するだけで済みます。 PyTorch 1 行のバックエンド仕様で、 PyTorch すべてのネイティブ分散モジュールとトレーニングスクリプト全体を変更せずに保持できます。次のコードスニペットは、SMDDP PyTorch ライブラリをベースとする分散型トレーニングパッケージのバックエンドとして使用する方法を示しています:PyTorch 分散データ並列 (DDP)、PyTorch 完全分割データ並列処理 (FSDP)、および Megatron-。DeepSpeedDeepSpeed

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

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

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