# Unsloth Dynamic GGUFs auf Aider Polyglot

Wir freuen uns, zu zeigen, wie Unsloth Dynamic GGUFs es möglich macht, LLMs wie [DeepSeek-V3.1](/docs/de/modelle/tutorials/deepseek-v3.1-how-to-run-locally.md) (671B) auf nur **1-Bit** oder **3-Bit**zu quantisieren und dennoch SOTA-Modelle wie **GPT-4.5, GPT-4.1** (April 2025) und **Claude-4-Opus** (Mai 2025) zu übertreffen.

Zuvor [haben wir gezeigt](/docs/de/grundlagen/unsloth-dynamic-2.0-ggufs.md) wie Unsloth Dynamic GGUFs andere Quantisierungsmethoden bei 5-Shot MMLU und KL-Divergenz übertreffen. Jetzt zeigen wir ihre Leistung bei unabhängigen Drittanbieter-Evaluierungen mit dem **Aider Polyglot** **Benchmark.**

<div><figure><img src="/files/78b017e1e9dd3e613b1faa73c40ea53f7f1a57de" alt="" width="563"><figcaption><p>Thinking Aider Benchmarks</p></figcaption></figure> <figure><img src="/files/46f5429d7865858663bc7548a67f5a2aa407e8c8" alt="" width="563"><figcaption><p>No Thinking Aider Benchmarks</p></figcaption></figure></div>

### ⭐**Wichtige Ergebnisse**

* Unsere **1-Bit** Unsloth Dynamic GGUF verkleinert DeepSeek-V3.1 von **671GB → 192GB (-75 % Größe)** und der No-Thinking-Modus übertrifft GPT-4.1 (Apr 2025), GPT-4.5 und DeepSeek-V3-0324 deutlich.
* **3-Bit** Unsloth DeepSeek-V3.1 (Thinking) GGUF: Übertrifft Claude-4-Opus-20250514 (Thinking).
* **5-Bit** Unsloth DeepSeek-V3.1 (Non-Thinking) GGUF: Erreicht die Leistung von Claude-4-Opus-20250514 (Non-Thinking).
* Unsloth Dynamic GGUFs schneiden durchgängig besser ab als andere nicht von Unsloth stammende Dynamic-imatrix-GGUFs
* Andere nicht von Unsloth stammende 1-Bit- und 2-Bit-Quantisierungen von DeepSeek-V3.1 sowie die Standard-1-Bit-Quantisierung ohne selektive Layer-Quantisierung konnten entweder nicht geladen werden oder erzeugten Kauderwelsch und Endlosschleifen. Dies zeigt, dass Unsloth Dynamic GGUFs die Genauigkeit weitgehend erhalten können, während andere Methoden nicht einmal funktionieren.

