量化对象
量化对象回答“哪些张量或运行时状态使用低精度表示”。大模型推理中主要包括 Weight、Activation 和 KV Cache;它们的生命周期和性能瓶颈不同,应分别配置。
| 对象 | 特征 | 主要收益 | 主要约束 |
|---|---|---|---|
| Weight | 模型加载后保持不变 | 减少 checkpoint、显存占用和 Weight 读取带宽 | 需要匹配打包格式、scale 布局与 Kernel |
| Activation | 随输入和层动态变化 | 进入低精度 GEMM,降低计算与传输成本 | 需要额外的统计和量化过程 |
| KV Cache | Decode 时逐 token 增长 | 降低长上下文和高并发下的缓存容量与带宽 | 依赖 Attention Kernel 对低精度 Cache 的支持 |
Weight
Weight 最适合预先量化。Weight-Only 方案只降低 Weight 精度,Activation 保持 FP16/BF16,典型配置是 W8A16 和 W4A16;主要收益来自更小的模型容量和更低的 Decode 读取带宽。
Activation
Activation 由当前输入产生,分布会随 token、层和请求变化。W8A8、W4A8 或 W4A4 需要在 GEMM 前准备低精度 Activation,因此要同时考虑量化开销、粒度和 Kernel 是否支持对应路径。
KV Cache
KV Cache 是 Attention 的运行时状态,不属于线性层 WxAy 中的 W 或 A。模型可以使用 W4A16,同时独立选择 BF16、FP8 或 FP4 KV Cache;实际收益取决于缓存长度、并发量和 Attention Kernel。
WxAy 只概括线性层 Weight 与 Activation 的位宽。完整方案还要分别说明三类对象的量化粒度、数值类型和数值映射。