

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

# 在 Slurm 开启的情况下运行分布式训练工作负载 HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload"></a>

SageMaker HyperPod 专门用于训练大型语言模型 (LLMs) 和基础模型 (FMs) 的工作负载。这些工作负载通常需要使用多种并行技术，并对 ML 基础设施和资源进行优化操作。使用 SageMaker HyperPod，您可以使用以下 SageMaker AI 分布式训练框架：
+ [SageMaker AI 分布式数据并行度 (SMDDP) 库](data-parallel.md)，可提供经过优化的集体通信操作。 AWS
+ 实现各种[模型并行技术的 SageMaker AI 模型并行度 (SMP) 库](model-parallel-v2.md)。

**Topics**
+ [在 a 上使用 SMDDP SageMaker HyperPod](#sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smddp)
+ [在集群上使用 SMP SageMaker HyperPod](#sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smp)

## 在 a 上使用 SMDDP SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smddp"></a>

[SMDDP 库](data-parallel.md)是一个集体通信库，可提高分布式数据并行训练的计算性能。SMDDP 库可与以下开源分布式训练框架配合使用：
+ [PyTorch并行分布式数据 (DDP)](https://pytorch.org/docs/stable/notes/ddp.html)
+ [PyTorch 完全分片数据并行度 (FSDP)](https://pytorch.org/docs/stable/fsdp.html)
+ [DeepSpeed](https://github.com/microsoft/DeepSpeed)
+ [威震天-DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed)

SMDDP 库通过提供以下内容来解决关键集体通信操作的通信开销。 SageMaker HyperPod
+ 该库`AllGather`针对以下内容进行了优化 AWS。 `AllGather`是分片数据并行训练中使用的一项关键操作，分片数据并行训练是流行库提供的一种节省内存的数据并行技术。其中包括 SageMaker 人工智能模型并行度 (SMP) 库、 DeepSpeed 零冗余优化器 (ZerO) 和 PyTorch 完全分片数据并行度 (FSDP)。
+ 该库通过充分利用 AWS 网络基础设施和 SageMaker AI ML 实例拓扑来优化 node-to-node通信。

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

探索以下使用 SMDDP 库实施数据并行技术的分布式训练样本。
+ [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/12.SM-dataparallel-FSDP](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/12.SM-dataparallel-FSDP)
+ [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/13.SM-dataparallel-deepspeed](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/13.SM-dataparallel-deepspeed)

**要设置在上使用 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 AI Deep Learning Containers (DLCs)。

预装了 SMDDP 库或 SMDDP 二进制文件的 Docker 镜像在 SMDDP 库文档的[支持框架](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-frameworks)中列出。 URLs 

**在 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 () 上。DLCs要查找 SMDDP 库 DLCs 的 SageMaker PyTorch AI 框架列表，请参阅 SMDDP 库文档中的[支持的框架](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-frameworks)。您也可以自带已安装所需依赖关系的 Docker 容器来使用 SMDDP 库。要了解有关设置自定义 Docker 容器以使用 SMDDP 库的更多信息，另请参阅 [使用 SageMaker AI 分布式数据并行库创建自己的 Docker 容器](data-parallel-bring-your-own-container.md)。
**重要**  
要在 Docker 容器中使用 SMDDP 库，请将主机中的 `/var/log` 目录挂载到容器中的 `/var/log`。可以在运行容器时添加以下选项来实现。  

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

要了解如何使用 SMDDP 运行数据并行训练作业，请参阅 [使用 SageMaker AI 分布式数据并行库进行分布式训练](data-parallel-modify-sdp.md)。

## 在集群上使用 SMP SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smp"></a>

A [SageMaker I 模型并行度 (SMP) 库](model-parallel-v2.md)提供了各种[state-of-the-art模型并行技术](model-parallel-core-features-v2.md)，包括：
+ 完全分片数据并行
+ 专家并行
+ 使用 FP16/BF16 和 FP8 数据类型进行混合精度训练
+ 张量并行

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

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

 SageMaker AI 服务团队提供样本训练作业，使用位于 SMP 库实现模型并行性。[https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2)