我将 Qwen3.6 27B 的 GGUF 量化与 NVFP4、AWQ、AutoRound 和 FP8 进行了对比
摘要
一项详细基准测试,比较了 Qwen3.6 27B 在 GGUF、NVFP4、AWQ、AutoRound 和 FP8 格式下的 16 种量化,测量与未量化参考的 KL 散度。纯权重的 GGUF 量化通常在质量-大小权衡上表现最佳,而 vLLM 量化则差异显著。
如果你感兴趣,博客文章里有交互式图表和一些额外数据。关于 GGUF 模型的 KL 散度基准测试有很多,但大多数只是将一个 GGUF 量化与另一个 GGUF 量化进行比较。我想知道这些量化与其他常用格式(尤其是 NVFP4)相比表现如何。我测试了 Qwen3.6 27B 的 16 种量化:llama.cpp 中的 GGUF 模型以及 vLLM 中的其他格式。在测试集中的每个 token 位置,我将量化模型的下一个 token 概率分布与未量化参考模型进行比较。所得的 KL 散度衡量量化与原始模型的偏离程度;越低越好。
仅权重的 GGUF 在质量-大小权衡上表现最佳。GGUF 结果占据了图表下包络线的大部分。在几乎每个大小上,llama.cpp 中运行的 GGUF 在相近权重大小中测得的 KL 散度最低。这里的主要因素可能是激活量化——GGUF 根本不对激活进行量化。一些 vLLM 检查点对权重、激活,有时还有 KV 缓存进行量化。
vLLM 量化差异显著。相似大小的量化在保持参考分布方面的效果并不相同。尤其值得注意的是 Sakakamismile NVFP4 (W4A4) 量化,与相似大小(甚至更小)的量化相比,其 KLD 明显更高。两个传统的 Q4 GGUF 彼此一致。Bartowski Q4_K_L 测得 0.2218,Unsloth UD_Q4_K_XL 测得 0.2273,区间高度重叠。AWQ 和 NVIDIA 的混合 NVFP4 也几乎持平,分别为 0.2776 和 0.2807。
量化配方
| 量化配方 | 检查点权重量化 | 激活量化 | KV 缓存 |
|---|---|---|---|
| uns_UD_IQ3_XXS | 动态 2.0,IQ3_XXS 基础;来自校准的按张量类型 | 无 | 无 |
| bart_IQ3_XS | IQ3_XS imatrix 混合 | 无 | 无 |
| nvfp4_MTP_gguf | NVFP4 权重上的自定义张量混合;Q_K 张量上的 RSF 缩放拟合;MTP 张量为 NVFP4 | 无 | 无 |
| AutoRound_INT4 | INT4,对称,组大小 128 | 无 | 无 |
| uns_UD_Q4_K_XL | 动态 2.0,Q4_K 基础;来自校准的按张量类型 | 无 | 无 |
| bart_Q4_K_L | Q4_K imatrix 混合 | 无 | 无 |
| NVFP4_Text_MTP | NVFP4,组大小 16,静态缩放,所有 LM 线性层 | NVFP4,组大小 16,静态(W4A4) | 无 |
| AWQ_INT4 | INT4,非对称(int8 零点),组大小 32 | 无 | 无 |
| NVFP4 | mlp.* + lm_head 上的 NVFP4 组大小 16;self_attn.* 和 linear_attn.{in_proj_qkv,in_proj_z,out_proj} 上的 FP8 E4M3 | FP8 组上的静态 FP8(W8A8) | 静态 FP8 |
| uns_UD_Q5_K_XL | 动态 2.0,Q5_K 基础;来自校准的按张量类型 | 无 | 无 |
| uns_NVFP4 | 层 0-55 中 mlp.{gate,up,down}_proj 上的 NVFP4 组大小 16;层 56-63 中 self_attn.*、linear_attn.*、lm_head 和 mlp.* 上的按通道 FP8 E4M3 | NVFP4 组上的 NVFP4 组大小 16(W4A4);FP8 组上的动态逐 token FP8(W8A8) | 静态 FP8 |
| bart_Q6_K_L | Q6_K imatrix 混合 | 无 | 无 |
| uns_UD_Q6_K_XL | 动态 2.0,Q6_K 基础;来自校准的按张量类型 | 无 | 无 |
| bart_Q8_0 | 均匀 Q8_0 | 无 | 无 |
| qwen_FP8 | FP8 E4M3,128×128 权重块 | 动态逐 token FP8(W8A8) | 无 |
| uns_UD_Q8_K_XL | 动态 2.0,Q8_K 基础;来自校准的按张量类型 | 无 | 无 |
KL 数值的含义
在每一个提示位置,基准测试计算 D_KL(P_reference || P_quant):量化模型的下一个 token 分布与全精度分布的差异。零表示没有测量到变化;值越大表示参考分布被移动的部分越多。两个引擎都计算完整的全词表 softmax 概率,但每个位置仅使用前 200 个 log 概率。基准测试求解与两个测得的前 200 列表、它们剩余的概率预算以及未列出的量化 token 不能超过量化模型报告的最小概率这一事实相一致的最小 KL,从而得到全词表 KL 的下界。本次运行中,两个引擎的参考分布在前 200 之外的平均尾部质量为 0.0025。Top-1 一致性不依赖于尾部近似,可提供补充检查。Top-1 一致性是指量化模型与其参考模型在相同位置将最高概率分配给同一 token 的占比。
方法
每种量化都在其各自的引擎中与参考模型进行对比:GGUF 量化在 llama.cpp 下与 BF16 GGUF 参考进行比较。vLLM 量化在 vLLM 下与官方未量化的 BF16 safetensors 进行比较。我为自己创建了用于 KL 测量的数据集,最终是 100 个结构化的智能体工具使用对话,包含 182,306 个 token。提示长度从 1,700 到 1,950 个 token。量化检查点在未做更改的情况下运行,包括任何声明的计算数据类型、激活量化或 KV 缓存方案,以测量每个量化配方的真实保真度。大小测量包括 MTP/NextN 层,但不包括 KV/循环缓存、激活、工作空间、CUDA 图、运行时上下文和未加载的多模态组件。这不是总服务内存。请对这些测量结果持保留态度,因为它们在实际部署中会根据你的配置而有所不同。
实际要点
仅凭量化格式不足以预测质量。需要查看量化配方来判断它是否适合你的需求。激活量化可以在支持的硬件上提高吞吐量,但这会牺牲质量。如果优先考虑每加载 GiB 的质量,则测试的 GGUF 配方提供了最强的权衡。从结果来看,Qwen3.6 27B 的 GGUF Q5 似乎是甜点(最佳平衡点)。
最后说明
KLD 基准测试或许能够显示量化质量的相对差异,但这并不能完美地转化为现实世界中的性能。结果只是所测试量化配方之间的比较,并非 GGUF、AWQ、FP8 或 NVFP4 作为格式的通用排名。
相似文章
我们量化了 Qwen 3.8 27B 并在 RTX 6000 上比较了量化版本
团队将 Qwen 3.8 27B 量化为多种 GGUF 格式,并在 RTX 6000 上进行了基准测试,发现不同量化版本性能相似,推荐 AD-Q6_K 以保证安全性。
Qwen 3.6 27B AutoRound GGUF,需要您的反馈
一位用户分享了他们使用AutoRound对Qwen 3.6 27B进行GGUF量化的版本,声称其性能优于其他量化版本,并邀请反馈。
统计无损的 Qwen3.8 27B GGUF
kaitchup 发布了 Qwen3.8-27B 的统计无损 SLQ 量化 GGUF 版本,提供三种精度目标变体(EAR98、EAR98.5、EAR99),通过在 498 个矩阵上混合供体量化权重构建而成。
# Qwen 3.6 27B - VLLM 性能基准测试结果(BF16、FP8、NVFP4)
使用 VLLM 对 Qwen 3.6 27B 在 BF16、FP8 和 NVFP4 三种量化方式下的详细基准测试显示:NVFP4 在 token 生成方面最快,但 FP8 在提示处理方面表现最佳。本文还提供了针对编码任务选择合适量化的实用建议。
Qwen3.6-27B 量化基准测试
本文使用 KLD 和 Same Top P 指标,对多种 Qwen3.6-27B 量化版本(Q8 至 Q2)进行基准测试,对比了 Unsloth 和 mradermacher 等提供者的量化结果,并给出了质量与大小权衡的建议。