我們 Dynamic Quants 的重大新升級!

我們很高興推出 Unsloth Dynamic v2.0 量化技術——這是我們先前量化技術的重大升級。這種新方法在多項基準測試中表現優於領先的量化方法,並為 Aider Polyglot、5-shot MMLU 和 KL Divergence 樹立了新的標竿。

這意味著您現在可以在盡可能保留準確度的同時,運行和微調量化後的 LLM!您可以在 llama.cpp、Unsloth Studio 等大多數推理引擎上運行 2.0 GGUFs。

2026 年 4 月 20 日更新:請參閱我們針對 Qwen3.6 和 Gemma 4 的新 GGUF 基準測試。

2026 年 2 月 27 日更新:Qwen3.5 已發布,我們修復了一些工具呼叫聊天範本問題,並對每個 GGUF 在困惑度 (perplexity) 和 KL Divergence 上進行了基準測試。請參閱基準測試!

使用 Unsloth 套件和量化技術的關鍵優勢在於我們積極修復主要模型中錯誤的角色。我們直接與 Qwen3、Meta (Llama 4)、Mistral (Devstral)、Google (Gemma 1–3) 和 Microsoft (Phi-3/4) 背後的團隊合作,貢獻了提高準確度的修復。

Unsloth Dynamic GGUFs 現在可以在 Unsloth Studio 中運行 ✨

2025 年 9 月 10 日更新:您要求更嚴格的基準測試,因此這裡提供 Aider Polyglot 的結果!我們的 Dynamic 3 位元 DeepSeek V3.1 GGUF 獲得 75.6% 的分數,超越了許多全精度 SOTA LLM。閱讀更多。

您也可以查看 Benjamin Marie 為 LiveCodeBench v6、MMLU Pro 等進行的實際用例基準測試:

您可以發現 Unsloth 的 GGUFs 儘管比非 Unsloth 的量化版本小約 8GB,但表現卻更好。

我們基準測試和評估的詳細分析將在下方進一步說明。

GGUFs + safetensors 的重塑層級選擇:Unsloth Dynamic 2.0 現在能更智慧、更廣泛地選擇性量化層級。我們不再僅修改選定的層級,而是動態調整每個可能層級的量化類型,並且組合會因每個層級和模型而異。

目前選定和所有未來的 GGUF 上傳都將採用 Dynamic 2.0 和我們新的校準數據集。該數據集包含超過 150 萬個 token(取決於模型),由高品質、手工挑選和清理的數據組成——以極大提升對話聊天效能。

