随机梯度下降(SGD)的并行实现由于其出色的可扩展性而受到了极大的研究关注。并行SGD时的一个基本障碍是节点之间通信梯度更新的高带宽成本;因此,提出了几种有损压缩启发式算法,其中节点只传递量化梯度。虽然在实践中有效,但这些启发式方法并不总是收敛。
在本文中,我们提出了量化SGD(QSGD),这是一系列具有收敛保证和良好实用性能的压缩方案。QSGD允许用户平滑地权衡通信带宽和收敛时间:节点可以调整每次迭代发送的比特数,但代价可能更高。我们证明了这种权衡是内在的,因为如果将其提高到某个阈值以上,就会违反信息论的下限。QSGD保证了凸目标和非凸目标在异步条件下的收敛性,并且可以推广到随机方差缩减技术。
当应用于图像分类和自动语音识别的深层神经网络训练时,QSGD可显著缩短端到端训练时间。例如,在16GPU上,我们可以在ImageNet上对ResNet-152网络进行全精度训练,速度比全精度变体快1.8倍。
1 Introduction
降低成本的一种流行方法是对梯度进行有损压缩。一个简单的实现是简单地降低表示的精度,这已被证明在凸性和稀疏性假设下收敛[10]。一种更激进的量化技术是1BITSGD[35,37],它将梯度的每个分量减少到其符号(一位),通过坐标上的平均值进行缩放,从而局部累积误差。1在一定条件下,通过实验观察到BITSGD保持收敛性[35];由于通信量的减少,它使声学建模的深层神经网络(DNN)具有了最先进的可伸缩性[37]。然而,目前尚不清楚1BITGD是否提供了任何保证,即使是在强有力的假设下,也不清楚是否可以实现更高的压缩。
贡献。我们的重点是理解dataparallel SGD的通信成本与其收敛保证之间的权衡。我们提出了一系列允许对梯度进行有损压缩的算法,称为量化SGD(QSGD),通过该算法,处理器可以权衡每次迭代传输的比特数与过程中增加的方差。
QSGD基于两种算法思想。第一种是直观的随机量化方案:给定处理器上的梯度向量,我们通过随机舍入将每个分量量化为一组离散值,原则上保留原始分量的统计特性。第二步是量化梯度的高效无损编码,利用其统计特性生成高效编码。我们的分析给出了QSGD引起的精度-方差权衡的严格界限。