翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
で Slurm を使用して分散トレーニングワークロードを実行する HyperPod
SageMaker HyperPod は、大規模言語モデル (LLMs) と基盤モデル () をトレーニングするワークロードに特化していますFMs。これらのワークロードでは、多くの場合、複数の並列処理技術と ML インフラストラクチャとリソースの最適化されたオペレーションを使用する必要があります。を使用すると SageMaker HyperPod、次の SageMaker 分散トレーニングフレームワークを使用できます。
-
に最適化された一括通信オペレーションを提供するSageMaker 分散データ並列処理 (SMDDP) ライブラリ AWS。
SMDDP での の使用 SageMaker HyperPod
SMDDP ライブラリは、分散データ並列トレーニングのコンピューティングパフォーマンスを向上させる集合通信ライブラリです。このSMDDPライブラリは、以下のオープンソースの分散トレーニングフレームワークで動作します。
SMDDP ライブラリは、 に以下を提供することで、キー集合通信オペレーションの通信オーバーヘッドに対処します SageMaker HyperPod。
-
ライブラリは 用に
AllGather
最適化されています AWS。AllGather
は、一般的なライブラリが提供するメモリ効率の高いデータ並列処理手法であるシャードデータ並列トレーニングで使用されるキーオペレーションです。これには、 SageMaker モデル並列処理 (SMP) ライブラリ、 DeepSpeed ゼロ冗長化オプティマイザ (ZeRO )、 PyTorch 完全シャードデータ並列処理 () が含まれますFSDP。 -
ライブラリは、 AWS ネットワークインフラストラクチャと SageMaker ML インスタンストポロジを完全に活用することで、最適化された node-to-node通信を実行します。
サンプルデータ並列トレーニングジョブを実行するには
SMDDP ライブラリを使用してデータ並列処理技術を実装する以下の分散トレーニングサンプルをご覧ください。
でSMDDPライブラリを使用する環境を設定するには SageMaker HyperPod
以下は、 で SMDDPライブラリを使用するためのトレーニング環境要件です SageMaker HyperPod。
-
PyTorch v2.0.1 以降
-
CUDA v11.8 以降
-
libstdc++
ランタイムバージョンが 3 より大きい -
Python v3.10.x 以降
-
ml.p4d.24xlarge
ライブラリでサポートされているインスタンスタイプml.p4de.24xlarge
である と SMDDP。 -
imdsv2
トレーニングホストで有効
分散トレーニングジョブの実行方法に応じて、SMDDPライブラリをインストールするには 2 つのオプションがあります。
-
SMDDP バイナリファイルを使用した直接インストール。
-
SMDDP ライブラリにプリインストールされている SageMaker Deep Learning Containers (DLCs) を使用します。
SMDDP ライブラリまたは がURLsSMDDPバイナリファイルにプリインストールされた Docker イメージは、SMDDPライブラリドキュメントの「サポートされているフレームワーク」に記載されています。
にSMDDPライブラリをインストールするには SageMaker HyperPod DLAMI
-
pip install --no-cache-dir https://smdataparallel.s3.amazonaws.com/binary/pytorch/
<pytorch-version>/cuXYZ/YYYY-MM-DD/smdistributed_dataparallel-X.Y.Z-cp310-cp310-linux_x86_64
.whl注記
Conda 環境で作業する場合は、
conda install
の代わりに を使用して をインストール PyTorchしてくださいpip
。conda install pytorch==
X.Y.Z
torchvision==X.Y.Z
torchaudio==X.Y.Z
pytorch-cuda=X.Y.Z
-c pytorch -c nvidia
Docker コンテナでSMDDPライブラリを使用するには
-
SMDDP ライブラリは SageMaker Deep Learning Containers () にプリインストールされていますDLCs。SMDDP ライブラリDLCs PyTorch で の SageMaker フレームワークのリストを確認するには、SMDDPライブラリドキュメントの「サポートされているフレームワーク」を参照してください。SMDDP ライブラリを使用するために必要な依存関係をインストールした独自の Docker コンテナを持ち込むこともできます。SMDDP ライブラリを使用するようにカスタム Docker コンテナを設定する方法の詳細については、「」も参照してください SageMaker 分散データ並列ライブラリを使用して独自の Docker コンテナを作成する。
重要
Docker コンテナでSMDDPライブラリを使用するには、ホストマシンの
/var/log
ディレクトリをコンテナ/var/log
の にマウントします。これは、コンテナの実行時に次のオプションを追加することで実行できます。docker run
<OTHER_OPTIONS>
-v /var/log:/var/log ...
SMDDP でデータ並列トレーニングジョブを実行する一般的な方法については、「」を参照してください分散データ並列処理ライブラリを使用した SageMaker分散トレーニング。
SageMaker HyperPod クラスターSMPでの の使用
SageMaker モデル並列処理 (SMP) ライブラリには、以下を含むさまざまなstate-of-the-artモデル並列処理手法 が用意されています。
-
フルシャードデータ並列処理
-
エキスパート並列処理
-
FP16/BF16 および FP8 データ型による混合精度トレーニング
-
テンソル並列処理
このSMPライブラリは PyTorch FSDP、、NVIDIAMegatron、NVIDIATransformer Engine などのオープンソースフレームワークとも互換性があります。
サンプルモデル並列トレーニングワークロードを実行するには
SageMaker サービスチームは、 のSMPライブラリでモデル並列処理を実装するサンプルトレーニングジョブを提供しますawsome-distributed-training/3.test_cases/17.SM-modelparallelv2