4.5 实验
使用我们的QAT流程,我们对在第3.6节中使用的相同模型进行量化和评估。我们的结果在表10中展示了不同位宽和量化粒度的情况下。DeepLabV3在Pascal VOC上进行了80个epoch的训练;EfficientDet在COCO 2017上进行了20个epoch的训练;所有其他视觉模型在ImageNet上进行了20个epoch的训练。BERT-base在相应的GLUE任务上进行了3到12个epoch的训练,具体取决于任务和量化粒度。我们对所有模型都使用了Adam优化器。我们展示了每个量化配置下最佳学习率的结果,并且没有进行进一步的超参数调优。
我们观察到对于没有深度可分离卷积的网络(表10的前3行),W8A8和W4A8的量化在某些情况下与甚至优于浮点模型的性能相当。这可能是由于在量化噪声下进行训练的正则化效应或者在QAT期间的额外微调所致。对于更激进的W4A4情况,我们注意到了一个小的性能下降,但仍然在浮点精度的1%范围内。
对于具有深度可分离层的网络(MobileNetV2、EfficientNetlite、DeeplabV3、EfficientDet-D1),量化更具挑战性;这也是我们在第3.6节的PTQ结果中观察到的趋势,并且在文献中进行了讨论(Chinetal.,2020;Shengetal.,2018a)。虽然8位量化几乎不会导致准确率下降,但将权重量化为4位会导致更大的下降,例如对于使用每张张量量化的EfficientNetlite,准确率下降约4%。按通道量化可以显著提高性能,将DeepLabV3提升到浮点精度,并将MobileNetV2和EfficientNetlite之间的差距减小到不到1.5%。对于这样的网络,将权重和激活量化为4位仍然具有挑战性,即使使用按通道量化,也可能导致高达5%的性能下降。EfficientDet-D1在这个组中仍然比其他网络更难量化。
对于BERT-base,我们观察到使用范围学习的QAT可以有效处理高动态范围,使得所有激活保持在8位(与PTQ不同)。W4A8的性能仍然在原始GLUE分数的1%范围内,表明低位权重量化对于Transformer模型来说不是一个问题。只有当将其与低位激活量化(W4A4)结合时,我们才会注意到显著的性能下降。
5 摘要与结论
深度学习已经成为许多机器学习应用的重要组成部分,现在可以在无数的电子设备和服务中找到,从智能手机和家用电器到无人机、机器人和自动驾驶汽车。随着深度学习在我们日常生活中的普及和影响力的增加,对快速和高效的神经网络推理的需求也在增加。神经网络量化是减少推理过程中能量和延迟需求的最有效方法之一。
量化允许我们从浮点表示转换为定点格式,并结合利用高效定点运算的专用硬件,有潜力实现显著的功耗节约和推理加速。然而,为了利用这些节约,我们需要能够在减少权重和激活位宽的同时保持高准确性的稳健量化方法。为此,我们考虑了两类主要的量化算法:训练后量化(PTQ)和量化感知训练(QAT)。
训练后量化技术将预训练的FP32网络转换为无需原始训练流程的定点网络。这使得它们成为一种轻量级、一键式的量化方法,工程工作量和计算成本都很低。我们描述了PTQ的一系列最新进展,并介绍了一个PTQ流程,可以在广泛的模型和机器学习任务中实现接近浮点准确性的结果。特别是,使用所提出的流程,我们可以在所有网络中将权重和激活量化为8位,仅准确性下降不到浮点数的1%。我们进一步展示了许多网络甚至可以将权重量化为4位,仅有轻微的性能下降。此外,我们引入了一种调试工作流程,可以有效地识别和修复在量化新网络时可能出现的问题。
量化感知训练通过模拟量化操作来建模训练过程中的量化噪声。这种训练过程可以找到比PTQ更好的解决方案,同时实现更有效和更激进的激活量化。与PTQ类似,我们引入了一个使用该领域最新算法的标准训练流程。我们还特别关注QAT中的批归一化折叠,并展示了简单的静态折叠优于其他更计算密集的方法。我们证明,使用我们的QAT流程,我们可以将权重量化为4位,并且对于一些模型甚至可以将激活量化为4位,与浮点数相比仅有轻微的准确性下降。
选择PTQ和QAT之间的方法取决于应用的准确性和功耗要求。这两种方法都是任何模型效率工具包的重要组成部分,我们希望我们提出的流程能够帮助工程师以更少的时间和精力部署高性能的量化模型。