要解决的问题
大模型的权重和激活通常以 16 位浮点数存储。把它们换成更低比特(8 位、4 位甚至更低),可以减少显存占用和带宽需求,从而降低推理成本、提高速度,同时要尽量不损失模型质量。
核心方法
主要路线:
- 仅量化权重(weight-only):权重存成低比特,计算时再反量化,适合带宽受限的解码阶段。
- 权重与激活都量化:例如 W8A8,可以直接使用低精度矩阵运算单元。难点是激活中存在数值异常大的离群值(outlier)。
- 低精度浮点:FP8、FP4 等格式,依赖新一代硬件支持。
- KV 缓存量化:把 KV 缓存存成低比特。
多数大模型量化采用训练后量化(Post-Training Quantization,PTQ),只需少量校准数据,不需要重新训练。
代表工作
- GPTQ(2022):基于近似二阶信息逐层量化权重,可以把大模型压到 3–4 比特。
- SmoothQuant(2022):把激活中的离群值通过数学等价变换「迁移」到权重上,实现 W8A8 量化。
- AWQ(2023):根据激活幅度找出少量重要的权重通道加以保护,实现高质量的 4 比特权重量化。
选型经验
- 质量敏感的任务先建立 BF16/FP16 基线,再评估可接受的量化损失;4 比特的 GPTQ/AWQ 是内存与带宽受限时的候选方案,不是天然的质量最优选择。
- FP8、INT8、4 比特的收益都依赖目标硬件、内核和批次,不能直接视为跨平台的通用方案。
- 在实际任务上比较准确率、峰值显存、首 token 延迟和吞吐,并核对推理引擎支持的格式。
挑战
- 模型不同的层对低比特的敏感程度不同。
- 量化内核高度依赖硬件和推理引擎,同一种格式换个平台可能没有加速。
参考资料
相关专题
- 剪枝与低秩分解:另一类模型压缩手段,生产中一般先考虑量化。
- KV缓存压缩与注意力变体:KV 缓存量化与其他 KV 缓存压缩方法。
- 优化器、学习率调度与混合精度:训练侧的低精度计算。
- 边缘与本地部署:端侧部署几乎都依赖 4 比特或 8 比特量化。