章节摘要:ORT Quantization 在图级插入 Q/DQ 节点,支持 PTQ 与 QAT,配合 TensorRT/CPU/DML EP 的 INT8/FP16 kernel。量化是精度与带宽的契约重签,不是简单「改 dtype」。
模型部署的最后一道关口是"瘦身提速":带宽减半、显存减半、吞吐翻倍,但精度不能掉出业务红线。量化不是把权重改成小整数这么简单——它涉及校准集、量化方法、算子敏感度、EP 支持四件事的耦合。常见的三个问题:ResNet 量化掉 0.1% 精度,换 LLM 掉 9 个点,为什么差这么多;校准集用训练数据,线上却崩了;FP16 与 INT8 到底选哪个。本章三节分别处理工具链、算子级校准与混合精度。
| 阶段 | 输入 | 输出 | 关键决策 |
|---|---|---|---|
| 语义审计 | FP32 图 | 可量化算子清单 | 哪些算子排除 |
| 校准 | 校准集 + 图 | 每张量的 scale/zero_point | 校准方法、样本量 |
| 图重写 | 审计+校准结果 | 含 Q/DQ 的图 | QDQ vs QOperator |
| 融合 | Q/DQ 图 | QLinearConv 等 | 与 EP 能力对齐 |
| 验证 | INT8 图 | 精度报告 | 逐算子 diff |
量化是"精度与带宽的契约重签":把 FP32 的 4 字节降到 INT8 的 1 字节,带宽与存储省 4 倍,代价是每层引入量化噪声。噪声能否被接受取决于三件事——激活分布的形状(CNN 的分布平稳,Transformer 的分布尖峰)、算子的敏感度(Softmax 前的 logits 极敏感)、校准是否贴近线上。三者任一没控住,掉点就超红线。
| 节 | 主题 | 核心问题 | 关键产出 |
|---|---|---|---|
| 5.1 | PTQ 与 QAT 工具链 | 两个量化路径怎么选 | 工具链选择决策 |
| 5.2 | INT8 算子与校准 | 校准方法与敏感算子 | 校准配置 + 排除清单 |
| 5.3 | FP16 混合精度推理 | INT8 之外的第二条路 | 混合精度方案 |
quantize_static / dynamic 与 QAT 导出。
QLinearConv、校准方法与对称/非对称。
FP16 EP 选项与敏感层保留 FP32。