**Warum der** [**Aider Polyglot**](https://aider.chat/docs/leaderboards/) **Benchmark?** Aider ist eines der umfassendsten Maßstäbe dafür, wie gut LLMs schreiben, programmieren, Anweisungen befolgen und Änderungen ohne menschliches Eingreifen vornehmen können, was ihn zu einem der schwierigsten und wertvollsten Benchmarks für den realen Einsatz macht.

{% hint style="success" %}
Die **Hauptvorteil** der Nutzung des Unsloth-Pakets und der Modelle ist unsere aktive Rolle beim ***Beheben kritischer Fehler*** in großen Modellen. Wir haben direkt mit Teams zusammengearbeitet hinter [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) und [Microsoft (Phi-3/4)](https://simonwillison.net/2025/Jan/11/phi-4-bug-fixes), und dabei wichtige Korrekturen beigetragen, die die Genauigkeit erheblich steigern.
{% endhint %}

## 🦥Unsloth Dynamic Quantization

{% hint style="success" %}
**Dynamic 1 Bit macht wichtige Schichten in 8 oder 16 Bits und unwichtige Schichten in 1, 2, 3, 4, 5 oder 6 Bits.**
{% endhint %}

Im Nov. 2024 zeigten unsere [4-Bit Dynamic](https://unsloth.ai/blog/dynamic-4bit) Quants, wie man QLoRA-Fine-Tuning und Modellgenauigkeit weitgehend wiederherstellen kann, indem man nur <mark style="background-color:green;">**Schichten selektiv quantisiert**</mark>. Später untersuchten wir [DeepSeek-R1](/docs/de/modelle/tutorials/deepseek-r1-how-to-run-locally.md)s Architektur und wandten diese ähnliche Methodik an, wobei wir einige Schichten auf nur 1-Bit und wichtige Schichten auf höhere Bits (6-, 8-Bit) quantisierten. Dieser Ansatz gewann schnell an Popularität und hat sich besonders für MoE-Modelle als effektiv erwiesen, sodass dynamische Quantisierung de facto zum Standard für MoE-Quantisierung wurde.

Unsere Dynamic GGUFs sind sogar noch effektiver, wenn sie mit unserem [imatrix-Kalibrierungsdatensatz](https://unsloth.ai/docs/de/grundlagen/unsloth-dynamic-2.0-ggufs/pages/abe22dcb3049581e00371a1b82b9e9cf6821a9b0#whats-new-in-dynamic-v2.0)kombiniert werden, der für Chat- und Coding-Leistung konzipiert ist. All dies ermöglichte extreme LLM-Komprimierung ohne katastrophalen Qualitätsverlust.

Zum Beispiel führt bei Qwen2-VL-2B-Instruct die naive Quantisierung aller Schichten auf 4-Bit dazu, dass das Modell das Bild unten nicht versteht. Das ist ein Zug, keine Küstenszene!

{% columns %}
{% column %}

<figure><img src="/files/73c0e863531a3040cb851faa2ec4fc669388620b" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/2f68588f71ec3dda554eb6278fd5ffdb39e7f7c2" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Wir haben auch dynamische Benchmarks in <https://docs.unsloth.ai/basics/unsloth-dynamic-2.0-ggufs> für Gemma 3 und Llama 4 Scout gezeigt, was verdeutlicht, wie effektiv unsere Methodik ist:

{% columns %}
{% column %}

<figure><img src="/files/1886ff514e5e168c7e9794ff03b213dcd3303e1b" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/90cbcfcc4d43ffec7a5c481d2414ff346f6bbfeb" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### ⚙️Benchmark-Setup

Für unsere DeepSeek-V3.1-Experimente verglichen wir verschiedene Bit-Stufen von **Unsloth Dynamic GGUFs** gegen:

* **Vollpräzise, nicht quantisierte LLMs** einschließlich GPT 4.5, 4.1, Claude-4-Opus, DeepSeek-V3-0324 usw.
* ***Andere*****&#x20;dynamische imatrix V3.1 GGUFs**
* ***Semi-*****dynamische** (teilweise selektive Layer-Quantisierung) imatrix V3.1 GGUFs zu **Ablationszwecken**.

Benchmark-Experimente wurden hauptsächlich durchgeführt von [David Sluys](https://www.linkedin.com/in/david-sluys-231348208/) (neolithic5452 auf [Aider Discord](https://discord.com/channels/1131200896827654144/1408293692074360914)), ein vertrauenswürdiger Community-Beitragender zu Aider Polyglot-Evaluierungen. Die Tests wurden etwa 3-mal ausgeführt und zu einem Medianwert gemittelt, und die Pass-2-Genauigkeit wird wie üblich berichtet. Es gibt einige reproduzierbare Benchmark-Codeausschnitte im Discord von Aider.

<details>

<summary>Aufklappen für Aider-Benchmarks von Reasoning-Modellen</summary>

| Modell                            | Genauigkeit |
| --------------------------------- | ----------- |
| GPT-5                             | 86.7        |
| Gemini 2.5 Pro (Juni)             | 83.1        |
| o3                                | 76.9        |
| DeepSeek V3.1                     | 76.1        |
| **(3 Bit) DeepSeek V3.1 Unsloth** | **75.6**    |
| Claude-4-Opus (Mai)               | 72          |
| o4-mini (Hoch)                    | 72          |
| DeepSeek R1 0528                  | 71.4        |
| **(2 Bit) DeepSeek V3.1 Unsloth** | **66.7**    |
| Claude-3.7-Sonnet (Feb)           | 64.9        |
| **(1 Bit) DeepSeek V3.1 Unsloth** | **57.8**    |
| DeepSeek R1                       | 56.9        |

</details>

<details>

<summary>Aufklappen für Aider-Benchmarks von Nicht-Reasoning-Modellen</summary>

| Modell                            | Genauigkeit |
| --------------------------------- | ----------- |
| DeepSeek V3.1                     | 71.6        |
| Claude-4-Opus (Mai)               | 70.7        |
| **(5 Bit) DeepSeek V3.1 Unsloth** | **70.7**    |
| **(4 Bit) DeepSeek V3.1 Unsloth** | **69.7**    |
| **(3 Bit) DeepSeek V3.1 Unsloth** | **68.4**    |
| **(2 Bit) DeepSeek V3.1 Unsloth** | **65.8**    |
| Qwen3 235B A22B                   | 59.6        |
| Kimi K2                           | 59.1        |
| **(1 Bit) DeepSeek V3.1 Unsloth** | **55.7**    |
| DeepSeek V3-0324                  | 55.1        |
| GPT-4.1 (April 2025)              | 52.4        |
| ChatGPT 4o (März 2025)            | 45.3        |
| GPT-4.5                           | 44.9        |

</details>

DeepSeek V3.1 verfügt sowohl über einen Reasoning- als auch einen Non-Reasoning-Modus, und wir testen beide. Für Non-Reasoning sehen wir unten einen klaren Trend, wie unsere dynamischen Quantisierungen abschneiden. Dynamic 5-Bit erreicht 70,7 % bei Aider Pass-2, während Dynamic 1-Bit 55,7 % erreicht. In Bezug auf Größe und Genauigkeit sind die 3- und 4-Bit-Versionen extrem leistungsstark!

<figure><img src="/files/46f5429d7865858663bc7548a67f5a2aa407e8c8" alt=""><figcaption></figcaption></figure>

## :sparkler:Vergleich mit anderen Quants

Wir führen den Aider-Polyglot-Benchmark auch für andere Dynamic-imatrix-GGUFs aus der Community aus und vergleichen sie mit unseren. Um einen **fairen Vergleich**zu gewährleisten, gehen wir wie folgt vor:

1. Wir wählen ähnlich große Dateien und Bit-Typen für jede Unsloth-Quantisierung aus.
2. Wir verwenden unsere **korrigierte Chat-Vorlage** wenn die Community-Quantisierung den Benchmark nicht ausführen kann. Wir haben festgestellt, dass einige Community-Quants `{"code":500,"message":"split method must have between 1 and 1 positional arguments and between 0 and 0 keyword arguments at row 3, column 1908"}`, und das wird durch die Verwendung unserer korrigierten Chat-Vorlage behoben.

Wir sehen, dass Unsloth-Dynamic-Quants im Vergleich zu anderen Community-Quantisierungen für dieselbe Modellgröße und denselben Quantisierungstyp bemerkenswert gut abschneiden!

<figure><img src="/files/8846b7f5cb0c58e1e15b7fa71cc47e265e98f657" alt=""><figcaption></figcaption></figure>

<details>

<summary>Aufklappen für den Vergleich der Rohdaten mit anderen Quants</summary>

<table><thead><tr><th width="109.25">Quant</th><th width="171.25006103515625">Quant-Größe (GB)</th><th>Genauigkeit % von Unsloth</th><th>Vergleichsgenauigkeit %</th></tr></thead><tbody><tr><td>IQ2_XXS</td><td>164</td><td></td><td>43.6</td></tr><tr><td>TQ1_0</td><td>170</td><td>50.7</td><td></td></tr><tr><td>IQ1_M</td><td>206</td><td>55.7</td><td></td></tr><tr><td>IQ2_M</td><td>215</td><td></td><td>56.6</td></tr><tr><td>IQ2_XXS</td><td>225</td><td>61.2</td><td></td></tr><tr><td>IQ2_M</td><td>235</td><td>64.3</td><td></td></tr><tr><td>Q2_K_L</td><td>239</td><td></td><td>64.0</td></tr><tr><td>Q2_K_XL</td><td>255</td><td>65.8</td><td></td></tr><tr><td>IQ3_XXS</td><td>268</td><td>65.6</td><td>65.6</td></tr><tr><td>IQ3_XXS</td><td>279</td><td>66.8</td><td></td></tr><tr><td>Q3_K_S</td><td>293</td><td></td><td>65.2</td></tr><tr><td>Q3_K_XL</td><td>300</td><td>68.4</td><td></td></tr><tr><td>IQ4_XS</td><td>357</td><td>69.2</td><td></td></tr><tr><td>IQ4_XS</td><td>360</td><td></td><td>66.3</td></tr><tr><td>Q4_K_XL</td><td>387</td><td>69.7</td><td></td></tr><tr><td>Q4_K_M</td><td>405</td><td>69.7</td><td></td></tr><tr><td>Q4_K_M</td><td>409</td><td></td><td>67.7</td></tr><tr><td>Q5_K_M</td><td>478</td><td></td><td>68.9</td></tr><tr><td>Q5_K_XL</td><td>484</td><td>70.7</td><td></td></tr></tbody></table>

</details>

### :cake:Ablationen der dynamischen Quantisierung

Wir haben auch einige Ablationen durchgeführt, um zu bestätigen, ob unser Kalibrierungsdatensatz und unsere Methode der dynamischen Quantisierung tatsächlich funktionieren. Der Trick der dynamischen Methode von Unsloth besteht darin, **wichtige Schichten auf höhere Bits zu quantisieren** also 8 Bits, während **unwichtige Schichten in niedrigeren Bits wie 2 Bits belassen werden**.

Um unsere Methode zu testen, belassen wir bestimmte Tensoren mit geringerer Präzision, etwa 4-Bit versus höhere Präzision. Unten belassen wir zum Beispiel `attn_k_b` Tensoren in 4-Bit (semi-dynamisch) vs. 8-Bit (aktuelles Unsloth), und durch eine Erhöhung der Quant-Größe um nur etwa 100 MB oder so (<0,1 %) steigt die Genauigkeit dramatisch an!

{% hint style="success" %}
`attn_k_b` und andere Tensoren in DeepSeek V3.1 sind äußerst wichtig / empfindlich gegenüber Quantisierung und sollten zur Wahrung der Genauigkeit in höherer Präzision belassen werden!
{% endhint %}

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

### :bug:Fehlerbehebungen für Chat-Vorlagen

Während des Tests von DeepSeek-V3.1-Quants stellten wir fest, dass einige Quants mit niedrigeren Bits nicht ordnungsgemäß `<think> </think>` einbetteten oder eine seltsame Formatierung verwendeten. Dadurch funktionierten einige Community-Quants bei niedrigeren Bits nicht, was zu unfairen Vergleichen führte. Wir stellten fest, dass die Verwendung von minja in llama.cpp (einer einfacheren Version von jinja) keine Positionsargumente in `.split`. akzeptiert. Wir mussten ändern:

```
{%- set content = content.split("</think>", 1)[1] -%}
```

in das Folgende:

```
{%- set splitted = content.split("</think>") -%}
{%- set content = splitted[1:] | join("</think>") -%}
```

Siehe [hier](https://huggingface.co/unsloth/DeepSeek-V3.1-GGUF?chat_template=default\&format=true) für unsere korrigierte Chat-Vorlage oder [hier](https://huggingface.co/unsloth/DeepSeek-V3.1/raw/main/chat_template.jinja) für eine rohe Jinja-Datei.

### :bar\_chart:Pass-Rate 1

Aider wird hauptsächlich anhand von Pass-Rate 2 berichtet. Wir berichten auch Pass-Rate 1, um Community-Quants derselben Größe zu vergleichen. Wir sehen, dass unsere dynamischen Quants deutlich besser abschneiden als andere Community-Quants ähnlicher Größe, insbesondere bei weniger als 2 Bit und mehr als 4 Bit. 3- und 4-Bit schneiden ähnlich gut ab.

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

## :computer:DeepSeek V3.1 Dynamic Quants ausführen

Gehen Sie zu unserem [DeepSeek V3.1-Leitfaden](/docs/de/modelle/tutorials/deepseek-r1-how-to-run-locally/deepseek-r1-dynamic-1.58-bit.md) oder um schnell die dynamische 2-Bit-Version zu erhalten, führen Sie Folgendes aus:

```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-quantize llama-cli llama-gguf-split llama-mtmd-cli llama-server
cp llama.cpp/build/bin/llama-* llama.cpp
```

dann verwenden Sie `llama.cpp` um die Gewichte direkt herunterzuladen. Wir setzen bereits die optimal empfohlenen Parameter wie Temperatur, die Chat-Vorlage usw. ebenfalls:

```bash
export LLAMA_CACHE="unsloth/DeepSeek-V3.1-GGUF"
./llama.cpp/llama-cli \
    -hf unsloth/DeepSeek-V3.1-GGUF:Q2_K_XL \
    --jinja \
    --n-gpu-layers 99 \
    --temp 0.6 \\
    --top-p 0.95 \
    --min-p 0,01 \
    --ctx-size 8192 \\
    --seed 3407 \\
    -ot ".ffn_.*_exps.=CPU"
```


---

# 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/de/grundlagen/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.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.
