“本地部署”这四个字,最近成了很多团队的安慰剂。买两张卡、拉一个开源模型、跑通 Demo,然后在真正上线时发现:量化掉的那 8% 精度,恰好毁掉了你要用的那个能力。我们团队上个月就踩了这个坑——把 32B 模型 Q4 量化后部署做合同审查,各项指标都”还行”,唯独条款数字提取的准确率从 91% 掉到 74%,而那个场景恰恰全是数字。
这篇是我们用 6 张图、连续两周压测换来的账:Qwen2.5-32B、Llama-3.3-70B 和 GLM-4-32B 在 FP16、Q8、Q5、Q4 四档量化下的质量损耗与推理成本,回答一个问题:哪一档量化是”免费的”,哪一档会偷偷收走你最需要的能力。
一、压测设计:先定义”你的任务吃什么”
量化评测最大的坑是只用通用题库。通用题分高,不代表你的业务能用——因为损耗从来不是均匀分布的,它集中打击特定能力。所以我们把测试集按能力拆开:
- 通用推理(MMLU 子集 200 题):代表综合能力水位。
- 数字与算术(自建 150 题):多步计算、表格数字、百分比换算。
- 长文档抽取(120 份真实文档):从合同、财报里抽字段、日期、金额。
- 代码生成(HumanEval+ 自建 80 题):通过单元测试的比例。
- 指令遵循(150 题):格式约束、多约束同时满足。
硬件统一为 2×RTX 4090(48GB 显存),推理引擎 llama.cpp 与 vLLM 各测一遍,取稳定值。所有模型用官方发布的量化权重,不自己转——排除转换脚本引入的额外噪声,这也是多数团队复现不出来别人结果的原因。
二、四档量化的真实损耗表
| 模型 / 档位 | 显存占用 | 通用推理 | 数字算术 | 长文档抽取 | 代码 | 指令遵循 |
|---|---|---|---|---|---|---|
| Qwen2.5-32B FP16 | 62GB(卸载) | 78.5 | 72.4 | 85.1 | 71.2 | 88.3 |
| Qwen2.5-32B Q8_0 | 35GB | 78.2 | 71.8 | 84.9 | 70.9 | 88.0 |
| Qwen2.5-32B Q5_K_M | 23GB | 77.6 | 68.3 | 82.4 | 69.4 | 85.6 |
| Qwen2.5-32B Q4_K_M | 20GB | 75.9 | 61.2 | 76.8 | 65.1 | 80.2 |
| GLM-4-32B Q4_K_M | 21GB | 74.8 | 59.7 | 75.1 | 63.8 | 79.4 |
| Llama-3.3-70B Q4_K_M | 41GB | 79.1 | 70.6 | 81.3 | 74.6 | 83.7 |
| Llama-3.3-70B IQ2_M | 26GB | 72.3 | 54.2 | 68.9 | 64.1 | 72.5 |
三条结论,每条都值一张卡的钱:
1. Q8 是真正”免费”的一档。通用题只掉 0.3 分,显存从 62GB 降到 35GB。如果你的卡塞得下 FP16 的八成,Q8 没有任何理由不选。我们最初跳过 Q8 直接上 Q4,纯粹的愚蠢。
2. Q4 的通用损耗可以接受,专项损耗是灾难。Qwen2.5-32B 从 Q8 到 Q4,通用题从 78.2 掉到 75.9(可接受),但数字算术从 71.8 崩到 61.2,掉了 10.6 分。这不是均匀退化,是集中打击——量化把权重压紧时,首先牺牲的是对数值精度敏感的那些连接。你做的是数字密集型任务,Q4 就是在拆自己的台。
3. 小模型低端量化的坍塌是断崖式的。Llama-3.3-70B 的 IQ2_M 还能用(通用 72.3),但 Qwen2.5-32B 的同类低端量化我们的测试里指令遵循直接跌穿可用线。参数量越小,每比特权重承载的信息越密,低端量化越没有冗余可用。想用 2-bit 跑 32B,不如老老实实 Q4 跑,或者换更小的模型全精度。
三、性能账:省显存换来了什么
| 档位 | 首 token 延迟 | 吞吐(tokens/s) | 上下文 32K 可用 | 单并发成本相对值 |
|---|---|---|---|---|
| Qwen-32B FP16(CPU 卸载) | 8.9s | 6.2 | 勉强 | 3.1× |
| Qwen-32B Q8_0 | 2.1s | 21.4 | 是 | 1.0× |
| Qwen-32B Q5_K_M | 1.6s | 26.8 | 是 | 0.82× |
| Qwen-32B Q4_K_M | 1.2s | 31.5 | 是 | 0.71× |
| Llama-70B Q4_K_M(双卡) | 3.4s | 11.8 | 是 | 1.4× |
Q4 比 Q8 快 47%,但代价是数字能力掉 10 分——这个交换在多数生产场景里不划算。Q5 是我们最后的平衡点:比 Q8 快 25%,数字能力比 Q4 高 7 分。如果业务吃数字,选 Q5;如果只吃通用对话,Q4 没问题。
补一条工程经验:显存不是唯一约束,KV cache 才是隐藏杀手。32K 上下文下,Q8 的 35GB 权重只剩 13GB 给 KV cache,同时 6 个并发就 OOM。只看模型文件大小选量化档位,上线第一天就会被并发打爆。我们后来把上下文降到 16K 并且上了 KV cache 量化(q8_0),同样硬件并发从 6 提到 14。
四、落地建议:四条可执行的规则
- 先测能力图谱,再定量化档位。拿你自己的 50 条真实样本,分别跑 FP16/Q8/Q5/Q4,画出你关心的那两三个指标的衰减曲线。不要看通用榜单,你的任务不活在榜上。
- 数字密集型任务默认从 Q5 起步。合同、财报、报表、定价,凡是数字承载语义的,Q4 大概率会出事故。这是我们用一次线上 bug 换来的。
- 70B Q4 优于 32B 任意档的通用能力,但未必优于你的专项需求。Llama-3.3-70B Q4 通用 79.1 全线压制 Qwen-32B,但如果你吃中文长文档抽取,Qwen2.5 的 Q8(84.9)比 Llama 70B Q4(81.3)更强。参数量不是唯一变量,32B 的原生强项可能正是 70B 补齐不了的。
- 上线前做一次并发压测,不是单并发。单并发漂亮的多卡集群,6 并发就雪崩的我们见得太多了。把 KV cache、批处理策略和并发上限一起测,这才是生产。
总结
两周压测的结论可以压缩成三句话:Q8 几乎无损,是本地部署的默认起点;Q4 的通用损耗可接受但专项损耗致命,数字密集任务别碰;小模型不要碰 2 比特,那是断崖不是斜坡。
更重要的认知转变是:量化不是”部署技巧”,是能力取舍决策。你不只是选一个显存占用,你是在决定”牺牲哪部分能力换成本”。这个取舍只有你能做,因为只有你知道你的用户最常问什么——如果你的工单里一半是”这个金额对不对”,那 Q4 省下的 30% 成本远不够赔一次错误报价。
最后一个判断:端侧推理硬件的显存增长会比模型量化技术进步更快,当 24GB 成为消费级标配、32B FP16 能塞进单卡时,今天的量化权衡一半会失去意义。但”能力图谱先行”这个方法不会过时——无论硬件怎么变,先测你自己的任务再选方案,永远是本地部署的第一课。
互动提问:你本地部署的模型现在是什么量化档位?有没有拿自己的真实任务测过衰减,还是直接抄的别人的配置?
互动提问:如果 Q8 比 Q4 慢 47% 但数字准确率高 10 分,你的业务会选择哪一个?你们那边一个数字错误的成本是多少?
— IMAI 编辑部 | 2026-10-28