选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

在训练脚本中使用 SMDDP 库 PyTorch

聚焦模式
在训练脚本中使用 SMDDP 库 PyTorch - 亚马逊 SageMaker AI

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

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

从 SageMaker AI 分布式数据并行度 (SMDDP) 库 v1.4.0 开始,您可以将该库用作分布式包的后端选项。PyTorch 要使用 SMDDP AllReduceAllGather集合操作,您只需要在训练脚本的开头导入 SMDDP 库,并在进程组初始化期间将 SMDDP 设置为 PyTorch 分布式模块的后端即可。使用单行后端规范,您可以保持所有原生 PyTorch 分布式模块和整个训练脚本不变。以下代码片段展示了如何使用 SMDDP 库作为 PyTorch基于分布式训练包的后端:分布式PyTorch 数据并行 (DDP)、PyTorch 完全分片数据并行性 (FSDP) 和威震天-。DeepSpeedDeepSpeed

适用于 PyTorch DDP 或 FSDP

进程组初始化如下。

import torch.distributed as dist import smdistributed.dataparallel.torch.torch_smddp dist.init_process_group(backend="smddp")
注意

(仅适用于 PyTorch DDP 作业)smddp后端目前不支持使用 API 创建子流程组。torch.distributed.new_group()您也不能同时使用 smddp 后端和其他进程组后端,如 NCCLGloo

对于我们的 DeepSpeed 威震天-DeepSpeed

进程组初始化如下。

import deepspeed import smdistributed.dataparallel.torch.torch_smddp deepspeed.init_distributed(dist_backend="smddp")
注意

要将 SMDDP AllGather使用 Python SageMaker SDK 使用 SMDDP 启动分布式训练作业 中基于 mpirun 的启动器(smdistributedpytorchddp)配合使用,还需要在训练脚本中设置以下环境变量。

export SMDATAPARALLEL_OPTIMIZE_SDP=true

有关编写 PyTorch FSDP 训练脚本的一般指导,请参阅文档中的使用完全分片数据并行 (FSDP) 进行高级模型训练。 PyTorch

有关编写 PyTorch DDP 训练脚本的一般指导,请参阅 PyTorch 文档中的分布式并行数据入门

调整完训练脚本后,继续到 使用 Python SageMaker SDK 使用 SMDDP 启动分布式训练作业

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。