Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

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

理论数据并行模型并行加州大学洛杉矶分校英伟达
4
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

线性规划技术

在数学中,线性规划(Linear Programming,简称LP)特指目标函数和约束条件皆为线性的最优化问题。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

推荐文章
暂无评论
暂无评论~