热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

epoch训练时间不同_分布式训练中数据并行远远不够,「模型并行+数据并行」才是王道...

选自arXiv作者:SaptadeepPal等机器之心编译参与:魔王、杜伟数据并行(DP)是应用最广的并行策略,对在多个设备上部署深度学习

选自arXiv

作者:Saptadeep Pal等

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

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

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

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

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

1b7249558eb01cd87bea5176c1ee29e4.png

图 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) 的公式如下所示:

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

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

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

1b1acd9492bc0b19f8ff38020174aaa7.png

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

a83f9ba984d18c374b2ec14ff78a08ef.png

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

评估

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

2e7b007b3a99bb6195bb9c01012745f5.png

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

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

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

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

446f3b1a162d63189c45e57941b3b740.png

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

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

82830ebfcf3571fdda208b18205cf88d.png

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

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

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

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

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

823c1fbc2847a12874b74bf905a32270.png

图 6:DLPLacer 工作流程图。

案例研究:Inception-V3

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

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

b0e68eb858ffda89151691fd4c8acef7.png

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

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



推荐阅读
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 图像分割技术在人工智能领域中扮演着关键角色,其中语义分割、实例分割和全景分割是三种主要的方法。本文对这三种分割技术进行了详细的对比分析,探讨了它们在不同应用场景中的优缺点和适用范围,为研究人员和从业者提供了有价值的参考。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在Conda环境中高效配置并安装PyTorch和TensorFlow GPU版的方法如下:首先,创建一个新的Conda环境以避免与基础环境发生冲突,例如使用 `conda create -n pytorch_gpu python=3.7` 命令。接着,激活该环境,确保所有依赖项都正确安装。此外,建议在安装过程中指定CUDA版本,以确保与GPU兼容性。通过这些步骤,可以确保PyTorch和TensorFlow GPU版的顺利安装和运行。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战?
    Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战? ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • 本文提供了PyTorch框架中常用的预训练模型的下载链接及详细使用指南,涵盖ResNet、Inception、DenseNet、AlexNet、VGGNet等六大分类模型。每种模型的预训练参数均经过精心调优,适用于多种计算机视觉任务。文章不仅介绍了模型的下载方式,还详细说明了如何在实际项目中高效地加载和使用这些模型,为开发者提供全面的技术支持。 ... [详细]
  • 超分辨率技术的全球研究进展与应用现状综述
    本文综述了图像超分辨率(Super-Resolution, SR)技术在全球范围内的最新研究进展及其应用现状。超分辨率技术旨在从单幅或多幅低分辨率(Low-Resolution, LR)图像中恢复出高质量的高分辨率(High-Resolution, HR)图像。该技术在遥感、医疗成像、视频处理等多个领域展现出广泛的应用前景。文章详细分析了当前主流的超分辨率算法,包括基于传统方法和深度学习的方法,并探讨了其在实际应用中的优缺点及未来发展方向。 ... [详细]
author-avatar
SufiaLi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有