🦥Unsloth Dynamic 2.0 GGUF
当社の Dynamic 量子化への大きな新しいアップグレード!
当社のDynamic v2.0量子化手法を紹介できることを嬉しく思います — これは従来の量子化手法に対する大幅なアップグレードです。この新手法は主要な量子化手法を上回り、5-shot MMLUおよびKLダイバージェンスで新たなベンチマークを樹立します。
これは、精度をできるだけ維持したまま量子化された大規模言語モデル(LLM)を実行および微調整できることを意味します!2.0 GGUFはllama.cpp、Ollama、Open WebUIなどの任意の推論エンジンで実行できます。
2025年9月10日アップデート: より厳しいベンチマークを求められたので、Aider Polyglotの結果を紹介します!当社の動的3ビット DeepSeek V3.1 GGUFは 75.6%で、多くのフル精度のSOTA LLMを上回っています。 詳しく読む。
その 主要な利点 Unslothパッケージとモデルを使用することの利点の一つは、我々が積極的に関与していることです: 重大なバグの修正 主要モデルのバグ修正において積極的に関与しています。私たちは以下のチームと直接協力して、 Qwen3, Meta(Llama 4), Mistral(Devstral), Google(Gemma 1–3) および Microsoft(Phi-3/4)などに対して、精度を大幅に向上させる重要な修正を提供してきました。
ベンチマークと評価の詳細分析は以下をご参照ください。


💡 Dynamic v2.0の新機能は?
GGUFおよびsafetensorsのためのレイヤー選択を刷新: Unsloth Dynamic 2.0はレイヤーをより賢く、より広範に選択的に量子化します。特定のレイヤーのみを変更するのではなく、現在は可能なすべてのレイヤーの量子化タイプを動的に調整し、各レイヤーやモデルごとに組み合わせが異なります。
現在選択されているすべての将来のGGUFアップロードはDynamic 2.0と新しいキャリブレーションデータセットを利用します。このデータセットには150万件以上の トークン (モデルによって異なる)を含み、高品質で手作業で精査・クリーン化されたデータで構成されており、会話型チャット性能を大幅に向上させます。
以前は当社の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ビットのsafetensors量子化もこの恩恵を受けます。
📊 なぜKLダイバージェンスか?
Accuracy is Not All You Need(精度だけでは十分ではない) は、不要なレイヤーを選択して剪定しても「フリップ」に関して大きな差が生じうることを示します。「フリップ」とは不正解から正解、またはその逆に回答が変わることを指します。論文は、レイヤーを剪定したり量子化したりしてもMMLUが必ずしも低下しないことを示していますが、それは一部の誤った回答が「フリップ」して正しくなった可能性があるためです。我々の目標は元のモデルに一致させることであり、したがって「フリップ」を測定することは良い指標です。


