量化要看三件事
量化用更低的位数表示权重或激活来省显存、提吞吐,但选择方案时容易只看位数。实际要分三层看:量化对象是只有权重还是权重加激活、位宽是 8 位还是 4 位、格式是哪种内核实现。三者确定之后,再用固定评测集验证质量是否可接受,最后才决定上线。
常见组合速览
| 方案 | 典型形态 | 权重显存 | 常见场景 |
|---|---|---|---|
| 八位权重与激活 | 权重与激活都是 8 位 | 约减半 | 较新代显卡的在线服务 |
| 四位权重量化 | 权重 4 位、激活保持高精度 | 约为高精度四分之一 | 单卡跑更大模型 |
| 本地单文件格式 | 多档位可选 | 按档位变化 | 本地与边缘部署 |
| 仅权重量化 | 只压权重不动激活 | 按位宽折算 | 显存受限但算力充足的场景 |
决策顺序
- 先看显存缺口有多大:缺口小则量化位宽可以温和一些
- 再看框架支持:引擎能吃哪些量化内核,先对齐再选格式
- 再看硬件算力:部分量化内核有最低算力要求,老卡可能不支持
- 最后验证质量:用固定评测集对比,确认关键指标没有明显下降
- 上线后再回归:量化版本与原版本并行观察一段时间,确认无异常
验证量化是否合适
验证量化是否合适
# 准备一份固定的评测集与提示词,量化前后各跑一次
# 对比维度:关键任务的正确率、输出格式稳定性、复读情况
# 同时记录显存占用与吞吐,确认收益真实存在
nvidia-smi --query-gpu=index,memory.used --format=csv
# 结论要落在「省了多少显存、掉了多少质量」两个数上量化省的主要是权重占用:KV 缓存、激活与运行时缓冲不会随权重量化同比例缩小,显存估算仍要以实测为准。
按位宽线性折算显存收益会高估效果:当 KV 与激活占大头时,收益远低于预期,先算清显存构成再决定方案。