模型量化原理
1.制作量化校准表
激活值量化
与权重量化不同,激活值是动态变化的(随输入数据不同而变化,例如同一张图像和不同图像经过同一层的激活值分布可能差异很大)。
因此,激活值量化需要先通过 “校准(Calibration)” 步骤,用有代表性的数据集(校准集)统计其分布范围,再基于该范围进行量化。
权重量化
默认将不同输出通道对应的权重赋值不同的缩放系数,分组等于输出通道数,则不同的滤波器对应不同的缩放系数
KL 散度越小,两个分布越相似,量化误差越小
阈值(Threshold)
指校准过程中确定的浮点数据 “有效范围边界”,通常是激活值或权重的最大绝对值
最大值(Max Value)
指校准数据集上,模型某一层激活值或权重的实际最大数值(含正负,通常取绝对值后使用)。
是计算 “尺度” 的核心原始数据,直接反映该层数据的动态范围大小。
. 尺度(Scale)
量化的 “缩放比例因子”,计算公式为:尺度 = 阈值(或最大值) / 量化范围上限(如 int8 的量化范围是 - 128~127,上限取 127)。
作用是建立浮点数据与整型数据的映射关系,浮点值 × 尺度 = 量化后的整型值,反量化时整型值 ÷ 尺度 = 还原浮点值
三者关联逻辑
先通过校准数据集统计每层的最大值,确定数据原始动态范围。
基于最大值设定阈值(可直接用最大值,或通过 KL 散度等方法优化后确定),过滤无效数据。
用阈值和量化位宽的范围上限计算尺度,完成 “浮点→整型” 的缩放规则定义。

浙公网安备 33010602011771号