端到端低精度模型训练的ZipML框架:能与不能,兼论一点深度学习
机器学习
2017-06-20 v3 机器学习
摘要
近来,以低精度训练机器学习模型引起了极大兴趣:通过降低精度,可将计算和通信减少一个数量级。我们从理论和实践两个角度审视低精度训练,并追问:是否可能在端到端低精度下训练模型并具有可证明的保证?这能否带来持续的数量级加速?我们提出了一个名为ZipML的框架来回答这些问题。对于线性模型,答案是肯定的。我们基于一种简单但新颖的称为双重采样的策略,开发了一个简单框架。我们的框架能够以低精度执行训练且无偏,从而保证收敛,而朴素的量化则会引入显著偏差。我们在一系列应用中验证了该框架,并展示它使一个FPGA原型比使用全32位精度的实现快了高达6.5倍。我们进一步开发了一种方差最优的随机量化策略,并表明它在多种设置下能产生显著差异。当与双重采样一起应用于线性模型时,与均匀量化相比,我们在数据移动方面又节省了高达1.7倍。在使用量化模型训练深度网络时,我们取得了比最先进的XNOR-Net更高的精度。最后,我们通过近似将框架扩展到非线性模型,如SVM。我们表明,尽管使用低精度数据会引入偏差,但我们可以适当地界定和控制该偏差。我们在实践中发现,8位精度通常足以收敛到正确解。然而,有趣的是,在实践中我们注意到,我们的框架并不总是优于朴素的舍入方法。我们详细讨论了这一负面结果。
引用
@article{arxiv.1611.05402,
title = {The ZipML Framework for Training Models with End-to-End Low Precision: The Cans, the Cannots, and a Little Bit of Deep Learning},
author = {Hantian Zhang and Jerry Li and Kaan Kara and Dan Alistarh and Ji Liu and Ce Zhang},
journal= {arXiv preprint arXiv:1611.05402},
year = {2017}
}