量化基础
量化用更低精度的编码近似模型中的数值,以减少存储、显存和数据搬运,并在硬件支持时使用低精度 Kernel。代价是引入舍入与截断误差,因此一种完整方案不能只用“4 bit”或“FP8”描述。
四个基础维度
| 维度 | 回答的问题 | 典型取值 |
|---|---|---|
| 量化对象 | 量化什么 | Weight、Activation、KV Cache |
| 量化粒度 | 哪些元素共享量化参数 | Per-tensor、per-channel、per-block、per-group |
| 数值类型 | 低精度 bit 如何解释 | INT8、INT4、FP8 E4M3、FP4 E2M1 |
| 数值映射 | 高精度值如何映射和重建 | Integer Affine、Float Cast、scale、rounding |
四个维度需要组合描述。例如,一个 W8A8 线性层可以采用:
text
Weight: FP8 E4M3 + per-block 128×128 scale
Activation: FP8 E4M3 + per-token-block 1×128 scale
KV Cache: 独立配置W8A8 只说明 Weight 和 Activation 的位宽,没有说明数值类型、映射方式、粒度或模型覆盖范围。
这些基础维度组合后形成 Fine-Grained FP8、MXFP8、NVFP4 等 Recipe,再与量化算法、模块覆盖和 Runtime 组成完整的量化配置。