🦥Unsloth 动态 3.0 GGUF
Unsloth 动态 v3.0 是我们动态量化的下一代版本,相比 Dynamic v2.0 有重大改进。
今天,我们发布 Qwen3.8-27B Dynamic v3.0 量化版本,带来 >10% 在相同大小下的 top-1% 准确率提升 相较于 其他所有提供方。这是我们首次共享的 早期预览 版 Dynamic v3.0。新的 3.0 GGUF 可与大多数推理引擎兼容,包括 llama.cpp 和 Unsloth Desktop.
Dynamic v3.0 整体在保持相同大小的同时保留了更多模型质量,在以下指标上表现更强,如 Divergence-300 @32 和 KL Divergence.
也非常感谢大家的支持!我们在短短 5 天内就看到了超过 510 万次 Unsloth Qwen3.8 下载!

我们新的方法包含许多新特性和改进。我们现在使用来自多种来源、质量更高的 imatrix 校准数据集。该数据集经过优化,适用于 agentic 编码、聊天以及多语言性能。我们还改进了 层选择 并引入了更多量化技术,以尽可能保留模型质量。
我们 不会在 imatrix 校准数据集上训练,并且我们绝不使用 QAT 或 QAD。所有操作都通过 训练后量化完成。我们使用的 imatrix 文件已开放给社区进行测试、评估和使用。我们鼓励研究人员和开发者基于我们的 Unsloth 量化版本/imatrix 为 Qwen3.8 创建变体和微调。你也可以阅读我们的 过拟合分析 。
我们还从
UD-Q2_K_XL以下的小型量化版本中移除了 MTP 模块(8.37GB 及以下),以节省约 500MB 磁盘空间 - 如有需要,你可以使用Q4_0单独的 MTP 模块我们还制作了一些更小的 UD-1bit 量化版本,使用
UD-IQ1_S,大小为 6.2GB(不含 MTP),保留了约 72% 的 top-1% 准确率,同时体积缩小了 89%。UD-Q2_K_XL在 top-1% 上比下一个最佳方案大约准确 +8%,大小为 9.83GB,并成功生成了一个可运行的 HTML 程序,仅有一个很小的 JS bug——之前会崩溃。

🔀 Divergence-300 @32
我们通常报告 top-1% 准确率,就像对于 Kimi-K3,“Dynamic 1-bit 达到 ~78.9% top-1 准确率,同时体积为 缩小 62%。”不过 top-1% 是对 1 个预测取 argmax,因此它并不真正适合衡量实际推理效果。
我们创建了一个包含 300 个保留样本(不在校准数据集中) 的数据集,来源于 Terminal-Bench 2.1 + DeepSWE + Harbor + MathArena 2025-26 + 非拉丁语/长文档提示,并对 BF16 与所有量化版本及提供方进行了 32 个 token 的贪婪 argmax 解码。详见 过拟合分析 以了解更多关于过拟合的细节。
这使我们能够判断是否存在过拟合,以及量化输出在多个 token 上是否与 BF16 的轨迹相似。这比 top-1% 准确率更好的指标,因为我们将 KLD top-1% 扩展到更接近 32 个 token 上的 KLD top-1%。

❓1-bit 不应用于 agentic 用例
如在 🔀 Divergence-300 @32中所示,从 UD-Q2_K_XL 到 UD-IQ2_S,在 32 token 预测上的准确率会急剧下降,从约 25% 降至不足 8-10%。这种骤降意味着工具调用和非思考模式会失效。如果使用 1-bit,存在一些问题和缓解措施:
过度循环 使用低于 UD-Q2_K_XL 的量化版本时,你会看到大量循环——请在所有情况下使用
presence_penalty = 1.5(或更高)空响应 对于 1-bit 量化版本,务必至少在 low reasoning 模式下启用思考——非推理模式甚至会导致模型根本不输出。
Agentic 用例和工具调用 不要将该模型用于工具调用——只 在重度量化时保留通用知识 ,模型要么无法调用工具,要么持续调用工具,要么甚至不会调用。
通用知识可用 77% 的 top-1% 恢复率并不能替代 Divergence-300 @32 的 8%,后者更能反映实际推理工作负载——你可以将该模型用于非常短的通用知识事实问答,但最好使用 UD-Q2_K_XL。
🔀 KL 散度基准测试
我们也对所有提供方运行了 KLD 基准测试,并报告 Top-1% 和 KLD 均值。在所有层级,尤其是在更小的量化尺寸上,Unsloth UD-3 量化版本在相同磁盘空间下可获得高达 +10% 的额外 top-1% 准确率!
所有图在计算磁盘空间时都会从 x 轴中移除 MTP head,以便与所有人公平比较。


