更新时间:2024-12-10 GMT+08:00
分布式训练功能介绍
ModelArts提供了如下能力:
- 丰富的官方预置镜像,满足用户的需求。
- 支持基于预置镜像自定义制作专属开发环境,并保存使用。
- 丰富的教程,帮助用户快速适配分布式训练,使用分布式训练极大减少训练时间。
- 分布式训练调测的能力,可在PyCharm/VSCode/JupyterLab等开发工具中调试分布式训练。
约束限制
- 总览页面打开的CodeLab不支持此项功能,但是如果用户在AI Hub中打开了可用的案例,会自动跳转到CodeLab中,此时是可以使用这项功能的。
- 如果切换了Notebook的规格,那么只能在Notebook进行单机调测,不能进行分布式调测,也不能提交远程训练作业。
- 当前仅支持PyTorch和MindSpore AI框架,如果MindSpore要进行多机分布式训练调试,则每台机器上都必须有8张卡。
- 本文档提供的调测代码中涉及到的OBS路径,请用户替换为自己的实际OBS路径。
- 本文档提供的调测代码是以PyTorch为例编写的,不同的AI框架之间,整体流程是完全相同的,只需要修改个别的参数即可。
DataParallel进行单机多卡训练的优缺点
- 代码简单:仅需修改一行代码。
- 通信瓶颈 :负责reducer的GPU更新模型参数后分发到不同的GPU,因此有较大的通信开销。
- GPU负载不均衡:负责reducer的GPU需要负责汇总输出、计算损失和更新权重,因此显存和使用率相比其他GPU都会更高。
DistributedDataParallel进行多机多卡训练的优缺点
- 通信更快:相比于DP,通信速度更快
- 负载相对均衡:相比于DP,GPU负载相对更均衡
- 运行速度快:因为通信时间更短,效率更高,能更快速地完成训练作业。
相关章节
- 创建单机多卡的分布式训练(DataParallel):介绍单机多卡数据并行分布式训练原理和代码改造点。
- 创建多机多卡的分布式训练(DistributedDataParallel):介绍多机多卡数据并行分布式训练原理和代码改造点。
- 示例:创建DDP分布式训练(PyTorch+GPU):提供了分布式训练调测具体的代码适配操作过程和代码示例。
- 示例:创建DDP分布式训练(PyTorch+NPU):针对Resnet18在cifar10数据集上的分类任务,给出了分布式训练改造(DDP)的完整代码示例,供用户学习参考。
- 基于开发环境使用SDK调测训练作业:介绍如何在ModelArts的开发环境中,使用SDK调测单机和多机分布式训练作业。
父主题: 分布式模型训练