本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Slurm 开启的情况下运行分布式训练工作负载 HyperPod
SageMaker HyperPod 专门用于训练大型语言模型 (LLMs) 和基础模型 (FMs) 的工作负载。这些工作负载通常需要使用多种并行处理技术,并针对机器学习基础架构和资源进行优化的操作。使用 SageMaker HyperPod,您可以使用以下 SageMaker 分布式训练框架:
-
SageMaker 分布式数据并行度 (SMDDP) 库,可提供经过优化的集体通信操作。 AWS
SMDDP在 a 上使用 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 及更高版本
-
CUDAv11.8 及更高版本
-
libstdc++
运行时版本大于 3 -
Python v3.10.x 及更高版本
-
ml.p4d.24xlarge
和ml.p4de.24xlarge
,它们是SMDDP库支持的实例类型 -
imdsv2
已在训练主机上启用
根据您希望如何运行分布式训练作业,有两种安装SMDDP库的选项:
-
使用SMDDP二进制文件直接安装。
-
使用SMDDP库中预装的 Dee SageMaker p Learning Containers (DLCs)。
库文档的 “支持的框架” 中列出了预先安装URLs的SMDDP库或SMDDP二进制文件中的 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 环境中工作,请确保 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库已预先安装在 Dee SageMaker p Learning Containers (DLCs) 上。要查找该库DLCs PyTorch 的 SageMaker 框架列表,请参阅SMDDPSMDDP库文档中的支持的框架。您也可以自带安装所需依赖项的 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库还与NVIDIA威震天和 Transformer E PyTorch FSDP ngine 等开源框架兼容NVIDIA。
运行模型并行训练工作负载示例
SageMaker 服务团队提供样本训练作业,实现模型并行性,SMP库位于。awsome-distributed-training/3.test_cases/17.SM-modelparallelv2