一句话定义
模型量化(Quantization) 指把模型参数从高精度浮点(如 FP32)转成低位整数(如 INT8),用可控的精度损失换取体积、速度、功耗的收益。
为什么端侧需要量化
- 算力有限:嵌入式 NPU 对 INT8 有专门加速单元,FP32 通常只能跑 CPU
- 内存有限:INT8 权重体积约为 FP32 的 1/4
- 功耗敏感:无风扇设备靠降功耗控制发热
- 速度要求:实时视频流要求毫秒级出结果
常见形式
| 形式 | 说明 |
|---|---|
| 训练后量化(PTQ) | 用少量校准数据把已训练模型转成 INT8,最简单 |
| 量化感知训练(QAT) | 训练时就模拟量化误差,精度更好但成本高 |
| 对称/非对称 | 零点是否偏移,影响精度与实现复杂度 |
| 逐张量/逐通道 | 逐通道量化精度更好,硬件支持度要求更高 |
关键坑:预处理必须与量化时一致
量化模型通常把归一化(mean/std)烘进模型内部。如果部署时又在外层做了归一化,或反过来漏做,输入分布就错了,结果是输出乱码、框全错。
因此转换模型时必须显式记录:
- 输入名与 shape
- 是否已内嵌归一化、mean/std 取值
- 量化校准数据集
- 输出含义与后处理约定
精度验收
量化后不能只看分类准确率,要按实际业务指标验收:检测框的召回与误报、Top-K 命中率、极端光照下的表现。
火眼识别在 RKNN 等端侧平台上做模型转换与量化部署,见 火眼识别官网。