本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Slurm on 執行分散式訓練工作負載 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程式庫的選項:
-
使用SMDDP二進位檔案直接安裝。
-
使用與SMDDP程式庫預先安裝的 SageMaker 深度學習容器 (DLCs)。
與SMDDP程式庫或 預先安裝URLs到二進位檔案的 Docker SMDDP 映像會列在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 環境中工作,請確定您使用 PyTorch
conda install
而非 安裝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 深度學習容器 () 上DLCs。若要尋找DLCs PyTorch 具有 SMDDP 程式庫的 SageMaker 架構清單,請參閱程式SMDDP庫文件中支援的架構。您也可以攜帶自己的 Docker 容器,並安裝必要的相依性來使用SMDDP程式庫。若要進一步了解如何設定自訂 Docker 容器以使用SMDDP程式庫,請參閱 。 使用 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 和 NVIDIA Transformer Engine。
執行範例模型平行訓練工作負載
SageMaker 服務團隊提供範例訓練任務,透過 的SMP程式庫實作模型平行處理awsome-distributed-training/3.test_cases/17.SM-modelparallelv2