在 Slurm 开启的情况下运行分布式训练工作负载 HyperPod - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Slurm 开启的情况下运行分布式训练工作负载 HyperPod

SageMaker HyperPod 专门用于训练大型语言模型 (LLMs) 和基础模型 (FMs) 的工作负载。这些工作负载通常需要使用多种并行处理技术,并针对机器学习基础架构和资源进行优化的操作。使用 SageMaker HyperPod,您可以使用以下 SageMaker 分布式训练框架:

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.24xlargeml.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