先前,我們的 Dynamic 量化技術(DeepSeek-R1 1.58 位元 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 位元 safe tensor 量化技術將來也會受益於此。

Accuracy is Not All You Need 展示了即使透過選擇不必要的層級來修剪層級,仍然會在「翻轉」(flips)方面產生巨大差異。「翻轉」定義為答案從錯誤變為正確或反之。該論文顯示,儘管我們修剪層級或進行量化,MMLU 可能不會下降,但這是因為一些錯誤的答案可能已經「翻轉」變為正確。我們的目標是匹配原始模型,因此測量「翻轉」是一個很好的指標。

根據研究論文「Accuracy is Not All You Need」,KL Divergence 應該是報告量化錯誤的黃金標準之一。使用困惑度是不正確的,因為輸出 token 值可能會相互抵消,所以我們必須使用 KLD 或更嚴格的基準測試,如 Aider。

該論文還有趣地指出,KL Divergence 與翻轉高度相關,因此我們的目標是在盡可能不增加量化檔案大小的情況下,降低平均 KL Divergence。

大多數框架使用維基百科文章的測試集來報告困惑度和 KL Divergence。然而,我們注意到使用與校準數據集(也與維基百科相關)會導致量化過度擬合,並獲得較低的困惑度分數。我們使用 Calibration_v3 和 Calibration_v5 數據集進行公平測試,其中包含一些 wikitext 數據以及其他數據。此外,指令模型有獨特的聊天範本,僅使用文本校準數據集對指令模型無效(但對基礎模型有效)。事實上,大多數 imatrix GGUF 通常都是在這些問題下進行校準的。因此,它們在也使用維基百科數據的 KL Divergence 基準測試上自然表現更好,因為模型本質上是針對該領域進行優化的。

為了確保公平且受控的評估,我們在進行 KL Divergence 基準測試時,不使用我們自己的校準數據集(該數據集針對聊天效能進行了優化)。相反,我們使用相同的標準維基百科數據集進行測試,使我們能夠直接比較我們的 Dynamic 2.0 方法與基準 imatrix 方法的效能。

重現 MMLU 5 shot 的過程非常艱難。由於細微的實現問題,我們無法重現許多模型(包括 Llama 3.1 (8B) Instruct、Gemma 3 (12B) 等)的 MMLU 結果。例如,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 團隊發布了 Gemma 3 的兩個 QAT(量化感知訓練)版本:

Q4_0 GGUF - 透過公式 w = q * block_scale 將所有層級量化為 Q4_0,每個區塊有 32 個權重。更多細節請參閱 llama.cpp wiki。

int4 版本 - 可能是 TorchAO int4 風格?

我們對所有 Q4_0 GGUF 版本進行了基準測試,並對 12B 模型進行了廣泛的實驗。我們看到 12B Q4_0 QAT 模型在 5 shot MMLU 上獲得 67.07% 的分數,而全 bfloat16 12B 版本獲得 67.15%。這非常令人印象深刻!27B 模型也幾乎達到了這個水平!

我們設計了一個新的效率指標,該指標在考慮檔案大小和 MMLU 5 shot 分數的同時,計算模型的實用性:

我們必須減去 25,因為 MMLU 有 4 個多項選擇——A、B、C 或 D。假設我們創建一個僅隨機選擇答案的模型,它的準確度將為 25%,檔案大小僅為幾個字節。但顯然這不是一個有用的模型。

與基礎模型相比,在 KL Divergence 方面,下表展示了改進之處。提醒您,KL Divergence 越接近 0 越好(即 0 表示與全精度模型相同)。

如果我們繪製檔案大小增加比例與 KL Divergence 變化比例的圖表,我們可以更清楚地看到好處!我們的 dynamic 2 位元 Q2_K_XL 大幅降低了 KLD(約 7.5%)。

Gemma 3 (27B) 的 MMLU 結果截斷表格。請參閱下方。

我們的 dynamic 4 位元版本比 QAT 版本小 2GB,同時準確度卻提高了 1%!

效率方面,2 位元 Q2_K_XL 等似乎表現非常好!

我們還協助修復了幾個 Llama 4 錯誤:

Llama 4 Scout 在其官方儲存庫中更改了 RoPE Scaling 配置。我們協助解決了 llama.cpp 中的問題,以啟用此變更,連結在此。

Llama 4 的 QK Norm 的 epsilon,對於 Scout 和 Maverick,都應該來自配置文件——這意味著使用 1e-05 而不是 1e-06。我們協助在 llama.cpp 和 transformers 中解決了這些問題。

Llama 4 團隊和 vLLM 也獨立修復了 QK Norm 在所有頭之間共享的問題(不應該這樣),連結在此。MMLU Pro 的準確度從 68.58% 提高到 71.53%。

Wolfram Ravenwolf 展示了我們的 GGUF 如何透過 llama.cpp 獲得比第三方推理提供者高得多的準確度——這很可能是上述問題的組合,也可能是由於量化問題。

如我們的圖表所示,我們的 4 位元 Dynamic QAT 量化在 5-shot MMLU 上提供了更好的效能,同時檔案大小也更小。

例如,要運行 Llama 4 Scout,首先克隆 llama.cpp:

然後下載我們為 Scout 新推出的 dynamic v2.0 量化版本: