# Unsloth Dynamic 2.0 GGUF

ご紹介できることを嬉しく思います [Unsloth](https://github.com/unslothai/unsloth) Dynamic v2.0 量子化 - 以前の量子化版からの大幅なアップグレードです。この新しい手法は主要な量子化手法を上回り、次の分野で新たなベンチマークを打ち立てます [Aider Polglot](/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.md)、5-shot MMLU、および KL Divergence。

これにより、今では + ファインチューニングを実行できます [量子化された LLM](/docs/jp/moderu/tutorials.md) 可能な限り精度を維持しながらです！ 2.0 GGUF は llama.cpp や [Unsloth Studio](/docs/jp/xin-zhe/studio.md) など、ほとんどの推論エンジンで実行できます。

{% columns %}
{% column %}
**2026年4月20日 更新:** 新しい GGUF ベンチマークをご覧ください [Qwen3.6](/docs/jp/moderu/qwen3.6.md#unsloth-gguf-benchmarks) および [Gemma 4](/docs/jp/moderu/gemma-4.md#unsloth-gguf-benchmarks).

[2026年2月27日 更新:](/docs/jp/moderu/qwen3.5/gguf-benchmarks.md) **Qwen3.5** が公開され、いくつかのツール呼び出し用チャットテンプレートの問題を修正し、すべての GGUF を perplexity と KL Divergence でベンチマークしました。 [ベンチマークを見る！](/docs/jp/moderu/qwen3.5/gguf-benchmarks.md)

その **主な利点** を使うことの [Unsloth パッケージ](https://github.com/unslothai/unsloth) と量子化版の利点は、主要モデルのバグ修正において私たちが積極的な役割を果たしていることです。私たちは次のチームと直接協力してきました [Qwen3](https://www.reddit.com/r/LocalLLaMA/comments/1kaodxu/qwen3_unsloth_dynamic_ggufs_128k_context_bug_fixes/), [Meta (Llama 4)](https://github.com/ggml-org/llama.cpp/pull/12889), [Mistral (Devstral)](https://app.gitbook.com/o/HpyELzcNe0topgVLGCZY/s/xhOjnexMCB3dmuQFQ2Zq/~/changes/618/basics/tutorials-how-to-fine-tune-and-run-llms/devstral-how-to-run-and-fine-tune), [Google (Gemma 1–3)](https://news.ycombinator.com/item?id=39671146) および [Microsoft (Phi-3/4)](https://simonwillison.net/2025/Jan/11/phi-4-bug-fixes)、精度向上につながる修正に貢献してきました。
{% endcolumn %}

{% column %}

<figure><img src="/files/d265501d0f0774cfc0fc76a1d11f9ff5179a6a94" alt=""><figcaption><p>Gemma 4 26B A4B ベンチマーク（低いほど良い）</p></figcaption></figure>

<figure><img src="/files/4c08db77b028c47fb00e50cef262107be104ee6c" alt=""><figcaption><p>Qwen3.6 ベンチマーク（低いほど良い）</p></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="success" %}
Unsloth Dynamic GGUF は今や次で実行できます [Unsloth Studio](/docs/jp/xin-zhe/studio.md) ✨

<img src="/files/15781d66f25558946794c4025a5ece324f0db186" alt="" data-size="original">
{% endhint %}

{% hint style="success" %}
[2025年9月10日 更新:](/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.md) より厳しいベンチマークを求められたので、Aider Polyglot の結果をご紹介します！ 当社の Dynamic 3-bit DeepSeek V3.1 GGUF のスコアは **75.6%**&#x3067;、多くのフル精度 SOTA LLM を上回っています。 [続きを読む。](/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.md)

<img src="/files/4f1c2bb2ed98c6a7bf224080a758a9e314fb9d77" alt="DeepSeek-V3.2 Thinking Aider Benchmarks" data-size="original"><img src="/files/8b5a794d2673d4dcc10f77ec2eddb45ce507c350" alt="Llama 4 5-shot MMLU Benchmarks" data-size="original">
{% endhint %}

Benjamin Marie によって実施された LiveCodeBench v6、MMLU Pro などの実世界ユースケースのベンチマークもご覧いただけます:

<div><figure><img src="/files/76def291f438cd1ff454aa7c6f1de12650b34040" alt="" width="563"><figcaption></figcaption></figure> <figure><img src="/files/caf01dd085af11bfa9e713556cca7de78754c2ed" alt="" width="450"><figcaption></figcaption></figure></div>

Unsloth の GGUF が、約 8GB 小さいにもかかわらず、非 Unsloth の量子化版より優れた性能を示していることが分かります。

ベンチマークと評価の詳細な分析はさらに下にあります。

### 💡 Dynamic v2.0 の新機能とは？

* **GGUF + safetensors のためのレイヤー選択を刷新:** Unsloth Dynamic 2.0 は、はるかに賢く、広範囲にわたってレイヤーを選択的に量子化するようになりました。特定のレイヤーだけを変更するのではなく、現在では可能なすべてのレイヤーの量子化タイプを動的に調整し、その組み合わせは各レイヤーおよび各モデルごとに異なります。
* 現在選択されているものと今後のすべての GGUF アップロードでは、Dynamic 2.0 と新しいキャリブレーションデータセットを利用します。このデータセットには 150万を超える **トークン** （モデルによって異なる）が含まれており、高品質で人手によって厳選・クリーニングされたデータで構成されているため、対話型チャット性能を大幅に向上させます。
* 以前の Dynamic 量子化（DeepSeek-R1 1.58-bit GGUF）は、MoE アーキテクチャに対してのみ有効でした。 <mark style="background-color:green;">**Dynamic 2.0 量子化は現在、すべてのモデル（MoE および非 MoE を含む）で機能します**</mark>.
* **モデル別量子化版:** 各モデルは現在、カスタム調整された量子化方式を使用します。たとえば、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 量子化版との同条件比較が可能になりました。

<div><figure><img src="/files/0d31de89da68c90cf8f6e5d60808143107b9cca5" alt="" width="563"><figcaption></figcaption></figure> <figure><img src="/files/6e0e5e55ee912feb847a24d5f3ffbcf629bfc11e" alt="" width="563"><figcaption></figcaption></figure></div>

今後のすべての GGUF アップロードでは Unsloth Dynamic 2.0 を利用し、当社の Dynamic 4-bit safe tensor 量子化版も将来的にこの恩恵を受ける予定です。

## 📊 なぜ KL Divergence なのか？

[必要なのは精度だけではない](https://arxiv.org/pdf/2407.09141) は、不必要なレイヤーを選んで削減した場合であっても、"flips" の観点では大きな違いが生じることを示しています。"flip" とは、回答が不正解から正解へ、またはその逆へ変わることと定義されます。この論文は、レイヤー削減や量子化を行っても MMLU は低下しない場合があることを示していますが、それは一部の不正解が "flip" して正解になる可能性があるためです。私たちの目標は元のモデルに一致させることなので、"flips" を測定するのは良い指標です。

<div><figure><img src="/files/d75c118ff93dd0d9778403518a8dad5f8aaa5584" alt=""><figcaption></figcaption></figure> <figure><img src="/files/d07ca6fef4c12c638357e43ddbadb9338a44af55" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
**KL Divergence** は **量子化誤差を報告するためのゴールドスタンダードの1つ** であるべきです。これは研究論文 "Accuracy is Not All You Need" に基づいています。 **perplexity を使うのは正しくありません** 出力トークン値が相殺される可能性があるためで、KLD または次のようなより厳しいベンチマークを使う必要があります [Aider](/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.md).
{% endhint %}

この論文はまた、興味深いことに KL Divergence が flips と高い相関を持つことを示しており、そのため私たちの目標は、量子化によるディスク容量の増加をできるだけ小さく抑えながら、平均 KL Divergence を減らすことです。

## ⚖️ キャリブレーションデータセットの過学習

ほとんどのフレームワークは Wikipedia 記事のテストセットを用いて perplexity と KL Divergence を報告しています。しかし、Wikipedia 関連のキャリブレーションデータセットを使うと量子化版が過学習し、より低い perplexity スコアを達成してしまうことに私たちは気付きました。私たちは [Calibration\_v3](https://gist.github.com/bartowski1182/eb213dccb3571f863da82e99418f81e8) および [Calibration\_v5](https://gist.github.com/tristandruyen/9e207a95c7d75ddf37525d353e00659c/) データセットを公正なテストのために使用しており、これには他のデータとともに一部の wikitext データが含まれます。 <mark style="background-color:red;">**また、instruction モデルには固有のチャットテンプレートがあり、テキストのみのキャリブレーションデータセットは instruction モデルには効果的ではありません**</mark> （base モデルには有効です）。実際、ほとんどの imatrix GGUF は通常これらの問題を抱えたままキャリブレーションされています。その結果、モデルは本質的にそのドメイン向けに最適化されているため、Wikipedia データも使用する KL Divergence ベンチマークでは自然と良い性能を示します。

公正で制御された評価を確保するため、KL Divergence のベンチマーク時には、私たち自身のキャリブレーションデータセット（チャット性能向けに最適化されているもの）は使用していません。代わりに、同じ標準的な Wikipedia データセットを用いてテストを実施し、Dynamic 2.0 手法の性能をベースラインの imatrix アプローチと直接比較できるようにしました。

## :1234: MMLU 再現の冒険

* MMLU 5 shot の再現は悪夢のようでした。私たちは <mark style="background-color:red;">**できませんでした**</mark> Llama 3.1 (8B) Instruct、Gemma 3 (12B) など多くのモデルで MMLU の結果を再現することが <mark style="background-color:yellow;">**微妙な実装上の問題**</mark>のためにです。たとえば Llama 3.1 (8B) は約 68.2% を出すはずですが、誤った実装を使うと <mark style="background-color:red;">**35% の精度**</mark>

<figure><img src="/files/17c14e99b304fb73f51e6a2e9b849569fbeea0e2" alt="" width="375"><figcaption><p>を達成してしまうことがあります。</p></figcaption></figure>

* 素朴な MMLU 実装では、Llama 3.1 (8B) Instruct の MMLU 5 shot 精度は 67.8% です。しかし私たちは、Llama が **"A" と "\_A"（前にスペースがある A）を異なるトークン ID としてトークナイズする**ことを発見しました。スペースありとなしの両方のトークンを考慮すると、68.2% になります <mark style="background-color:green;">(+0.4%)</mark>
* 興味深いことに、Eleuther AI の [LLM Harness](https://github.com/EleutherAI/lm-evaluation-harness/blob/main/lm_eval/tasks/llama3/instruct/mmlu/_continuation_template_yaml) によると Llama 3 も <mark style="background-color:purple;">**"The best answer is"**</mark> を質問に追加しており、これは Llama 3 の元の MMLU ベンチマークに従っています。
* 他にも多くの微妙な問題があるため、すべてを制御された環境でベンチマークするために、私たちは [github.com/hendrycks/test](https://github.com/hendrycks/test) を直接調査して独自の MMLU 実装をゼロから設計し、複数モデルで結果を検証し、報告値とも比較しました。

## :sparkles: Gemma 3 QAT 再現、ベンチマーク

Gemma チームは Gemma 3 の 2 つの QAT（量子化対応学習）版を公開しました:

1. Q4\_0 GGUF - すべてのレイヤーを次の式で Q4\_0 に量子化します `w = q * block_scale` 各ブロックは 32 個の重みを持ちます。詳しくは [llama.cpp wiki ](https://github.com/ggml-org/llama.cpp/wiki/Tensor-Encoding-Schemes)をご覧ください。
2. int4 版 - おそらく [TorchAO int4 スタイル](https://github.com/pytorch/ao/blob/main/torchao/quantization/README.md)?

私たちはすべての Q4\_0 GGUF バージョンをベンチマークし、12B モデルで広範な実験を行いました。その結果、 **12B Q4\_0 QAT モデルは 67.07% を達成し** 一方、フル bfloat16 12B 版は 5 shot MMLU で 67.15% です。これは非常に впечат的です！ 27B モデルもほぼそこまで来ています！

<table><thead><tr><th>指標</th><th>1B</th><th valign="middle">4B</th><th>12B</th><th>27B</th></tr></thead><tbody><tr><td>MMLU 5 shot</td><td>26.12%</td><td valign="middle">55.13%</td><td><mark style="background-color:blue;"><strong>67.07% (67.15% BF16)</strong></mark></td><td><strong>70.64% (71.5% BF16)</strong></td></tr><tr><td>ディスク容量</td><td>0.93GB</td><td valign="middle">2.94GB</td><td><strong>7.52GB</strong></td><td>16.05GB</td></tr><tr><td><mark style="background-color:green;"><strong>効率*</strong></mark></td><td>1.20</td><td valign="middle">10.26</td><td><strong>5.59</strong></td><td>2.84</td></tr></tbody></table>

私たちは新しい **効率指標** を設計しました。これはモデルの有用性を計算しつつ、そのディスクサイズと MMLU 5 shot スコアも考慮に入れます:

$$
\text{Efficiency} = \frac{\text{MMLU 5 shot score} - 25}{\text{Disk Space GB}}
$$

{% hint style="warning" %}
私たちは **25 を引かなければなりません** MMLU には A、B、C、D の 4 つの選択肢があるためです。単にランダムに答えを選ぶモデルを作ったとすると、25% の精度になり、ディスク容量も数バイトで済みます。しかし、明らかにそれは有用なモデルではありません。
{% endhint %}

ベースモデルに対する KL Divergence について、以下の表は改善を示しています。KL Divergence は 0 に近いほど良いことを改めてお伝えします（つまり 0 はフル精度モデルと同一であることを意味します）

| 量子化版      | ベースライン KLD | GB    | 新しい KLD  | 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.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 Divergence 比率の変化をプロットすると、はるかに明確な利点が見えてきます！ 当社の dynamic 2bit Q2\_K\_XL は KLD をかなり減少させます（約 7.5%）。

<figure><img src="/files/b8718886a46d6563bcf8c226d47496442c42901b" alt=""><figcaption></figcaption></figure>

Gemma 3 (27B) の MMLU 結果の表の一部です。下をご覧ください。

1. **当社の dynamic 4bit 版は、QAT 版より 2GB 小さい一方で、精度がさらに +1% 高いです！**
2. 効率の観点では、2bit Q2\_K\_XL などが非常に良好に見えます！

| 量子化版           | Unsloth   | Unsloth + QAT | ディスクサイズ   | 効率       |
| -------------- | --------- | ------------- | --------- | -------- |
| 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** |

<details>

<summary><mark style="color:緑;">ここをクリック</mark> で Google の Gemma 3 (27B) QAT ベンチマーク全文を見る:</summary>

| モデル            | Unsloth   | Unsloth + 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** |

</details>

## :llama: Llama 4 のバグ修正 + 実行

私たちは Llama 4 のいくつかのバグ修正も支援しました:

* Llama 4 Scout は公式リポジトリで RoPE Scaling 設定を変更しました。私たちは llama.cpp での問題解決を支援し、これを有効にしました [この変更はこちら](https://github.com/ggml-org/llama.cpp/pull/12889)

  <figure><img src="/files/5185380cb6ac699a16bfce0ad610740dd84b7c71" alt=""><figcaption></figcaption></figure>
* Llama 4 の QK Norm の epsilon は、Scout と Maverick の両方で設定ファイルから取得されるべきです。つまり 1e-06 ではなく 1e-05 を使うべきです。私たちはこれらの問題解決を支援しました [llama.cpp](https://github.com/ggml-org/llama.cpp/pull/12889) および [transformers](https://github.com/huggingface/transformers/pull/37418)
* Llama 4 チームと vLLM も、QK Norm が全ヘッドで共有されていた問題（そうであるべきではない）を独自に修正しました [こちら](https://github.com/vllm-project/vllm/pull/16311)。MMLU Pro は 68.58% から 71.53% 精度へ向上しました。
* [Wolfram Ravenwolf](https://x.com/WolframRvnwlf/status/1909735579564331016) は、llama.cpp を介した当社の GGUF がサードパーティの推論プロバイダーよりはるかに高い精度を達成することを示しました。これはおそらく上で説明した問題の組み合わせと、量子化の問題によるものです。

  <figure><img src="/files/8e0762a6ae64b78a0c3fe445fa5dc8c475bcb836" alt=""><figcaption></figcaption></figure>

グラフで示したように、当社の 4-bit Dynamic QAT 量子化は、サイズが小さいにもかかわらず 5-shot MMLU でより良い性能を発揮します。

### Llama 4 Scout の実行:

たとえば Llama 4 Scout を実行するには、まず llama.cpp をクローンします:

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

次に、Scout 用の新しい dynamic v2.0 量子化版をダウンロードします:

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF",
    local_dir = "unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF",
    allow_patterns = ["*IQ2_XXS*"],
)
```

それでは推論を実行しましょう！

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \
    --model unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF/Llama-4-Scout-17B-16E-Instruct-UD-IQ2_XXS.gguf \
    --threads 32 \
    --ctx-size 16384 \
    --n-gpu-layers 99 \
    -ot ".ffn_.*_exps.=CPU" \
    --seed 3407 \
    --prio 3 \
    --temp 0.6 \
    --min-p 0.01 \
    --top-p 0.9 \
    -no-cnv \
    --prompt "<|header_start|>user<|header_end|>\n\nFlappy Bird ゲームを作成してください。<|eot|><|header_start|>assistant<|header_end|>\n\n"
```

{% endcode %}

{% hint style="success" %}
Llama 4 の実行方法について詳しくはこちら: <https://docs.unsloth.ai/basics/tutorial-how-to-run-and-fine-tune-llama-4>
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unsloth.ai/docs/jp/ji-ben/unsloth-dynamic-2.0-ggufs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