🕊️不过拟合
与我们旧的 UD-2 在未见过的 Wikitext 和 Code 数据上比较时,我们在 KLD 上展示了显著改进——但较大的版本提升不那么明显,因此对于更大的量化版本我们仍然使用旧的 UD-2——我们计划继续实验并改进它们!
我们还通过使用完全不同的数据集进行校准来控制过拟合,并尽可能移除所有泄漏。我们在这些未见过的数据集上测试 KLD,而且我们也不做 QAD / QAT,只做纯 PTQ,因此与其他 QAD / QAT 方法相比,对过拟合的担忧更少。

同样 🔀 Divergence-300 @32 使用了来自 DeepSWE、Terminal Bench 等的 300 个提示的未见过数据集,并作为另一个衡量过拟合的数据集——结果表明我们的新 UD-3 方法没有过拟合。
Dynamic v2.0(旧版)
我们正在推出 Unsloth Dynamic v2.0 量化——对我们之前量化版本的一次重大升级。此新方法优于领先的量化方法,并为以下项目设定了新的基准: Aider Polyglot、5-shot MMLU 和 KL 散度。
这意味着你现在可以运行并微调 量化 LLM ,同时尽可能保留准确率!你可以在大多数推理引擎上运行 2.0 GGUF,比如 llama.cpp、 Unsloth Studio 等。
2026年4月20日更新: 查看我们针对以下内容的新 GGUF 基准测试: Qwen3.6 和 Gemma 4.
2026年2月27日更新: Qwen3.5 已发布,我们修复了一些工具调用聊天模板问题,并对每个 GGUF 进行了困惑度和 KL 散度基准测试。 查看基准测试!
使用 的关键优势 的 Unsloth 套件 和量化版本在于我们积极参与修复主流模型中的 bug。我们直接与以下团队合作: Qwen3, Meta(Llama 4), Mistral(Devstral), 谷歌(Gemma 1–3) 和 微软(Phi-3/4),贡献了提高准确率的修复。


Unsloth Dynamic GGUF 现在可以在 Unsloth Studio ✨

2025年9月10日更新: 你们要求更严苛的基准测试,所以这里是 Aider Polyglot 结果!我们的 Dynamic 3-bit DeepSeek V3.1 GGUF 得分 75.6%,超过了许多全精度 SOTA LLM。 阅读更多。


你也可以查看 Benjamin Marie 针对 LiveCodeBench v6、MMLU Pro 等进行的真实世界用例基准测试:


你可以看到,尽管体积约小 8GB,Unsloth 的 GGUF 表现仍优于非 Unsloth 量化版本。
我们对基准测试和评估的详细分析见下文。
💡 Dynamic v2.0 有哪些新内容?
GGUF + safetensors 的层选择全面改造: Unsloth Dynamic 2.0 现在会更智能、更广泛地有选择性地对层进行量化。我们不再只修改少数选定层,而是动态调整每个可能层的量化类型,并且不同层和不同模型的组合会有所不同。
当前选定的以及未来所有 GGUF 上传都将采用 Dynamic 2.0 和我们的新校准数据集。该数据集包含超过 >1.5M 个 token (取决于模型),并由高质量、人工筛选和清洗过的数据组成——从而大幅提升对话聊天性能。
此前,我们的 Dynamic 量化(DeepSeek-R1 1.58-bit GGUF)仅对 MoE 架构有效。 Dynamic 2.0 量化现在适用于所有模型(包括 MoE 和非 MoE).
模型特定量化: 每个模型现在都使用量身定制的量化方案。例如,Gemma 3 中被量化的层与 Llama 4 中的层差异显著。
为了最大化效率,尤其是在 Apple Silicon 和 ARM 设备上,我们现在还添加了 Q4_NL、Q5.1、Q5.0、Q4.1 和 Q4.0 格式。
为确保基准测试准确,我们构建了一个内部评估框架,使其与 Llama 4 和 Gemma 3 官方报告的 5-shot MMLU 分数匹配。这让我们能够对全精度与 Dynamic v2.0 进行苹果对苹果的比较, QAT 以及标准 imatrix GGUF 量化版本。


