中文

改进训练后神经网络量化:逐层校准与整数规划

机器学习 2020-12-15 v2 机器学习

摘要

近来,训练后量化方法因其易于使用且仅需少量无标签校准集而备受关注。如果不产生严重的过拟合,这个小数据集无法用于微调模型。相反,这些方法仅使用校准集来设置激活值的动态范围。然而,当在低于 8 比特位宽下使用时(小数据集除外),此类方法总是导致显著的精度下降。本文旨在打破 8 比特壁垒。为此,我们通过在校准集上优化各层参数,分别最小化每一层的量化误差。我们通过实验证明,这种方法:(1) 比标准微调方法更不容易过拟合,甚至可以用于非常小的校准集;(2) 比以往仅设置激活值动态范围的方法更强大。此外,我们通过提出一种新颖的整数规划公式,演示了如何在限制精度下降或模型压缩的同时,为每一层最优地分配比特位宽。最后,我们建议进行模型全局统计量调整,以校正量化过程中引入的偏差。这些方法结合在一起,在视觉和文本模型上均取得了 SOTA 的结果。例如,在 ResNet50 上,我们获得了低于 1% 的精度下降——所有层均使用 4 比特权重和激活值,除了最小的两层。我们已将代码开源。

关键词

引用

@article{arxiv.2006.10518,
  title  = {Improving Post Training Neural Quantization: Layer-wise Calibration and Integer Programming},
  author = {Itay Hubara and Yury Nahshan and Yair Hanani and Ron Banner and Daniel Soudry},
  journal= {arXiv preprint arXiv:2006.10518},
  year   = {2020}
}