专栏首页机器之心分布式训练中数据并行远远不够,「模型并行+数据并行」才是王道

分布式训练中数据并行远远不够,「模型并行+数据并行」才是王道

作者: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

本文分享自微信公众号 - 机器之心(almosthuman2014)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 入门 | 从零开始,了解元学习

    机器之心
  • 谷歌T5预训练模型单次运行成本超130万美元?算力和金钱才是模型训练的王道

    在本研究中,来自以色列人工智能研究公司 AI21 Labs 的研究者回顾了训练大型语言模型的成本,以及这些成本都用在了哪些方面。如果你是正在为自己的模型训练实验...

    机器之心
  • 寒武纪vMLU技术面世,首推SR-IOV虚拟化功能

    据了解,SR-IOV 功能具备更好的租户隔离、应用热迁移特性,可为云服务供应商提供安全、优质的 AI 计算资源,以充分保障用户在 AI 领域的投资。思元 270...

    机器之心
  • php-nginx超时时间过短导致的post失败

    今天遇到个奇怪的问题。机器80端口页面访问全部正常。。页面可以访问。。但是就是提交写数据请求全部失败。。

    双面人
  • 原创译文 | 五大攻略——教你玩转2018年语音营销

    导读:上一期学习了人工智能的相关介绍,今天我们来了解一下关于语音营销的相关介绍(文末更多往期译文推荐) ? 嘿,Alexa,放点音乐。 好的,谷歌,打开灯。 五...

    灯塔大数据
  • 谈谈知识的融汇贯通:以“java中的迭代器失效问题”为例

    参考文章 java迭代器失效 和 Collection与Iterator的remove()方法区别与ConcurrentModificationExceptio...

    xiaoxi666
  • Java集合从菜鸟到大神演变

    先来看一张集合概况图,这里从上到下列举了几个最经常用的集合 ? 1、集合接口 java.util.Collection 是一个集合接口。它提供了对集合对象进行基...

    Java技术栈
  • 强迫症如何干净删除 commit 记录

    我相信这不是我一个人的经历:傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去...

    小闫同学啊
  • 首富孙正义很忙:一边炮轰日本太愚蠢,一边要投中国商汤10亿美元

    一件事,在一个投资人活动中,公开炮轰日本实在太愚蠢;另一件,被曝将向中国AI公司商汤投资10亿美元。

    量子位
  • WPF小坑第十六篇之控件截图问题

    http://mpvideo.qpic.cn/0bf2qiaaeaaapqaffmhxhzpfbawdakbaaaqa.f10002.mp4?dis_k=3f0...

    WPF程序员

扫码关注云+社区

领取腾讯云代金券