で Slurm を使用して分散トレーニングワークロードを実行する HyperPod - Amazon SageMaker

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

で Slurm を使用して分散トレーニングワークロードを実行する HyperPod

SageMaker HyperPod は、大規模言語モデル (LLMs) と基盤モデル () をトレーニングするワークロードに特化していますFMs。これらのワークロードでは、多くの場合、複数の並列処理技術と ML インフラストラクチャとリソースの最適化されたオペレーションを使用する必要があります。を使用すると SageMaker HyperPod、次の SageMaker 分散トレーニングフレームワークを使用できます。

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