未来所有 GGUF 上传都将采用 Unsloth Dynamic 2.0,而我们的 Dynamic 4-bit safetensor 量化版本在未来也会从中受益。
📊 为什么是 KL 散度?
准确率并非你所需要的一切 展示了即便通过选择不必要的层进行剪枝,在“翻转”方面仍会产生巨大差异。“翻转”定义为答案从错误变为正确,或从正确变为错误。论文表明,当我们剪枝层或进行量化时,MMLU 可能不会下降,但那是因为某些错误答案可能“翻转”成了正确答案。我们的目标是匹配原始模型,因此衡量“翻转”是一个很好的指标。


论文还表明,KL 散度与翻转高度相关,因此我们的目标是在尽可能少增加量化磁盘空间的同时,降低平均 KL 散度。
⚖️ 校准数据集过拟合
大多数框架使用维基百科文章测试集来报告困惑度和 KL 散度。不过,我们注意到,使用同样与维基百科相关的校准数据集会导致量化版本过拟合,并获得更低的困惑度分数。我们使用 Calibration_v3 和 Calibration_v5 数据集进行公平测试,其中除了其他数据外还包括一些 wikitext 数据。 此外,指令模型有独特的聊天模板,而仅使用文本的校准数据集对指令模型并不有效 (基础模型可以)。事实上,大多数 imatrix GGUF 通常都带有这些问题进行校准。因此,它们在也使用维基百科数据的 KL 散度基准测试上自然表现更好,因为模型实际上是针对该领域进行了优化。
为确保公平且受控的评估,在进行 KL 散度基准测试时,我们不会使用我们自己的校准数据集(它是为聊天性能优化的)。相反,我们使用相同的标准维基百科数据集进行测试,从而能够直接比较我们的 Dynamic 2.0 方法与基线 imatrix 方法的性能。
🔢 MMLU 复现之旅
复现 MMLU 5-shot 简直是噩梦。我们 无法 复现许多模型的 MMLU 结果,包括 Llama 3.1(8B)Instruct、Gemma 3(12B)等,原因在于 细微的实现问题。例如,Llama 3.1(8B)理论上应达到约 68.2%,而使用错误实现时只能达到 35% 的准确率。

