更新时间:2026-07-20 GMT+08:00
分布式训练功能介绍
分布式训练
分布式训练是指在多个计算节点(如多台服务器或GPU设备)上并行执行深度学习任务,以加快模型训练速度或处理更大规模的数据。通过将训练任务分配到多个节点上,每个节点负责计算模型的一部分,然后通过通信机制将计算结果同步,最终完成整个模型的训练。这种方式可以显著提高训练效率,尤其适用于复杂模型和大规模数据集的场景。
ModelArts提供了对分布式训练的支持,能够自动配置和管理多节点间的通信与资源分配,从而实现高效的并行计算。本文将介绍多机多卡的分布式训练(DistributedDataParallel)的相关功能。
约束限制
- 如果切换了Notebook的规格,那么只能在Notebook进行单机调测,不能进行分布式调测,也不能提交远程训练作业。
- 使用昇腾卡进行预置规格训练,在分布式非8卡场景下,建议使用自协商方式建链。
- 当前仅支持PyTorch和MindSpore AI框架,如果MindSpore要进行多机分布式训练调试,则每台机器上都必须有8张卡。
- 本文档提供的调测代码中涉及到的OBS路径,请用户替换为自己的实际OBS路径。
- 本文档提供的调测代码是以PyTorch为例编写的,不同的AI框架之间,整体流程是完全相同的,只需要修改个别的参数即可。
计费影响
在ModelArts进行模型训练时,会产生计算资源和存储资源的累计值计费。计算资源为训练作业运行的费用。存储资源包括数据存储到OBS或SFS的费用。详见模型训练计费项。
DistributedDataParallel进行多机多卡训练的优缺点
- 通信更快:相比于DP,通信速度更快
- 负载相对均衡:相比于DP,GPU负载相对更均衡
- 运行速度快:因为通信时间更短,效率更高,能更快速地完成训练作业
快速开始
- 创建多机多卡的分布式训练(DistributedDataParallel):介绍多机多卡数据并行分布式训练原理和代码改造点。
- 示例:创建DDP分布式训练(PyTorch+GPU):提供了分布式训练调测具体的代码适配操作过程和代码示例。
- 示例:创建DDP分布式训练(PyTorch+NPU):针对Resnet18在cifar10数据集上的分类任务,给出了分布式训练改造(DDP)的完整代码示例,供用户学习参考。
- 基于开发环境使用SDK调测训练作业:介绍如何在ModelArts的开发环境中,使用SDK调测单机和多机分布式训练作业。
父主题: 分布式模型训练