选自arXiv

作者:Saptadeep Pal等

机器之心编译参与:魔王、杜伟

数据并行(DP)是应用最广的并行策略,对在多个设备上部署深度学习模型非常有用。但该方法存在缺陷,如随着训练设备数量不断增加,通信开销不断增长,模型统计效率出现损失等。来自加州大学洛杉矶分校和英伟达的研究人员探索了混合并行化方法,即结合数据并行化和模型并行化,解决 DP 的缺陷,实现更好的加速。

在多个计算设备上部署深度学习模型是训练大规模复杂模型的一种方式,随着对训练速度和训练频率的要求越来越高,该方法的重要性不断增长。数据并行化(Data parallelism,DP)是应用最为广泛的并行策略,但随着数据并行训练设备数量的增加,设备之间的通信开销也在增长。

此外,每一个训练步中批大小规模的增加,使得模型统计效率(statistical efficiency)出现损失,即获得期望准确率所需的训练 epoch 增加。这些因素会影响整体的训练时间,而且当设备数超出一定量后,利用 DP 获得的加速无法实现很好的扩展。除 DP 以外,训练加速还可以通过模型并行化(model parallelism,MP)实现。

来自加州大学洛杉矶分校和英伟达的研究人员探索了混合并行化方法,即每一个数据并行化 worker 包含多个设备,利用模型并行化分割模型数据流图(model dataflow graph,DFG)并分配至多个设备上。

图 2:不同的训练并行化策略,2(a) 展示了数据并行化训练,2(b) 展示了模型并行化训练。

该研究发现,在规模较大的情况下,混合训练在最小化端到端训练时间方面比仅使用 DP 更加高效。研究者对 Inception-V3、GNMT 和 BigLSTM 进行了测试,发现在大规模设置下,相比仅使用 DP 策略,混合策略分别实现了至少 26.5%、8% 和 22% 的端到端训练加速。

哪种并行化策略最高效?

这项研究主要考虑的是,哪种并行化策略可以最小化深度学习模型在可用硬件上的端到端训练时间。研究者问了这么一个问题:如何改进 DP 的扩展效果,结合 MP 和 DP 能够在达到给定准确率的同时最小化端到端训练时间吗?

该研究的新颖之处在于,当设备数量(及全局批大小)增长到某个点时(此时 DP 的扩展性能急剧下降),可以将 MP 和 DP 结合起来使用,从而继续改善训练时间。通过 MP 实现的加速在该临界点是非常重要的。该研究表明,每个网络都有一个独特的规模(scale),使得 MP 获取的加速能够解决 DP 的扩展性能和统计效率下降问题。

该研究的贡献如下:

  • 当 DP 愈加低效时,可以使用混合并行化策略(即每个数据并行化 worker 在多个设备上也是模型并行化的)进一步扩展多设备训练。
  • 开发了一个分析框架,来系统性地找到设备数量(如用于训练模型的 GPU 和 TPU 数量)的交叉点,该交叉点表明在特定系统上优化模型训练时要使用的并行化策略。
  • 展示了混合并行化对于不同规模的不同深度学习网络的性能优于仅使用 DP 的策略。
  • 研究者实现了 InceptionV3、GNMT 和 BigLSTM 的双路模型并行化版本,发现相比仅使用 DP 策略,混合训练可提供至少 26.5%、8% 和 22% 的加速。
  • 提出了基于整数线性规划的工具 DLPlacer,以发现最优的 operation-to-device 布局,从而最大化 MP 加速。
  • 研究者使用 DLPlacer 为 Inception-V3 模型推导出最优的布局,从而展示了其有效性。
  • 真实实验表明,在两个 GPU 的设置中获得的 1.32 倍模型并行加速在 DLPlacer 预测加速的上下 6% 的区间内。

如何最小化端到端训练时间

深度学习模型的端到端训练时间依赖三个因素:每个训练步的平均时间 (T)、每个 epoch 的时间步数 (S) 和达到预期准确率所需的 epoch 数量 (E)。因此,总训练时间即收敛时间 (C) 的公式如下所示:

  • 其中 T 主要由计算效率决定,即给定相同的训练设置、算法和 mini-batch 大小,T 仅依赖于设备的计算能力,因此性能更好的硬件将提供更小的 T 值;
  • S 依赖于全局批大小和训练数据集中的样本数。
  • 每个 epoch 需要一次性处理数据集中的所有样本,因此每个 epoch 的时间步数 (S) 等于数据集中样本数除以全局批大小。
  • 收敛所需 epoch 数量 (E) 取决于全局批大小和其他训练超参数。

