4、实验
4.1、ImageNet Classification
在各种模型上验证了本文的算法,包括不同规模的ResNet-18、ResNet-50和MobileNetV2。
如表1所示,本文算法在与不同比特配置相对应的广泛模型上以很大的优势优于其他方法。具体而言,在ResNet-18和2/4位的MobileNetV2上实现了66.18%和57.85%的Top-1准确率,分别比SOTA高1.52%和4.93%。
其次,本文的方法在低位显示出强大的优越性。例如,在MobileNetV2×0.75上,2/4位PTQ量化的精度增益显著高于4/4位(5.36%对1.61%)。振荡问题可能更为严重,因为低位会导致PTQ重建误差的大小增加。因此,在低位量化时平滑这种振荡对于PTQ优化过程至关重要。
此外,本文的方法在不同规模上对MobileNetV2进行了相当大的改进,这意味着模型大小不会限制算法的性能。作者还注意到本文的算法对MobileNetV2更有效。通过观察,MobileNetV2中的振荡问题比ResNet网络家族的振荡问题更严重。深度可分离卷积增加了模块容量的差异,从而使损失振荡的幅度更大。因此,本文的算法通过解决MobileNetV2中的振荡问题,实现了相当大的性能改进。
4.2、消融实验
1、帕累托最优
在不同规模的MobileNetV2上随机采样了大量混合重建粒度方案,并使用BRECQ算法使用4/4位PTQ对这些方案进行优化,以获得采样精度。在图4中绘制了这些方案的精度分布。
此外,还分别在MobileNetV2上标记了MRECG和BRECQ算法在不同尺度下的准确性。从图4中可以观察到MRECG在所有尺度上都比MobileNetV2有稳定的准确性提高。总体而言,MRECG在模型大小的限制下实现了Pareto最优状态。
2、Component Contribution
在这里分别研究了混合重建粒度和扩展批处理大小对准确性的贡献。将通过BRECQ量化为4/4位的0.5缩放的MobileNetV2作为基线。如表2所示,混合重建粒度和扩展批量大小的准确度分别提高了1.08%和0.74%。同时,这两种方法的结合进一步提高了模型的性能。
3、缩小扩大批量规模的边际效用
根据大数定律,当样本数量增加时,样本的平均值收敛于方程1中的期望值,从而产生较小的近似误差。然而,当样本大小足够大时,由于近似误差的减小而获得的精度增益可以忽略不计。换句话说,Batch size的扩大呈现出边际效用递减的趋势。
在图5中,对一些Batch size进行了随机采样,并通过BRECQ在0.5标度的MobileNetV2上获得了4/4比特的PTQ精度。证明了采样精度的中位数,以防止异常值的影响。作者注意到,当Batch size较小时,采样精度波动更大,这意味着较小Batch size的近似误差会产生较大的噪声。随着Batch size的扩大,这种情况有所缓和。此外,可以观察到中值精度的增加,然后趋于稳定,这意味着扩大Batch size可以为PTQ带来精度增益。同时,这种收益受到边际效用递减的制约。
4、损失分布
如图6所示,给出了不同算法的损失分布。从Adaround的分布可以看出,它具有最大的振荡幅度。因此,在模型的更深层次,Adaround的重建损失迅速增加。此外,BRECQ使用块重建进行PTQ优化,这在某种程度上缓解了损耗振荡问题,从而提高了性能。
混合重建粒度通过联合优化容量差异较大的相邻模块来平滑损耗振荡。可以看出,与Adaround和BRECQ相比,MRECG的损失变化更稳定。此外,当比较不同场景下的MRECG损失时,发现基于无数据场景获得的MRECG仍然具有较小的振幅损失振荡。作者认为,这种适度的振荡与ModCap MRECG只能联合优化两个相邻模块的事实有关,这只能实现局部最优。相比之下,MRECG具有最平滑的损耗曲线。然而,这种全局最优是以延长获得量化模型的时间为代价的。
5、参考
[1].Solving Oscillation Problem in Post-Training Quantization Through a Theoretical Perspective.