工具
Qwen3.6-27B KV 缓存量化实测:Q6 不量化 KV 接近 Q8 水平
社区用户实测 Qwen3.6-27B 不同权重与 KV 量化组合的 KL 散度,结果显示 (q8_0, q8_0) KV…
2026.07.08 · 周三约 3 分钟阅读
近日,Reddit 用户 BitGreen1270 在 r/LocalLLaMA 社区发布了一项针对 bartowski 量化的 Qwen3.6-27B 模型的 KV 缓存量化效果实测。测试使用 llama-perplexity 工具,以一段约 230 MB、由 transformers、torch、Hugging Face 等开源仓库的 Python 源码拼接而成的语料作为输入,在 50K 上下文、32 chunk 设置下,对比了不同权重量化(Q8_0、Q6_K_L、Q5_K_L)与不同 K/V 缓存精度组合下的 KL 散度(KLD)差异。基线为无 KV 量化的 Q8_0 模型,共完成 23 组对比,每组运行约 17 分钟。
核心结论
测试得到的主要发现如下:
- 整体上 Q8 优于 Q6 优于 Q5,符合直觉,但 Q6 与 Q5 之间的差距明显大于 Q8 与 Q6 之间。
- V 缓存一旦降至 q4_0,Q8 与 Q6 都会出现陡峭的质量下降,无论 K 用什么精度。
- 必须使用 q4_0 V 时,Q6 权重 + (q8_0, q8_0) KV 的效果优于 Q8 权重 + q4_0 V,这一结果令作者感到意外。
- Q5 权重对 V 量化的容忍度反而高于 Q8 和 Q6。
- 在 (q4_0, q4_0) 配置下,Q8 与 Q6 的表现趋于收敛。
关键数据
下表为不同权重精度与 KV 缓存精度组合下的 KLD 数值(数值越低越好):
- (no_kv, no_kv) 基线:Q8=0,Q6=0.010771,Q5=0.0228
- (none, q8_0):Q8=0.005399,Q6=0.01069,Q5=0.022322
- (q8_0, q8_0):Q8=0.00541,Q6=0.010709,Q5=0.022486
- (q8_0, q5_1):Q8=0.00736,Q6=0.011715,Q5=0.023135
- (none, q4_0):Q8=0.01164,Q6=0.014789,Q5=0.024295
- (q8_0, q4_0):Q8=0.011824,Q6=0.014666,Q5=0.024101
- (q4_0, q4_0):Q8=0.020817,Q6=0.022166,Q5=0.027909
数据显示,Q6 权重 + 无 KV 量化时与 Q8 基线的距离仅约 0.011 个 KLD 单位,作者认为这是一个「极具性价比」的折中方案。
实操建议
作者的结论是:在显存允许的前提下尽量使用更高精度的权重,KV 缓存统一采用 (q8_0, q8_0) —— 额外开销几乎可以忽略,但能显著降低质量损失。需要注意的是,V 缓存不建议低于 q4_0,否则会带来陡峭的性能下降。
作者也在帖末强调,该测试基于其个人编程场景的代码语料,并不能替代更广泛的基准测试;不同量化方案(如 Unsloth 等)的具体表现可能存在差异,读者需结合自身使用场景判断。