这部分量化了使用数据并行策略的训练时间、使用模型并行策略的训练时间,以及使用混合并行策略的训练时间(详情参见原论文),并得出结论:在一定条件下,混合并行策略的效果优于仅使用 DP。

如公式 6 所示,如果从 MP 中得到的加速足够大,可以克服不断上涨的通信、同步开销,以及全局批大小带来的扩展性能和统计效率损失,那么使用结合 MP 和 DP 的混合策略将有效地改善网络训练时间。

图 3 使用假设情景说明了这一概念。

图 3:该示例图展示了仅使用 DP 获得的加速和使用混合策略获得的加速。N 指模型训练所用设备总数。

评估

研究者对 Inception-V3、GNMT 和 BigLSTM 模型进行了评估。下图 4 展示了获得预期准确率所需的 epoch 数量与数据并行训练中使用 GPU 数量的关系,epoch 数量通常会随着 GPU 数量的增加(即全局批大小增大)而增长。

图 4:网络收敛所需 epoch 数量 vs 不断增加的全局批大小和 GPU 数量。研究者使用 4.2 部分介绍的技术模拟大量 GPU 所对应的大规模全局批大小。

使用模型并行化在两个 GPU 上分割每个网络可能带来每个时间步的加速。下表 1 展示了三种网络在测试系统上的 MP 加速。

使用训练所需 epoch 数和从 MP 得到的每个时间步加速,再加上对扩展效率的保守估计,就可以计算出在不同数量的 GPU 上使用混合并行化策略所获得的最小加速(相比于仅使用 DP 的并行化策略)。

值得注意的是,使用专家手动布局操作的 Inception-V3 实现了 21% 的 MP 加速。而使用研究者开发的 DLPlacer 工具后,该模型可实现 32% 的 MP 加速。

表 1:MP 分割策略和在 2 个 GPU 上实施分割策略时获得的加速。

下图 5 展示了 Inception-V3、GNMT 和 BigLSTM 模型在使用混合并行化策略和 DP 策略时的加速对比结果。从图中我们可以看出,当统计效率损失降低了 DP 策略的有效性时,混合并行化策略可以保持更高的性能。

图 5:混合并行化策略 vs DP 策略的加速对比。

如何才能最大化 MP 性能?DLPlacer!

对给定模型最大化 MP 加速可以提升混合并行化策略的可扩展性。对于一些网络,通过检查网络的数据流图(DFG)即可轻松实现最优布局。而对于另外一些网络来说,找出能够带来最大每时间步加速的最优 operation-to-device 布局并不容易。

为此,该研究开发了一种基于整数线性规划 (ILP) 的设备布局工具——DLPlacer。该工具可以通过提取模型中不同操作之间的并行化来实现资源最大化利用,同时最小化计算节点间移动数据的通信开销。

下图 6 展示了 DLPlacer 工具的工作流程:

图 6:DLPLacer 工作流程图。

案例研究:Inception-V3

下图 8 中蓝条表示 DLPlacer 估计的每时间步 MP 加速(经过正则化处理),橙条表示按照 DLPlacer 找到的最优布局在真实芯片上进行 Tensorflow 实现后获得的加速。DLPlacer 估计的加速在实际加速的上下 6% 区间范围内。

值得注意的是,在 2 个 GPU 的设置下,真实实验获得的加速(1.32 倍)与在三或四个 GPU 上获得的加速几乎一样。其原因在于该网络可进行的并行化有限,DLPlacer 在 2 个 GPU 的情况下几乎完全穷尽了并行化。

图 8:DLPlacer 估计的每时间步 MP 加速(经过归一化处理)vs 真实实验中得到的每时间步 MP 加速。

论文链接:https://arxiv.org/pdf/1907.13257.pdf