KLダイバージェンスは であるべき 量子化誤差を報告するためのゴールドスタンダードです (論文「Accuracy is Not All You Need」による)。 パープレキシティを使用するのは誤りです 出力トークンの値が相殺されうるため、我々はKLDを使用する必要があります!
また論文は興味深いことにKLダイバージェンスがフリップと高い相関を持つことを示しており、我々の目標はKLダイバージェンスの平均を減らしつつ、量子化によるディスク使用量の増加をできるだけ抑えることです。
⚖️ キャリブレーションデータセットの過学習
ほとんどのフレームワークはWiki百科事典の記事のテストセットを使ってパープレキシティとKLダイバージェンスを報告します。しかし、キャリブレーションデータセットが同様にWikipedia関連であることを使用していると量子化が過学習し、パープレキシティが低く出ることに気付きました。我々は Calibration_v3 および Calibration_v5 といったデータセットを公平なテストのために利用しており、これらには一部のwikitextデータなどが含まれます。 また、instructモデルは独自のチャットテンプレートを持っており、テキストのみのキャリブレーションデータセットはinstructモデルには効果的ではありません (ベースモデルには有効です)。実際、多くのimatrix GGUFは通常これらの問題でキャリブレーションされており、その結果としてモデルは本質的にそのドメインに最適化されているため、Wikipediaデータを使用するKLダイバージェンスベンチマークで自然と良い成績を出します。
公平で制御された評価を確実にするため、我々はKLダイバージェンスのベンチマーク時にチャット性能向けに最適化された独自のキャリブレーションデータセットを使用しません。代わりに標準のWikipediaデータセットを用いてテストを行い、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実装で67.8%の5-shot精度を持ちます。しかし我々はLlamaが "A" と "_A"(先頭にスペースがあるA)を異なるトークンIDとしてトークナイズすることを確認しました。もしスペースありとなしのトークン両方を考慮すると、68.2%になります (+0.4%)
興味深いことにEleuther AIの LLM Harness もまた "The best answer is"(最良の回答は) を質問に付加しており、これはLlama 3の元のMMLUベンチマークに従ったものです。
他にも多くの微妙な問題があり、すべてを制御された環境でベンチマークするために、我々は独自のMMLU実装を最初から設計し、 github.com/hendrycks/test を直接調査し、複数モデルで報告値と比較して結果を検証しました。
✨ Gemma 3 QATの再現とベンチマーク
GemmaチームはGemma 3の2つのQAT(量子化認識訓練)バージョンを公開しました:
Q4_0 GGUF - 各ブロックに32個の重みを持ち、以下の式で全レイヤーをQ4_0に量子化します
w = q * block_scale各ブロックが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%(67.15% BF16)
70.64%(71.5% BF16)
ディスク容量
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ダイバージェンス比率の変化をプロットすれば、より明確な利点が見えます!当社の動的2ビット Q2_K_XLはKLDをかなり削減します(約7.5%程度)。
Gemma 3(27B)のMMLU結果の抜粋テーブル。以下を参照してください。
我々の動的4ビット版はQAT版に比べて2GB小さく、かつ精度が+1%高いです!
効率の観点では、2ビットの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
ここをクリック GoogleのGemma 3(27B)QATベンチマーク全文:
IQ1_S
41.87
43.37
6.06
3.03
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
68.50
67.60
9.78
4.35
Q2_K_XL
68.70
67.77
9.95
4.30
IQ3_XXS
68.27
67.07
10.07
4.18
Q3_K_M
70.70
69.77
12.51
3.58
Q3_K_XL
70.87
69.50
12.76
3.49
Q4_K_M
71.23
71.00
15.41
2.98
Q4_K_XL
71.47
71.07
15.64
2.94
Q5_K_M
71.77
71.23
17.95
2.58
Q6_K
71.87
71.60
20.64
2.26
Q8_0
71.60
71.53
26.74
1.74
Google QAT
70.64
17.2
2.65
🦙 Llama 4のバグ修正と実行
我々はLlama 4のいくつかのバグ修正も手伝いました:
Llama 4 Scoutは公式リポジトリでRoPEスケーリング構成を変更しました。我々はこれを有効にするためにllama.cppの問題解決を支援しました ここでの変更

Llama 4のQKノルムのイプシロンはScoutとMaverickの両方で設定ファイルから取るべきで、これは1e-05を使い1e-06ではないことを意味します。我々はこれらを解決するのを支援しました llama.cpp および transformers
Llama 4チームとvLLMも独立して、QKノルムがすべてのヘッドで共有されているという問題を修正しました(共有されるべきではありません) ここ。MMLU Proは68.58%から71.53%に向上しました。
Wolfram Ravenwolf は当社のGGUFをllama.cpp経由で実行した場合がサードパーティの推論プロバイダよりもはるかに高い精度を達成することを示しました — これは上で説明した問題の組み合わせや、量子化の問題が原因である可能性が高いです。

当社のグラフが示すように、当社の4ビット動的QAT量子化は5-shot MMLUでより良い性能を発揮し、かつサイズも小さくなります。
Llama 4 Scoutの実行:
例えばLlama 4 Scoutを実行するには、まずllama.cppをクローンします:
次に我々の新しいDynamic v2.0量子化をScout向けにダウンロードします:
それでは推論を実行しましょう!
Llama 4の実行に関する詳細はこちら: https://docs.unsloth.ai/basics/tutorial-how-to-run-and-fine-tune-llama-4
最終更新
役に立ちましたか?

