本地部署量化实测:Q4 是免费的吗?数字能力坏了 10.6 分

“本地部署”这四个字,最近成了很多团队的安慰剂。买两张卡、拉一个开源模型、跑通 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 分,你的业务会选择哪一个?你们那边一个数字错误的成本是多少?

分享到:

微博
Twitter
LinkedIn

— IMAI 编辑部 | 2026-10-28

发表评论