4. 量化基础概念
在自动驾驶模型部署中,量化是把训练好的高精度浮点权重与激活值映射到低位宽整数表示的过程。它的直接收益是显存占用下降、访存带宽减少、INT8/INT4 张量核心吞吐提升;代价是引入量化误差,可能影响检测框回归、分割边界和小目标召回。理解定点与浮点、对称与非对称、粒度与误差范围,是后续校准、剪枝与蒸馏协同优化的前提。
一、定点与浮点表示:两种数值世界观
浮点数用“符号位 + 指数位 + 尾数位”表示,动态范围极大,但硬件代价高。以 FP32 为例,1 位符号、8 位指数、23 位尾数,可表示约 ±3.4×10³⁸,尾数精度约 2⁻²³。FP16 指数 5 位、尾数 10 位,范围约 ±65504,适合 GPU 半精度推理。定点数则把小数点位置固定,常见 INT8 用 8 位整数配合一个缩放因子 scale 和零点 zero_point 还原实数:
r = S × (q − Z)
q = clamp(round(r / S) + Z, q_min, q_max)
# 例:S=0.05, Z=0, q∈[-128,127]
# r=1.23 → q=round(1.23/0.05)=25 → 反量化 r=1.25
# 误差 = 1.25 - 1.23 = 0.02
定点表示的核心是“用整数近似实数”,其精度由 scale 决定,范围由位宽和 zero_point 决定。浮点表示的核心是“用指数换范围”,精度随数值大小浮动。自动驾驶中,骨干网络常用 INT8 定点,注意力或回归头可保留 FP16,形成混合精度。
二、对称与非对称量化:零点是否偏移
对称量化强制 zero_point = 0,实数范围关于 0 对称,如 INT8 映射到 [−127, 127]。它实现简单、乘加友好,适合权重分布近似零均值的情况。非对称量化允许 zero_point ≠ 0,把 [r_min, r_max] 完整映射到 [q_min, q_max],适合激活值经 ReLU 后全为非负、分布偏斜的场景。
| 维度 | 对称量化 | 非对称量化 |
|---|---|---|
| 零点 | Z = 0 | Z 可不为 0 |
| 映射范围 | [−|r|max, |r|max] | [r_min, r_max] |
| 典型对象 | 卷积权重 | ReLU 后激活 |
| 计算开销 | 低,无零点修正 | 略高,需处理 Z |
| 误差特点 | 偏斜分布误差大 | 均匀覆盖,误差小 |
三、量化粒度:从张量级到通道级
量化粒度决定“多少个数值共享一个 scale”。粒度越细,误差越小,但元数据与计算开销越大。
- 张量级(per-tensor):整个张量共用一个 S,硬件最友好,但各通道动态范围差异大时误差显著。
- 通道级(per-channel):每个输出通道一个 S,卷积权重量化常用,能显著降低权重误差。
- 组级(per-group):每 32/64/128 个元素一组,常见于 INT4 权重量化,兼顾精度与开销。
- 逐元素(per-element):每个元素独立 scale,精度最高但几乎无法硬件加速,仅用于研究或极低比特压缩。
在自动驾驶模型中,Backbone 卷积多用 per-channel 对称 INT8;Transformer 的 QKV 权重可用 per-group INT4;激活因逐层统计差异大,常用 per-tensor 非对称 INT8。
四、量化误差与数值范围分析
量化误差主要来自舍入误差与截断误差。舍入误差上限为 S/2,截断误差上限为 S。若真实值超出 [r_min, r_max],还会产生饱和误差,可能直接导致检测框偏移或分类置信度异常。
# 误差分解示例
S = (r_max - r_min) / (q_max - q_min)
round_err ≤ S / 2
clip_err = max(0, |r| - max(|r_min|, |r_max|))
# 若 r_max=6.0, r_min=-1.0, q∈[-128,127]
# S = 7.0 / 255 ≈ 0.02745
# 舍入误差 ≤ 0.0137
# 若某激活值 r=8.0,则 clip_err = 2.0,严重饱和
数值范围分析要关注三点:一是校准集是否覆盖夜间、雨雾、逆光等长尾场景;二是每层激活的 min/max 是否随输入剧烈漂移;三是权重是否存在离群通道。常用做法是采用移动平均或百分位裁剪(如 99.9% 分位)替代绝对 min/max,降低离群值对 scale 的拉偏。
五、案例:自动驾驶感知模型的量化配置
以 BEV 检测模型为例,Backbone 使用 per-channel 对称 INT8,Neck 使用 per-tensor 非对称 INT8,检测头回归分支保留 FP16。校准集选取 500 张覆盖白天、夜间、雨天、隧道口的图像。量化后 mAP 下降 0.8%,但推理延迟降低 42%,显存占用降低 58%。复盘发现,小目标召回下降主要来自 Neck 激活饱和,改用百分位裁剪后恢复 0.5%。
综上,定点与浮点决定数值表示方式,对称与非对称决定零点策略,粒度决定误差分布,误差与范围分析决定校准质量。四者共同构成量化配置空间,需结合自动驾驶场景的长尾分布与硬件特性联合调优。