使用朴素的 MMLU 实现,Llama 3.1(8B)Instruct 的 MMLU 5-shot 准确率为 67.8%。不过我们发现 Llama 将“A”和“_A”(前面带空格的 A)标记为不同的 token id。如果我们同时考虑有空格和无空格的 token,就能得到 68.2% (+0.4%)
有趣的是,按照 Eleuther AI 的 LLM Harness Llama 3 还会附加 “The best answer is” 到问题中,遵循 Llama 3 原始的 MMLU 基准测试。
还有许多其他细微问题,因此为了在受控环境中对所有内容进行基准测试,我们通过直接研究 github.com/hendrycks/test 并在多个模型上验证结果、与报告数值进行比较,从零开始设计了我们自己的 MMLU 实现。
✨ Gemma 3 QAT 复现,基准测试
Gemma 团队发布了两个 Gemma 3 的 QAT(量化感知训练)版本:
Q4_0 GGUF - 通过公式将所有层量化为 Q4_0
w = q * block_scale,每个 block 有 32 个权重。详见 llama.cpp wiki 了解更多细节。int4 版本——大概是 TorchAO int4 风格?
我们对所有 Q4_0 GGUF 版本进行了基准测试,并对 12B 模型进行了广泛实验。我们看到 12B Q4_0 QAT 模型得分 67.07% 而全 bfloat16 12B 版本在 5-shot MMLU 上得分 67.15%。这非常令人印象深刻!27B 模型基本已经非常接近了!
MMLU 5-shot
26.12%
55.13%
67.07%(BF16 为 67.15%)
70.64%(BF16 为 71.5%)
磁盘空间
0.93GB
2.94GB
7.52GB
16.05GB
效率*
1.20
10.26
5.59
2.84
我们设计了一个新的 效率指标 用于计算模型的实用性,同时考虑其磁盘大小和 MMLU 5-shot 分数:
我们必须 减去 25 因为 MMLU 有 4 个选项——A、B、C 或 D。假设我们做出一个只会随机选择答案的模型——它会得到 25% 准确率,而且磁盘空间只有几字节。但显然这不是一个有用的模型。
下面是一张关于相对于基础模型的 KL 散度的表格,展示了改进。提醒一下,KL 散度越接近 0 越好(即 0 表示与全精度模型完全相同)
IQ1_S
1.035688
5.83
0.972932
6.06
IQ1_M
0.832252
6.33
0.800049
6.51
IQ2_XXS
0.535764
7.16
0.521039
7.31
IQ2_M
0.26554
8.84
0.258192
8.96
Q2_K_XL
0.229671
9.78
0.220937
9.95
Q3_K_XL
0.087845
12.51
0.080617
12.76
Q4_K_XL
0.024916
15.41
0.023701
15.64
如果我们绘制磁盘空间增加与 KL 散度变化比率的图,就能看出更明显的收益!我们的动态 2bit Q2_K_XL 将 KLD 降低了不少(约 7.5%)。
Gemma 3(27B)的 MMLU 结果截断表。见下方。
我们的动态 4bit 版本小 2GB,同时相比 QAT 版本额外提高了 1% 的准确率!
从效率角度看,2bit Q2_K_XL 等表现似乎非常好!
IQ1_M
48.10
47.23
6.51
3.42
IQ2_XXS
59.20
56.57
7.31
4.32
IQ2_M
66.47
64.47
8.96
4.40
Q2_K_XL
68.70
67.77
9.95
4.30
Q3_K_XL
70.87
69.50
12.76
3.49
Q4_K_XL
71.47
71.07
15.64
2.94
Google QAT
70.64
17.2
2.65
🦙 Llama 4 Bug 修复 + 运行
我们还帮助修复了一些 Llama 4 bug:
Llama 4 Scout 在其官方仓库中更改了 RoPE Scaling 配置。我们帮助在 llama.cpp 中解决了使此 更改生效的问题

Llama 4 的 QK Norm 中 Scout 和 Maverick 的 epsilon 应该来自配置文件——这意味着应使用 1e-05 而不是 1e-06。我们帮助在 llama.cpp 和 transformers
Llama 4 团队和 vLLM 也独立修复了 QK Norm 在所有 head 之间共享的问题(本不应如此) 这里。MMLU Pro 准确率从 68.58% 提高到 71.53%。
Wolfram Ravenwolf 展示了我们通过 llama.cpp 提供的 GGUF 相比第三方推理提供方能达到高得多的准确率——这很可能是上述问题的综合作用,也可能部分由于量化问题。

如我们的图所示,我们的 4-bit Dynamic QAT 量化在 5-shot MMLU 上提供了更好的性能,同时体积也更小。
运行 Llama 4 Scout:
例如,要运行 Llama 4 Scout,首先克隆 llama.cpp:
然后为 Scout 下载我们的新 dynamic v 2.0 量化版本:
然后让我们进行推理!
在这里阅读更多关于运行 Llama 4 的内容: https://docs.unsloth.ai/basics/tutorial-how-to-run-and-fine-tune-llama-4
最后更新于
这有帮助吗?

