

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

# HyperPod で Slurm を使用して分散トレーニングワークロードを実行する
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload"></a>

SageMaker HyperPod は、大規模言語モデル (LLM) と基礎モデル (FM) のトレーニングワークロードに特化しています。これらのワークロードでは、多くの場合、ML インフラストラクチャとリソースに複数の並列処理技術と最適化されたオペレーションを使用する必要があります。SageMaker HyperPod を使用すると、以下の SageMaker AI 分散トレーニングフレームワークを使用できます。
+  AWSに最適化された集合通信演算を提供する [SageMaker 分散データ並列処理 (SMDDP) ライブラリ](data-parallel.md)
+ さまざまなモデル並列処理技術を実装する [SageMaker AI モデル並列処理 (SMP) ライブラリ](model-parallel-v2.md)

**Topics**
+ [SageMaker HyperPod で SMDDP を使用する](#sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smddp)
+ [SageMaker HyperPod クラスターでの SMP の使用](#sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smp)

## SageMaker HyperPod で SMDDP を使用する
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smddp"></a>

[SMDDP ライブラリ](data-parallel.md)は、分散データ並列トレーニングのコンピューティングパフォーマンスを高める集合通信ライブラリです。SMDDP ライブラリは、以下のオープンソース分散トレーニングフレームワークで動作します。
+ [PyTorch 分散データ並列処理 (DDP)](https://pytorch.org/docs/stable/notes/ddp.html)
+ [PyTorch Fully Sharded Data Parallelism (FSDP)](https://pytorch.org/docs/stable/fsdp.html)
+ [DeepSpeed](https://github.com/microsoft/DeepSpeed)
+ [Megatron-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed)

SMDDP ライブラリは、SageMaker HyperPod に以下を提供することにより、主要な集合通信演算の通信オーバーヘッドに対処します。
+ ライブラリは 向けに`AllGather`最適化されています AWS。 `AllGather`は、シャーディングデータ並列トレーニングで使用される主要なオペレーションであり、一般的なライブラリが提供するメモリ効率の高いデータ並列処理手法です。これには、SageMaker モデル並列処理 (SMP) ライブラリ、DeepSpeed Zero Redundancy Optimizer (ZeRO)、PyTorch Fully Sharded Data Parallelism (FSDP) があります。
+ このライブラリは、 AWS ネットワークインフラストラクチャと SageMaker AI ML インスタンストポロジを最大限に活用することで、node-to-node通信を実行します。

**サンプルデータ並列トレーニングジョブを実行するには**

SMDDP ライブラリを使用してデータ並列処理手法を実装する、以下の分散トレーニングサンプルをご覧ください。
+ [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/12.SM-dataparallel-FSDP](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/12.SM-dataparallel-FSDP)
+ [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/13.SM-dataparallel-deepspeed](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/13.SM-dataparallel-deepspeed)

**SageMaker HyperPod で SMDDP ライブラリを使用するための環境を設定するには**

SageMaker HyperPod で SMDDP ライブラリを使用するためのトレーニング環境要件を次に示します。
+ 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 AI Deep Learning Containers (DLC) を使用します。

SMDDP ライブラリにプリインストールされた Docker イメージまたは SMDDP バイナリファイルの URL のリストは、SMDDP ライブラリドキュメントの「[Supported Frameworks](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-frameworks)」に記載されています。

**SageMaker HyperPod DLAMI に SMDDP ライブラリをインストールするには**
+ `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 環境で作業している場合、`pip` の代わりに `conda install` を使用して PyTorch をインストールしてください。  

  ```
  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 AI Deep Learning Containers (DLC) にプリインストールされています。SMDDP ライブラリを使用した PyTorch 用 SageMaker フレームワーク DLC のリストについては、SMDDP ライブラリドキュメントの「[サポートされるフレームワーク](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-frameworks)」を参照してください。SMDDP ライブラリを使用するために必要な依存関係がインストールされた、独自の Docker コンテナを持ち込むこともできます。SMDDP ライブラリを使用するようカスタム Docker コンテナを設定する方法の詳細については、「[SageMaker AI 分散データ並列ライブラリを使用して独自の Docker コンテナを作成する](data-parallel-bring-your-own-container.md)」も参照してください。
**重要**  
Docker コンテナで SMDDP ライブラリを使用するには、ホストマシンの `/var/log` ディレクトリをコンテナの `/var/log` にマウントします。これは、コンテナの実行時に次のオプションを追加することにより実行できます。  

  ```
  docker run {{<OTHER_OPTIONS>}} -v /var/log:/var/log ...
  ```

SMDDP でデータ並列トレーニングジョブを実行する一般的な方法については、「[SageMaker AI 分散データ並列処理ライブラリを使用した分散トレーニング](data-parallel-modify-sdp.md)」を参照してください。

## SageMaker HyperPod クラスターでの SMP の使用
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smp"></a>

[SageMaker AI モデル並列処理 (SMP) ライブラリ](model-parallel-v2.md)には、以下を含む[さまざまな最先端のモデル並列処理技術](model-parallel-core-features-v2.md)が用意されています。
+ Fully Sharded Data Parallelism
+ エキスパート並列処理
+ FP16/BF16 および FP8 データ型による混合精度トレーニング
+ テンソル並列処理

SMP ライブラリは、PyTorch FSDP、NVIDIA Megatron、NVIDIA Transformer Engine などのオープンソースフレームワークとも互換性があります。

**サンプルモデル並列トレーニングワークロードを実行するには**

SageMaker AI サービスチームは、[https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2) の SMP ライブラリを使用してモデル並列処理を実装するサンプルトレーニングジョブを提供しています。