来源

ICPP2018 best paper

关键词

分布式机器学习,神经网络加速

摘要

文章对大规模计算机的DNN加速能力进行了研究。通过使用LARS算法提供的Large batch来充分利用海量的计算资源,该方法在ImageNet-1k数据集上训练出的AlexNet和ResNet-50这两个网络达到了SOTA的精读。和Facebook以往提出的Baseline相比,该方法在batch size超过16k上有着更高的精度。使用2,048 Intel Xeon Platinum 8160处理器将100 epoch的AlexNext的训练时间从几小时下降到了11分钟,使用2,048 Intel Xeon Phi 7250处理器将90 epoch的训练时间从几小时下降到了20分钟。

结论

大意同摘要,文中讨论了大规模计算机来加速的优点与困难。


引言

问题1:对于深度学习应用,更大的数据集和更复杂的模型带来了准确率的显著提高,随之而来的是更长的训练时间。

思路1:如果把神经网络的训练使用超级计算机来实现,短时间完成。

同步SGD算法在目前取得了最好的效果,将batch size提高可以更好的利用机器。每个处理器处理更多的样本。增加处理器与batch size 来减少训练时间,但是large batch会带来测试准确率的下降。使用warm up和linear scaling rule 方法来扩大batch size 并减少训练时间。使用Layer-wise Adaptive Rate Scaling (LARS)可以扩大到32k。

本文的出发点:使用LARS算法可以在ImageNet-1k上面将DNN的batch size扩大到多少?

本文贡献:

  • 使用LARS,扩展到上千个CPU上训练DNN网络。
  • 检验了LARS在AlexNet和ResNet-50上的通用性。
  • LARS在32k的batch size上展现了更好的鲁棒性
  • 工作已经开源

其他相关工作:数据并行的SGD和模型并行的两种分布式并行DNN训练方法


方法

关注数据平行的随机梯度下降方法SGD。因此通信开销与模型的复杂度(参数的数量)成比例。

大批量large batch 不改变总的计算量,但是会减少通信的开销。

模型选择了AlexNet and ResNet-50作为代表,因为二者有不同scaling ratio,ResNet-50更高的scaling ratio因此比AlexNet更容易扩大batch size

目标:在测试准确率不降低的前提下来增大batch size

保持准确率的现有的方法:

  • Linear Scaling:学习率同batch size一样线性增长
  • Warmup scheme:在前几代中从小学习率逐渐增长到大学习率

本文使用的方法LARS+warmup算法:不同层需要使用不同的学习率,标准的SGD是所有层都一样的。调整的方式就是LARS:

$l$是scaling 因子,$\gamma$是可调参数。

LARS方法流程:

结果

使用LARS方法与warmup在AlexNet上的测试精度

ResNet50 在ImageNet上面才用不同16k和32kbatch size 的结果。

不同batch size 的精度比较:

使用large batch可以减少训练时间与迭代次数:

讨论

Large batch 的优点:

  • 缩短训练时间。总得计算时间未变,但是通信时间会减少。
  • 保持机器的高使用率

将DNN扩展到多机的主要开销:多机之间的通信,Resnet50的scaling ratio是AlexNet的12.5倍,AlexNet要简单一些。

Large batch的挑战

  • 简单使用同步SGD和Large batch会使得测试准确率下降。

    矫正准确率降低的方法

    • Linear Scaling:学习率同batch size一样线性增长
    • Warmup scheme:在前几代中从小学习率逐渐增长到大学习率

思考

  1. 可否验证LARS方法在其他数据集与其他网络上的性能?从而得到更全面的结果