2021-03-13 深度梯度压缩DGC

深度梯度压缩:降低分布式训练的通信带宽

文章地址:https://arxiv.org/pdf/1712.01887.pdf

本文针对移动设备分布式训练

AB:大规模分布式训练需要使用通信带宽,带宽限制了多节点训练的可伸缩性,并且需要昂贵的高带宽网络基础结构,在移动设备的分布式训练中,这会导致更高的延迟,以及间歇性的不良连接。

我们发现分布式SGD中99.9%的梯度交换是多余的,并提出了深度梯度压缩(DGC)以大大减少通信带宽。

DGC采用四种方法:动量校正,局部梯度修剪,动量因子掩蔽和热身训练。

在这些情况下,深度渐变压缩可实现从270x到600x的梯度压缩比,而不会降低精度,将ResNet-50的梯度大小从97MB减小到0.35MB,而DeepSpeech的梯度大小从488MB减小到0.74MB。这有利于移动设备的分布式训练。

 

IN:

在训练中,通过增加节点的数量并利用数据并行性可以显著减少在相同大小训练集上进行前向后的总计算时间,但是!梯度交换的成本很高。网络带宽成为了扩展分布式训练的重要瓶颈。

目前移动设备进行分布式训练所面临的问题是什么?遭受的网络带宽甚至更低,网络连接间歇性以及移动数据平台的价格昂贵。

DGC通过压缩梯度来解决通信问题。为确保不损失准确性,DGC在梯度稀疏化的基础上采用了动量校正和局部梯度修剪来维持模型性能。 DGC还使用动量因子掩蔽和预热训练来克服因交流减少而引起的陈旧性问题。

深度梯度压缩可以减少通信时间,提高可伸缩性,并加快分布式训练的速度。(图1)

实验表明,梯度可以压缩到600倍而不会损失精度,这比以前的工作要高一个数量级。

 

RW:

针对减少通信数据大小的梯度量化和稀疏化进行了广泛的研究。

梯度量化将梯度量化为低精度值可以减少通信带宽。比如之前提出了1位SGD、QSGD等方法,这都是将梯度量化为低精度的方法。

阈值量化仅发送大于预定义恒定阈值的梯度。但是,在实践中很难选择该阈值。

与以前的工作相比,DGC将整个模型的梯度压缩率提高到了600倍(所有层的压缩率都相同)。 DGC不需要额外的层规范化,因此不需要更改模型结构。最重要的是,深度渐变压缩不会损失准确性。

 

DGC:

梯度稀疏GRADIENT SPARSIFICATION仅通过仅通过发送重要的梯度来减少通信带宽(稀疏更新)。具体做法是仅传输大于阈值的梯度。为了避免丢失信息,我们在本地累积了其余的梯度。最终,这些梯度变得足够大,可以传输。因此,我们立即发送了较大的梯度,但最终会随时间发送所有梯度。

局部梯度累积等效于随时间增加批次大小疑问

转载文章详解:

https://blog.csdn.net/Mys_GoldenRetriever/article/details/82113092


版权声明:本文为Percy0618原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。