本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
SageMaker 模型并行性库发布说明
请参阅以下发布说明,跟踪 SageMaker 模型并行性 (SMP) 库的最新更新。如果您对 SMP 库有其他问题,请联系 SMP 服务团队,电话是 sm-model-parallel-feedback@amazon.com。
SageMaker 模型并行性库 v2.8.0
日期:2025 年 4 月 1 日
SMP 库更新
错误修复
-
SMP 梯度范数裁剪现在支持激活卸载。
SMP Docker 和 Enroot 容器
SMP 库团队发布了 Docker 容器来替代 SageMaker PyTorch 框架容器。如果您使用 SageMaker Python SDK 中的 PyTorch 估算器类,并指定使用 SMP v2 的分发配置,SageMaker AI 会自动选择 SMP Docker 容器。要使用此版本的 SMP v2,请将 SageMaker Python SDK 升级到 v2.243.0 或更高版本。
通用更新
-
增加了对 PyTorch v2.5.1 的支持
-
CUDA 支持升级到 v12.4
-
NCCL 支持升级到 v2.23.4
-
SMDDP 库升级到 v2.6.0。
容器详细信息
-
适用于 PyTorch v2.5.1 和 CUDA v12.4 的 SMP Docker 容器
658645717510.dkr.ecr.<us-west-2>.amazonaws.com/smdistributed-modelparallel:2.5.1-gpu-py311-cu124 -
适用于 PyTorch v2.5.1 和 CUDA v12.4 的 SMP Enroot 容器
https://sagemaker-distributed-model-parallel.s3.<us-west-2>.amazonaws.com/enroot/2.5.1-gpu-py311-cu124.sqsh -
预装软件包
-
SMP 库 v2.8.0
-
SMDDP 库 v2.6.0
-
CUDNN v9.4.0
-
FlashAttention v2.5.8
-
TransformerEngine v1.10
-
Megatron v0.8.0
-
Hugging Face 转换器 v4.44.2
-
Hugging Face 数据集库 v2.19.0
-
EFA v1.36.0
-
NCCL v2.23.4
-
AWS-OFI-NCCL v1.13.2
-
SMP Conda 通道
下面的 S3 存储桶是由 SMP 服务团队托管的 SMP 库的公共 Conda 通道。如果您要在环境(例如 SageMaker HyperPod 集群)中安装 SMP v2 库,请使用此 Conda 通道正确安装 SMP 库。
-
https://sagemaker-distributed-model-parallel.s3.us-west-2.amazonaws.com/smp-v2/
有关 Conda 通道的更多信息,请参阅 Conda 文档
SageMaker 模型并行性库 v2.7.0
日期:2024 年 12 月 4 日
SMP 库更新
新特征
-
增加了对 SageMaker HyperPod 食谱 的支持。
SMP Docker 和 Enroot 容器
SMP 库团队发布了 Docker 和 Enroot 容器来替代 SageMaker PyTorch 框架容器。如果您使用 SageMaker Python SDK 中的 PyTorch 估算器类,并指定使用 SMP v2 的分发配置,SageMaker 会自动选择 SMP Docker 容器。要使用此版本的 SMP v2,请将 SageMaker Python SDK 升级到 v2.237.0 或更高版本。
容器详细信息
-
适用于 PyTorch v2.4.1 和 CUDA v12.1 的 SMP Docker 容器
658645717510.dkr.ecr.<us-west-2>.smdistributed-modelparallel:2.4.1-gpu-py311-cu121 -
适用于 PyTorch v2.4.1 和 CUDA v12.1 的 SMP Enroot 容器
https://sagemaker-distributed-model-parallel.s3.<us-west-2>.amazonaws.com/enroot/2.4.1-gpu-py311-cu121.sqsh -
预装软件包
-
SMP 库 v2.7.0
-
SMDDP 库 v2.5.0
-
CUDNN v9.4.0
-
FlashAttention v2.5.8
-
TransformerEngine v1.10
-
Megatron v0.8.0
-
Hugging Face 转换器 v4.44.2
-
Hugging Face 数据集库 v2.19.0
-
EFA v1.32.0
-
NCCL v2.21.5
-
SMP Conda 通道
下面的 S3 存储桶是由 SMP 服务团队托管的 SMP 库的公共 Conda 通道。如果您要在 Conda 环境(例如 SageMaker HyperPod 集群)中安装 SMP v2 库,请使用此 Conda 通道正确安装 SMP 库。
-
https://sagemaker-distributed-model-parallel.s3.us-west-2.amazonaws.com/smp-v2/
有关 Conda 通道的更多信息,请参阅 Conda 文档
SageMaker 模型并行性库 v2.6.1
日期:2024 年 10 月 31 日
SMP 库更新
错误修复
-
修复了在 SMP v2.6.0 中使用较旧的训练脚本时出现的
ImportError问题。这修复了与 SMP v2.6.0 不兼容的问题。 -
针对
torch.sagemaker.distributed.fsdp.checkpoint添加了DeprecationWarning。SMP v2.7.0 中将弃用并移除此模块。如果您当前在代码中使用torch.sagemaker.distributed.fsdp.checkpoint,则应计划在 SMP v2.7.0 发布之前更新脚本,以免将来出现问题。 -
修复了 SMP v2.6.0 中发现的向后兼容问题。此问题与 SMP v2.6.0 中弃用
USE_PG_WITH_UTIL检查点方法有关,此举破坏了与先前的训练脚本版本的向后兼容性。要解决此问题,请重新运行 PyTorch 训练作业,以获取随 SMP v2.6.1 打包的最新 SMP 容器。
SMP Docker 容器
SMP 库团队发布了 Docker 容器来替代 SageMaker PyTorch 框架容器。如果您使用 SageMaker Python SDK 中的 PyTorch 估算器类,并指定使用 SMP v2 的分发配置,SageMaker AI 会自动选择 SMP Docker 容器。
容器详细信息
-
适用于 PyTorch v2.4.1 和 CUDA v12.1 的 SMP Docker 容器
658645717510.dkr.ecr.<us-west-2>.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121 -
预装软件包
-
SMP 库 v2.6.1
-
SMDDP 库 v2.5.0
-
CUDNN v9.4.0
-
FlashAttention v2.5.8
-
TransformerEngine v1.10
-
Megatron v0.8.0
-
Hugging Face 转换器 v4.44.2
-
Hugging Face 数据集库 v2.19.0
-
EFA v1.32.0
-
NCCL v2.21.5
-
SMP Conda 通道
下面的 S3 存储桶是由 SMP 服务团队托管的 SMP 库的公共 Conda 通道。如果您要在高度自定义的计算资源环境(例如 SageMaker HyperPod 集群)中安装 SMP v2 库,请使用此 Conda 通道正确安装 SMP 库。
-
https://sagemaker-distributed-model-parallel.s3.us-west-2.amazonaws.com/smp-v2/
有关 Conda 通道的更多信息,请参阅 Conda 文档
SageMaker 模型并行性库 v2.6.0
日期:2024 年 10 月 17 日
SMP 库更新
新特征
错误修复
-
修复了当启用延迟参数时在预训练过程中无法正确初始化旋转位置嵌入 (RoPE) 的漏洞。
已知问题
-
Transformer Engine 目前不支持上下文并行性或启用滑动窗口注意的 FP8。因此,当滑动窗口配置设置为非空值时,SMP 版本的 Mistral 转换器不支持上下文并行性或 FP8 训练。
SMP Docker 容器
SMP 库团队发布了 Docker 容器来替代 SageMaker PyTorch 框架容器。如果您使用 SageMaker Python SDK 中的 PyTorch 估算器类,并指定使用 SMP v2 的分发配置,SageMaker AI 会自动选择 SMP Docker 容器。
通用更新
-
PyTorch 升级到 v2.4.1
-
Megatron 升级到 v0.8.0
-
TransformerEngine 库升级到了 v1.10
-
转换器升级到 v4.44.2
-
cuDNN 升级到 v9.4.0.58
容器详细信息
-
适用于 PyTorch v2.4.1 和 CUDA v12.1 的 SMP Docker 容器
658645717510.dkr.ecr.<us-west-2>.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121 -
预装软件包
-
SMP 库 v2.6.0
-
SMDDP 库 v2.5.0
-
CUDNN v9.4.0
-
FlashAttention v2.5.8
-
TransformerEngine v1.10
-
Megatron v0.8.0
-
Hugging Face 转换器 v4.44.2
-
Hugging Face 数据集库 v2.19.0
-
EFA v1.32.0
-
NCCL v2.21.5
-
SMP Conda 通道
下面的 S3 存储桶是由 SMP 服务团队托管的 SMP 库的公共 Conda 通道。如果您要在高度自定义的计算资源环境(例如 SageMaker HyperPod 集群)中安装 SMP v2 库,请使用此 Conda 通道正确安装 SMP 库。
-
https://sagemaker-distributed-model-parallel.s3.us-west-2.amazonaws.com/smp-v2/
有关 Conda 通道的更多信息,请参阅 Conda 文档
SageMaker 模型并行性库 v2.5.0
日期:2024 年 8 月 28 日
SMP 库更新
新特征
-
为 Mixtral 模型添加了在 P5 实例上使用 FP8 数据格式进行混合精度训练的支持。
-
支持的 Mixtral 配置为 8x7B 和 8x22B。要了解更多信息,请参阅使用变形引擎 FP8 在 P5 实例上进行混合精度训练。
-
-
增加了对以下模型配置的 上下文并行性 支持。
-
Llama-v2: 7B 和 70B
-
Llama-v3: 8B 和 70B
-
GPT-NeoX: 20B
-
-
增加了对异步保存检查点的支持。要了解更多信息,请参阅使用 SMP 的检查点。
-
支持在不使用 Amazon EBS 或文件服务器的情况下将检查点直接保存到 S3。
-
错误修复
-
解决了在加载预训练模型检查点和利用张量并行时,在 Llama 微调过程中导致初始损失异常高的问题。
备注
-
要在 FP8 混合精度的 Mixtral 中使用激活检查点,您需要分别对注意层和专家层进行检查点。有关正确设置的示例,请参阅 Amazon SageMaker AI 示例库中的训练脚本示例
。
已知问题
-
MoE 配置中的平衡负载平衡类型 (torch.sagemaker.moe.moe_config.MoEConfig) 目前与激活检查点不兼容。
-
通过上下文并行性,GPT-NeoX 在预训练和微调中都出现了性能倒退。
-
对于 P4 实例上的 GPT-NeoX,直接将权重从延迟参数初始化的转换模型加载到 Hugging Face 转换器模型会导致第一步的损失不匹配。
SMP Docker 容器
SMP 库团队发布了 Docker 容器来替代 SageMaker PyTorch 框架容器。如果您使用 SageMaker Python SDK 中的 PyTorch 估算器类,并指定使用 SMP v2 的分发配置,SageMaker AI 会自动选择 SMP Docker 容器。要使用此版本的 SMP v2,请将 SageMaker Python SDK 升级到 v2.224.0 或更高版本。
通用更新
-
FlashAttention 库升级到 v2.5.8
-
Transformer Engine 库升级到 v1.8
容器详细信息
-
适用于 PyTorch v2.3.1 和 CUDA v12.1 的 SMP Docker 容器
658645717510.dkr.ecr.<region>.amazonaws.com/smdistributed-modelparallel:2.3.1-gpu-py311-cu121有关支持区域的完整列表,请参阅 AWS 区域。
-
预装软件包
-
SMP 库 v2.5.0
-
SMDDP 库 v2.3.0
-
CUDNN v8.9.7.29
-
FlashAttention v2.5.8
-
TransformerEngine v1.8
-
Megatron v0.7.0
-
Hugging Face 转换器 v4.40.1
-
Hugging Face 数据集库 v2.19.0
-
EFA v1.32.0
-
NCCL v2.21.5
-
SMP Conda 通道
下面的 S3 存储桶是由 SMP 服务团队托管的 SMP 库的公共 Conda 通道。如果您要在高度自定义的计算资源环境(例如 SageMaker HyperPod 集群)中安装 SMP v2 库,请使用此 Conda 通道正确安装 SMP 库。
-
https://sagemaker-distributed-model-parallel.s3.us-west-2.amazonaws.com/smp-v2/
有关 Conda 通道的更多信息,请参阅 Conda 文档
SageMaker 模型并行性库 v2.4.0
日期:2024 年 6 月 20 日
SMP 库更新
错误修复
-
修复了当使用 SMP 转换器时在前向传递中未传递标签时导致不正确的分对数形状的错误。
通用更新
-
增加了对 PyTorch v2.3.1 的支持。
-
增加了对 Python v3.11 的支持。
-
增加了对 Hugging Face 转换器库 v4.40.1 的支持。
弃用
-
已停止支持 Python v3.10。
-
已停止对 v4.40.1 之前版本的 Hugging Face 转换器库的支持。
其他更改
-
包含一个用于切换保存不同等级的去重复张量的补丁。要了解更多信息,请参阅 PyTorch GitHub 代码库中的讨论主题
。
已知问题
-
在使用张量并行微调 Llama-3 70B 时,存在一个已知的问题,即损失可能会激增,然后恢复到更高的损失值。
SMP Docker 容器
SMP 库团队发布了 Docker 容器来替代 SageMaker PyTorch 框架容器。如果您使用 SageMaker Python SDK 中的 PyTorch 估算器类,并指定使用 SMP v2 的分发配置,SageMaker AI 会自动选择 SMP Docker 容器。要使用此版本的 SMP v2,请将 SageMaker Python SDK 升级到 v2.224.0 或更高版本。
通用更新
-
SMDDP 库升级到 v2.3.0。
-
NCCL 库升级到 v2.21.5。
-
EFA 软件升级到 v1.32.0。
弃用
容器详细信息
-
适用于 PyTorch v2.3.1 和 CUDA v12.1 的 SMP Docker 容器
658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.3.1-gpu-py311-cu121 -
预装软件包
-
SMP 库 v2.4.0
-
SMDDP 库 v2.3.0
-
CUDNN v8.9.7.29
-
FlashAttention v2.3.3
-
TransformerEngine v1.2.1
-
Hugging Face 转换器 v4.40.1
-
Hugging Face 数据集库 v2.19.0
-
EFA v1.32.0
-
NCCL v2.21.5
-
SMP Conda 通道
下面的 S3 存储桶是由 SMP 服务团队托管的 SMP 库的公共 Conda 通道。如果您要在高度自定义的计算资源环境(例如 SageMaker HyperPod 集群)中安装 SMP v2 库,请使用此 Conda 通道正确安装 SMP 库。
-
https://sagemaker-distributed-model-parallel.s3.us-west-2.amazonaws.com/smp-v2/
有关 Conda 通道的更多信息,请参阅 Conda 文档
SageMaker 模型并行性库 v2.3.1
日期:2024 年 5 月 9 日
错误修复
-
修复了在 torch.sagemaker.moe.moe_config.MoEConfig 中使用
moe_load_balancing=balanced进行专家并行性时的ImportError问题。 -
修复了在启用
load_state_dict_from_rank0时 torch.sagemaker.transform 调用引发KeyError的微调问题。 -
修复了加载大型专家混合 (MoE) 模型(例如 Mixtral 8x22B)进行微调时出现的内存不足 (OOM) 错误。
SMP Docker 容器
SMP 库团队发布了 Docker 容器来替代 SageMaker PyTorch 框架容器。此版本将上述错误修复整合到以下 SMP Docker 映像中。
-
适用于 PyTorch v2.2.0 和 CUDA v12.1 的 SMP Docker 容器
658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.2.0-gpu-py310-cu121
SageMaker 模型并行性库 v2.3.0
日期:2024 年 4 月 11 日
新特征
-
增加了一项新的核心功能专家并行性,以支持专家混合转换器模型。要了解更多信息,请参阅专家并行性。
SMP Docker 容器
SMP 库团队发布了 Docker 容器来替代 SageMaker PyTorch 框架容器。如果您使用 SageMaker Python SDK 中的 PyTorch 估算器类,并指定使用 SMP v2 的分发配置,SageMaker 会自动选择 SMP Docker 容器。要使用此版本的 SMP v2,请将 SageMaker Python SDK 升级到 v2.214.4 或更高版本。
-
适用于 PyTorch v2.2.0 和 CUDA v12.1 的 SMP Docker 容器
658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.2.0-gpu-py310-cu121-
此 Docker 容器中预装的软件包
-
SMDDP 库 v2.2.0
-
CUDNN v8.9.5.29
-
FlashAttention v2.3.3
-
TransformerEngine v1.2.1
-
Hugging Face 转换器 v4.37.1
-
Hugging Face 数据集库 v2.16.1
-
Megatron-core 0.5.0
-
EFA v1.30.0
-
NCCL v2.19.4
-
-
SageMaker 模型并行性库 v2.2.0
日期:2024 年 3 月 7 日
新功能
-
在集成了 Transformer Engine 的 P5 实例上,增加了对以下 Hugging Face 转换器模型的 FP8 训练的支持:
-
GPT-NeoX
-
Llama 2
-
错误修复
-
修复了在张量并行训练过程中无法保证张量在集体调用
AllGather之前连续的错误。
通用更新
-
增加了对 PyTorch v2.2.0 的支持。
-
SMDDP 库升级到 v2.2.0。
-
FlashAttention 库升级到 v2.3.3。
-
NCCL 库升级到 v2.19.4。
弃用
-
已停止支持 V1.2.0 之前的 Transformer Engine。
已知问题
-
SMP 激活分载 功能目前无法使用。改用本地 PyTorch 激活卸载。
其他更改
-
在 PyTorch GitHub 代码库中包含一个补丁,以修复 https://github.com/pytorch/pytorch/issues/117748
问题线程中讨论的性能回归问题。
SMP Docker 容器
SMP 库团队发布了 Docker 容器来替代 SageMaker PyTorch 框架容器。如果您使用 SageMaker Python SDK 中的 PyTorch 估算器类,并指定使用 SMP v2 的分发配置,SageMaker AI 会自动选择 SMP Docker 容器。要使用此版本的 SMP v2,请将 SageMaker Python SDK 升级到 v2.212.0 或更高版本。
-
适用于 PyTorch v2.2.0 和 CUDA v12.1 的 SMP Docker 容器
658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.2.0-gpu-py310-cu121-
适用于 P4d、P4de 和 P5 实例
-
此 Docker 容器中预装的软件包
-
SMDDP 库 v2.2.0
-
CUDNN v8.9.5.29
-
FlashAttention v2.3.3
-
TransformerEngine v1.2.1
-
Hugging Face 转换器 v4.37.1
-
Hugging Face 数据集库 v2.16.1
-
EFA v1.30.0
-
NCCL v2.19.4
-
-
SageMaker 模型并行性库 v2.1.0
日期:2024 年 2 月 6 日
通用更新
-
增加了对 PyTorch v2.1.2 的支持。
弃用
-
已停止对 Hugging Face 转换器 v4.31.0 的支持。
已知问题
-
发现了使用
attn_implementation=flash_attention_2和 FSDP 微调 Hugging Face Llama 2 模型会导致模型出现分歧的问题。有关参考,请参阅 Hugging Face 转换器 GitHub 存储库中的问题单。为避免分歧问题,请使用 attn_implementation=sdpa。或者,通过设置use_smp_implementation=True使用 SMP 转换器模型实现。
SMP Docker 容器
SMP 库团队发布了 Docker 容器来替代 SageMaker PyTorch 框架容器。如果您使用 SageMaker Python SDK 中的 PyTorch 估算器类,并指定使用 SMP v2 的分发配置,SageMaker 会自动选择 SMP Docker 容器。要使用此版本的 SMP v2,请将 SageMaker Python SDK 升级到 v2.207.0 或更高版本。
-
适用于 PyTorch v2.1.2 和 CUDA v12.1 的 SMP Docker 容器
658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.1.2-gpu-py310-cu121-
适用于 P4d、P4de 和 P5 实例
-
此 Docker 容器中预装的软件包
-
SMDDP 库 v2.1.0
-
CUDNN v8.9.5.29
-
FlashAttention v2.3.3
-
TransformerEngine v1.2.1
-
Hugging Face 转换器 v4.37.1
-
Hugging Face 数据集库 v2.16.1
-
EFA v1.30.0
-
-
SMP Conda 通道
下面的 S3 存储桶是由 SMP 服务团队托管的公共 Conda 通道。如果您要在高度自定义的计算资源环境(例如 SageMaker HyperPod 集群)中安装 SMP v2 库,请使用此 Conda 通道正确安装 SMP 库。
-
https://sagemaker-distributed-model-parallel.s3.us-west-2.amazonaws.com/smp-v2/
有关 Conda 通道的更多信息,请参阅 Conda 文档
SageMaker 模型并行性库 v2.0.0
日期:2023 年 12 月 19 日
新特征
发布了具有以下新增功能的 SageMaker 模型并行性 (SMP) 库 v2.0.0。
-
全新的
torch.sagemaker软件包,与 SMP v1.x 中之前的smdistributed.modelparallel.torch软件包完全不同。 -
支持 PyTorch 2.0.1。
-
支持 PyTorch FSDP。
-
通过与 Transformer Engine
库集成,实现张量并行。
重大更改
-
SMP v2 对 API 进行了全面改进,并提供了
torch.sagemaker软件包。大多数情况下,您只需使用torch.sagemaker.init()模块进行初始化,并传递模型并行配置参数即可。使用此新软件包,您可以大大简化训练脚本中的代码修改。要了解如何调整训练脚本以使用 SMP v2 的更多信息,请参阅 使用 SageMaker 模型并行性库 v2。 -
如果您已经使用 SMP v1 来训练 Hugging Face 转换器模型,并想要在 SMP v2 中重复使用这些模型,请参阅 从 SMP v1 升级到 SMP v2。
-
对于 PyTorch FSDP 训练,您应该使用 SMP v2。
已知问题
-
目前,激活检查点只适用于以下具有 FSDP 的封装策略。
-
auto_wrap_policy = functools.partial(transformer_auto_wrap_policy, ...)
-
-
在启用张量并行且分片数据并行度设置为
1的情况下运行时,您必须使用backend = nccl。这种情况下不支持smddp后端选项。 -
即使不使用张量并行,也需要 Transformer Engine
才能将 PyTorch 与 SMP 库一起使用。
其他更改
-
从本版本开始,SageMaker 模型并行性库的文档将在本《Amazon SageMaker AI 开发人员指南》中全面提供。鉴于《Amazon SageMaker AI 开发人员指南》中已提供关于 SMP v2 的完整开发人员指南,SageMaker Python SDK 文档
中针对 SMP v1.x 的附加参考内容现已弃用。如果您仍然需要 SMP v1.x 的文档,可在 (已存档)SageMaker 模型并行性库 v1.x 获取 SMP v1.x 的开发人员指南,并在 SageMaker Python SDK v2.199.0 文档 中获取 SMP Python 库 v1.x 参考。
弃用
-
已停止对 TensorFlow 的支持。
-
SMP v2 不支持管道并行性。
-
不支持 DeepSpeed 库,支持本地 PyTorch FSDP。
SMP Docker 容器
SMP 库团队发布了 Docker 容器来替代 SageMaker PyTorch 框架容器。如果您使用 SageMaker Python SDK 中的 PyTorch 估算器类,并指定使用 SMP v2 的分发配置,SageMaker AI 会自动选择 SMP Docker 容器。要使用此版本的 SMP v2,请将 SageMaker Python SDK 升级到 v2.207.0 或更高版本。
-
适用于 PyTorch v2.0.1 和 CUDA v12.1 的 SMP Docker 容器
658645717510.dkr.ecr.us-west-2.amazonaws.com/smdistributed-modelparallel:2.0.1-gpu-py310-cu121