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

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

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

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

在 a 上使用 SMDDP SageMaker HyperPod

S MDDP 库是一个集体通信库,可提高分布式数据并行训练的计算性能。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.24xlargeml.p4de.24xlarge,它们是 SMDDP 库支持的实例类型

  • imdsv2已在训练主机上启用

根据您希望如何运行分布式训练作业,有两种方法可以安装 SMDDP 库:

  • 使用 SMDDP 二进制文件直接安装。

  • 使用 SMDDP 库中预装的 Dee SageMaker p Learning Containers (DLC)。

预装有 SMDDP 库的 Docker 镜像或 SMDDP 二进制文件的 URL 列在 SMDDP 库文档的支持框架中。

在 DLAMI 上安装 SMDDP 库 SageMaker HyperPod
  • 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 库已预先安装在 Deep Learning Contain SageMaker ers (DLC) 上。要查找 SMDDP 库的 SageMaker 框架 DLC 列表,请参阅 SMDDP 库文档中的支持的框架。 PyTorch 您也可以自带安装所需依赖项的 Docker 容器来使用 SMDDP 库。要了解有关设置自定义 Docker 容器以使用 SMDDP 库的更多信息,另请参阅。使用 SageMaker 分布式数据并行库创建自己的 Docker 容器

    重要

    要在 Docker 容器中使用 SMDDP 库,请将主机上的/var/log目录挂载到容器/var/log中。这可以通过在运行容器时添加以下选项来完成。

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

要了解如何使用 SMDDP 运行数据并行训练作业,请参阅。如何使用分布式数据并行库运行 SageMaker分布式训练作业

在集群上使用 SMP SageMaker HyperPod

SageMaker 模型并行度 (SMP) 库提供了各种state-of-the-art模型并行技术,包括:

  • 完全分片的数据并行性

  • 专家平行性

  • 使用 FP16/BF16 和 FP8 数据类型进行混合精度训练

  • 张量并行度

SMP 库还与 FS PyTorch DP、NVIDIA 威震天和 NVIDIA Transformer Engine 等开源框架兼容。

运行模型并行训练工作负载示例

SageMaker 服务团队提供样本训练作业,使用位于 SMP 库实现模型并行性。awsome-distributed-training/3.test_cases/17.SM-modelparallelv2