用于深度学习推理的整数量化(Integer Quantization):原理与经验评估

对于深度学习推理的整数量化(Quantization),这篇论文《用于深度学习推理的整数量化:原理与经验评估》(Integer Quantization for Deep Learning Inference: Principles and Empirical Evaluation较早深入研究的。随后,在AI模型低位化整型量化处理方面的研制逐渐增多,且成果逐渐丰富。

论文作者为Hao Wu, Patrick Judd, Xiaojie Zhang, Mikhail Isaev, Paulius Micikevicius,来自Nvidia和Georgia Institute of Technology。

论文内容概要如下:

一、摘要

本文探讨了通过量化技术减少深度神经网络(DNN)大小并利用高吞吐量整数指令改善推理延迟和吞吐量的方法。本文回顾了量化参数的数学原理,并在不同应用领域的多种神经网络模型上评估了这些参数的选择。重点在于可通过高吞吐量整数数学管道加速的量化技术。本文提出了一种8位量化的工作流程,在所有研究的网络中保持精度在浮点基线的1%以内,包括难以量化的模型如MobileNets和BERT-large。

二、关键部分:

  1. 引言
    • 讨论了32位单精度浮点数在DNN应用中的主导地位及向16位格式(如IEEE fp16或bfloat16)训练和更低精度格式推理的转变。
    • 强调了低精度格式的优势:更高的吞吐量、减小的内存带宽压力和较低的内存大小需求。
    • 重点介绍了神经网络推理的整数量化,以利用整数数学管道。
  2. 相关工作
    • 回顾了神经网络量化的早期研究,包括使用int8指令进行量化并保持浮点模型精度的早期工作及最近需要训练以保持精度的进展。
    • 讨论了各种量化方法和位宽,显示了某些模型需要量化感知训练(QAT)以保持精度。
    • 探讨了低位量化技术,如三值和二值量化,这些技术通常需要训练才能达到高精度。
  3. 量化基础
    • 详细介绍了统一整数量化,使矩阵乘法和卷积能够在整数域中进行计算。
    • 描述了两种量化函数:仿射量化和比例量化。
    • 解释了范围映射和张量量化粒度,强调了对激活使用每张量粒度和对权重使用每通道粒度。
    • 讨论了仿射量化的计算成本,并推荐对权重使用比例量化以最大化推理性能。
    • 介绍了校准方法(最大值、熵、百分位数)以选择模型权重和激活的可表示范围。
  4. 训练后量化(PTQ)
    • 评估了在不同神经网络任务和模型上各种PTQ参数的选择。
    • 显示了对int8权重量化使用每通道粒度和最大值校准足以保持大多数网络的精度。
    • 比较了激活量化校准方法,发现熵、99.99%、99.999%百分位数校准方法产生的结果最佳。
  5. 恢复精度的技术
    • 讨论了部分量化以保留最敏感层未量化的方法以及通过量化感知训练(QAT)微调量化模型的方法。
    • 建议从最佳校准的量化模型开始,并使用QAT进行大约10%原始训练时间的微调。
    • 探索了与模型权重共同学习量化参数的方法,显示在微调过程中学习范围有时可以提高精度。
  6. 推荐工作流程
    • 提出了一种int8量化的工作流程,包括PTQ、部分量化和QAT。
    • 强调对权重使用每通道粒度比例量化,对激活使用每张量粒度比例量化。
  7. 结论
    • 总结了神经网络整数量化的数学背景和各种int8量化选择的经验评估。
    • 证明了通过所提出的工作流程,可以在所有研究的模型中保持精度在浮点基线的1%以内,包括难以量化的模型。

三、主要贡献:

  • 提供了对整数量化技术及其数学原理的全面回顾。
  • 在各种神经网络模型和应用领域中,对不同量化参数进行了经验评估。
  • 提出了8位量化的实际工作流程,即使对于难以量化的模型,也能保持高精度。
  • 提出了恢复量化过程中丢失的精度的技术,包括部分量化和QAT。

四、实际意义:

  • 提出的工作流程使得DNN可以有效地部署使用整数量化,利用高吞吐量整数数学管道实现显著的性能提升。
  • 研究结果适用于广泛的神经网络模型,使这些技术在各种AI应用中具有广泛的实用性。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注