进阶 unsloth.ai 2026-10-07 22:27:00 · 6 阅读

第34章 Unsloth 发布 Dynamic v2.0 量化方案,支持主流大模型精度提升

unsloth 下载 ☰ 下载 博客 Unsloth Dynamic 2.0 GGUF 2025年4月24日 • 作者:Daniel & Michael 2025年4月24日 • 作者:Daniel & Michael 我们很高兴推出 Dynamic v2.0 量化方法——这是对之前量化方案的一次重大升级。新方法的表现超越了目前主流的量化方案,在 5-shot MMLU 和 KL 散度两项指标上刷新了纪录。
这意味着你现在可以运行和微调量化后的 LLM,同时尽可能保留模型的精度!这些 v2.0 GGUF 可以在 llama.cpp、Ollama、Open WebUI 等任何推理引擎上运行。
点击这里查看我们的 Dynamic v2.0 GGUF。 🦥 Dynamic 2.0 有哪些新变化? 重新设计的 GGUF + safetensors 层选择策略:Unsloth Dynamic 2.0 现在能更智能、更全面地选择性量化各层。我们不再只修改特定层,而是动态调整每一层的量化类型,且每层、每个模型的量化组合都不相同。 当前已发布的及今后所有 GGUF 上传都将采用 Dynamic 2.0 和我们新的校准数据集。该数据集规模在 30 万到 150 万 token 之间(视模型而定),由高质量、人工筛选和清洗的数据组成,可大幅提升对话聊天表现。 此前,我们的 Dynamic 量化(DeepSeek-R1 1.58-bit GGUF)仅适用于 MoE 架构。而 Dynamic 2.0 量化现已支持所有模型(包括 MoE)。 针对模型的定制量化:每个模型现在都使用量身定制的量化方案。例如,Gemma 3 中被量化的层与 Llama 4 中的差异很大。 为了保证基准测试的准确性,我们搭建了内部评测框架,其结果与 Llama 4 和 Gemma 3 官方公布的 5-shot MMLU 分数一致。这样就能在全精度模型、Dynamic v2.0、QAT 以及标准 imatrix GGUF 量化之间进行公平对比。

我们的 Dynamic 2.0 GGUF 模型现已在 Hugging Face 上线。已更新量化版本的模型包括:DeepSeek-R1、DeepSeek-V3-0324、Gemma 3(12B 和 27B)以及 Llama 4(Scout)。 📊 基准测试与评估 这里是简要总结,详细分析见下文,也可以阅读我们文档中的完整分析。

我们使用 5-shot MMLU 测试,在 Google 新发布的 Gemma 3 QAT 量化模型(12B 和 27B)以及 Llama 4(Scout)等模型上,将 Dynamic 2.0 与我们早期的 Dynamic 方法以及其他主流量化方案(如标准 imatrix)进行了对比评测。

在测试量化模型之前,我们先用多个开源框架评估了未经量化的 Gemma 3 和 Llama 4。结果全部失败,无法复现官方报告的 MMLU 分数(Gemma 3 为 78.6,Llama 4 为 79.6),因此我们需要自建评估框架。建成更可靠、标准化的自有评估框架后,我们成功将结果误差控制在 0.1 分以内,与报告分数对齐。

基于这套经过验证的评估框架,我们得以开展正确的 5-shot MMLU 基准测试,这是耗时但有效的 LLM 准确率/性能指标。KL 散度和困惑度等指标虽有用,却远不适合用于准确率测试。

我们的结果证明,Dynamic 2.0 在准确率、效率和一致性上均持续优于其他量化方法。⚖️ 校准数据集过拟合大多数框架使用维基百科文章测试集来计算困惑度和 KL 散度。但我们发现,若使用同样涉及维基百科的校准数据集,会导致量化模型过拟合,从而获得更低的困惑度分数。我们为公平测试采用了 Calibration_v3 和 Calibration_v5 数据集,其中混杂了 wikitext 及其他类型数据。此外,指令模型拥有独特的聊天模板,仅使用纯文本校准数据集对指令模型效果不佳(对基座模型则有效)。事实上,多数 imatrix GGUF 文件都存在上述校准缺陷。因此,由于模型本质上已针对该领域优化,它们在同样基于维基百科数据的 KL 散度基准测试中自然会表现得更好。

