View a markdown version of this page

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

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

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

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

在 a 上使用 SMDDP SageMaker HyperPod

SMDDP 库是一个集体通信库,可提高分布式数据并行训练的计算性能。SMDDP 库可与以下开源分布式训练框架配合使用:

SMDDP 库通过提供以下内容来解决关键集体通信操作的通信开销。 SageMaker HyperPod

  • 该库AllGather针对以下内容进行了优化 AWS。 AllGather是分片数据并行训练中使用的一项关键操作,分片数据并行训练是流行库提供的一种节省内存的数据并行技术。其中包括 SageMaker 人工智能模型并行度 (SMP) 库、 DeepSpeed 零冗余优化器 (ZerO) 和 PyTorch 完全分片数据并行度 (FSDP)。

  • 该库通过充分利用 AWS 网络基础设施和 SageMaker AI ML 实例拓扑来执行优化的节点到节点通信。

运行样本数据并行训练作业

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

    重要

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

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

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

在集群上使用 SMP SageMaker HyperPod

SageMaker AI 模型并行度 (SMP) 库提供了各种最先进的模型并行技术,包括:

  • 完全分片数据并行

  • 专家并行

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

  • 张量并行

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

运行模型并行训练工作负载样本

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