3模型大小_分布式训练中数据并行远远不够,「模型并行+数据并行」才是王道...相关推荐

  1. VLDB 2023 | 北大河图发布分布式训练神器Galvatron,一键实现大模型高效自动并行...

    ©作者 | 北京大学河图团队 单位 | 北京大学数据与智能实验室 北大河图团队提出了一套面向大模型的自动并行分布式训练系统 Galvatron,相比于现有工作在多样性.复杂性.实用性方面均具有显著优势 ...

  2. 如何理解深度学习分布式训练中的large batch size与learning rate的关系?

    问题详情: 在深度学习进行分布式训练时,常常采用同步数据并行的方式,也就是采用大的batch size进行训练,但large batch一般较于小的baseline的batch size性能更差,请问 ...

  3. R语言使用keras包实现卷积自动编码器模型(Convolutional Autoencoder)、加载keras自带的mnist数据集、训练中动态生成每个epoch后模型训练的loss曲线

    R语言使用keras包实现卷积自动编码器模型(Convolutional Autoencoder).加载keras自带的mnist数据集.训练中动态生成每个epoch后模型训练的loss曲线 目录

  4. mysql 每条记录大小_计算数据库中各个表的数据量和每行记录所占用空间

    很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tablespaceinfo ( nameinfo VARCHAR(500) , row ...

  5. Mysql查询表中每行数据大小_计算数据库中各个表的数据量和每行记录所占用空间的脚本-转载来自(博客园 桦仔)...

    本文出处: 感谢桦仔 的分享精神! 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tablespaceinfo ( nameinfo  ...

  6. 简短加密_神经网络训练中回调的简短实用指南

    简短加密 Callbacks are an important part of neural network training. These are actions that can be perfo ...

  7. word2vec模型评估_干货 | NLP中的十个预训练模型

    Word2vec, Fasttext, Glove, Elmo, Bert, Flair pre-train Word Embedding源码+数据Github网址:https://github.co ...

  8. 深度学习训练中关于数据处理方式--原始样本采集以及数据增广

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/SMF0504/article/details/78695908 好久没有写博客,一直想重新调整自己的 ...

  9. Pytorch 分布式训练中DP和DDP的原理和用法

    一.聊聊DP和DDP pytorch中的有两种分布式训练方式 一种是常用的DataParallel(DP) 另外一种是DistributedDataParallel(DDP) 两者都可以用来实现数据并 ...

最新文章

  1. mfc窗口右下角如何显示一个三角形图案_大型建筑,如何做到室内外设计元素统一?...
  2. BZOJ-2002-Bounce弹飞绵羊-分块
  3. 用python念数字_Python-数据类型之数字
  4. mr图像翻转的原因_MR的特殊检查脂肪抑制
  5. MSN-LDL论文修改20211027RBY
  6. ROS语音识别科大讯飞语音SDK
  7. Unity可编程渲染管线系列(八)全局光照(直接光照)
  8. MT6763芯片资料MT6763处理器性能介绍
  9. 第一章 空间解析几何与向量代数(1)
  10. 栅格地图矢量化的一个思路
  11. 腾讯99公益日-券券松鼠❤
  12. 一个 IT 人的自传,我在语雀开源人生
  13. Ubuntu 下旋转显示器屏幕
  14. 【移动端】手机界面的设计尺寸
  15. 电脑中毒所有的exe打不开杀毒软件及win10再带病毒防护无法打开
  16. Python基础总结(四) 字符串
  17. linux读取树莓派SD卡,树莓派系统(Linux)SD卡存储设备的命令行使用
  18. 计算机软件提取码,查看提取码并分享文件_软件资讯技巧应用-中关村在线
  19. 虚幻引擎5 学习笔记2
  20. 安卓系统最新面试题(面试题整理,含答案)

热门文章

  1. 图片质量低怎么办?这个网站很不错!
  2. ISME:中科院微生物所揭示细菌利用光能新机制!
  3. R最快且比dplyr最高效的大数据处理R包:tidyfst
  4. Lancet:支持奋战在疫情一线的中国科研技术工作者
  5. 宏基因组-微生物组文章目录索引(1803)
  6. signature=2ee20a16234208d4dd8bbd7fe87bb472,sstk-20200428
  7. R语言ggplot2可视化可视化聚类图、使用geom_encircle函数绘制多边形标定属于同一聚类簇的数据点、并自定义每个聚类簇数据点的颜色、多边形框的颜色(Cluster Plot)、主副标题题注
  8. R语言ggplot2可视化抑制(部分)图例(legend)输出实战:抑制颜色图例输出、保留数据点形状图例输出
  9. R语言在可视化图像中添加文本(Adding Text to plot)
  10. R语言glm模型预测(predict)过程及Error in eval(predvars, data, env) 错误原因