动态量化(Dynamic Quantization)和静态量化的runtime开销?
动态量化:权重量化在加载时完成(或预量化好),激活的 scale/zero_point 在每次前向时根据当前输入的 min/max(或分位数)现场计算并量化。优点是不需要校准集、适应输入分布变化(如不同 domain 的请求);缺点是运行时多一次统计与量化,有额外开销,且激活量化在 batch 或 sequence 上做统计可能增加延迟,适合权重占主导、激活量化简单或可选的场景(如 LSTM、部分 Linear)。
静态量化:权重与激活的 scale/zero_point 均在离线校准阶段确定,推理时只做固定公式的 quantize/dequant,无额外统计,延迟与实现最稳定,吞吐高。缺点是对分布偏移敏感,校准数据需有代表性;若输入分布变化大,可能需重新校准或多套参数。适合推理输入分布稳定、追求极致延迟与吞吐的场景(如 CV、固定格式的 NLP)。
动态量化 runtime 多:每层或每次前向要做激活的 min/max 或直方图、再算 scale;静态量化 runtime 仅查表与乘加。因此高 QPS、低延迟服务倾向静态;输入分布多变、或模型以权重计算为主时可用动态。大模型推理常见「权重静态 + 激活静态或 per-token 动态」的折中。
| 返回模块 | 返回总览 |