为确保评估的公平性与可控性,在测试 KL 散度时,我们没有使用针对聊天性能优化的自有校准数据集,而是采用标准的维基百科数据集进行测试。这使得我们能够将 Dynamic 2.0 方法与基线 imatrix 方法的表现进行直接对比。🔢 MMLU 复现记趣 复现 MMLU 5-shot 过程堪称一场噩梦。由于实现细节存在细微差异,我们未能复现多个模型(包括 Llama 3.1 8B Instruct、Gemma 3 12B 等)的 MMLU 结果。以 Llama 3.1 8B 为例,其准确率应约为 68.2%,但使用不正确的实现方法时,准确率可能仅为 35%。Llama 3.1 8B Instruct 在采用朴素 MMLU 实现时,MMLU 5-shot 准确率为 67.8%。然而我们发现,Llama 将带前置空格的 "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 - 通过公式 $ w = q \times \text{block\_scale} $ 将所有层量化为 Q4_0,每个 block 包含 32 个权重。更多细节请参考 llama.cpp wiki。 int4 版本 - 推测为 TorchAO int4 风格?我们测试了所有 Q4_0 GGUF 版本,并对 12B 模型进行了大量实验。结果表明,12B Q4_0 QAT 模型在 5-shot MMLU 上达到 67.07%,而全精度 bfloat16 12B 版本为 67.15%,这一表现相当出色! 指标 1B 4B 12B 27B MMLU 5-shot 26.12% 55.13% 67.07% (67.15% BF16) 70.64%
(占 BF16 的 71.5%) 磁盘占用 0.93 GB 2.94 GB 7.52 GB 16.05 GB 效率* 1.20 10.26 5.59 2.84 我们设计了一个新的"效率"指标,用来衡量模型的实用性,同时把磁盘大小和 MMLU 5 shot 分数也考虑进去: 效率 = MMLU 5 shot 分数 − 25 磁盘占用 GB 之所以要减去 25,是因为 MMLU 有 A、B、C、D 四个选项。假设我们造一个纯随机选答案的模型,它能拿到 25% 的准确率,而磁盘占用只有几个字节——但这显然没什么用。

在基线模型上计算 KL 散度,下表展示了各项指标的提升情况。请留意,KL 散度越接近 0 越好(即 0 代表与全精度模型完全一致)。 Quant Baseline KLD Baseline GB New KLD New GB 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.265540 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 显著降低了 KL 散度(约 7.5%)。🦙 Llama 4 的 Bug 修复 对于 Llama 最大的视觉模型,我们观察到一些尖峰,但程度并不严重。11B 模型中出现的交叉注意力(cross attention)现象在这里要温和得多。 Llama 4 Scout 在其官方仓库中更改了 RoPE Scaling 配置。我们协助解决了 llama.cpp 中的相关问题,以支持这一变更。 Llama 4 中 Scout 和 Maverick 的 QK Norm epsilon 值应取自配置文件,这意味着应使用 1e-05 而非 1e-06。我们在 llama.cpp 和 transformers 中协助解决了这些问题。 Llama 4 团队和 vLLM 也独立修复了 QK Norm 在所有注意力头(heads)间共享的问题(原本不应共享),链接在此。MMLU Pro 的准确率从 68.58% 提升至 71.53%。 Wolfram Ravenwolf 展示了通过 llama.cpp 加载我们的 GGUF 文件时,准确率远高于第三方推理提供商——这很可能是上述多个问题共同作用的结果,同时也可能与量化问题有关。 💕 感谢阅读! 一如既往,衷心感谢所有使用并分享 Unsloth 的朋友,我们深表感激。🙏

欢迎访问我们的 Reddit 页面和 Discord 服务器,获取帮助或表达支持!你还可以关注我们的 Twitter 账号并订阅我们的通讯。 Daniel & Michael Han 🦥
2025 年 4 月 24 日 多模态微调 免费开始使用 加入我们的 Discord

评论 (0)