模型量化

模型量化的两种类型,分别是 PTQ 和 QAT

什么是训练后量化 Post Training Quantization (PTQ)?

  • 模型量化-20230704212353
  • 在训练得到的高精度模型后,统计权重和激活值的动态范围和量化参数(q-parms)后,再进行量化操作
  • 分为 2 个量化阶段:1) 量化权重,这个很简单,因为权重可以直接被访问,所以可以很轻松计算得到其分布;2) 量化激活,这个比较麻烦,因为必须使用实际输入数据才能测出其分布
  • 校准 (Calibration): 在量化激活时,输入代表性数据集,获得层间激活分布的过程

什么是量化感知训练 Quantization Aware Training (QAT)?

  • 模型量化-20230704212354
  • 训练后量化 (PTQ) 有时候出现无法接受的精度损失,这时候就需要使用量化感知训练 Quantization Aware Training (QAT),它的主要思想是:在训练阶段包含量化误差,使得网络可以适应量化后的权值与激活
  • 通过在训练图中插入量化操作 (Q) 和反量化操作 (DQ),实现将量化误差包含在网络中,以使得 量化参数 更加符合网络,减少精度损失

什么是量化操作 (Q) 和反量化操作 (DQ)?

  • 模型量化-20230704212354-1
  • 量化 (Quantize): 将浮点数量化为整数的过程
  • 反量化 (Dequantize): 将整数转化为浮点数的过程