🦥Unsloth Dynamic GGUFs auf Aider Polyglot
Leistung der Unsloth Dynamic GGUFs auf Aider Polyglot-Benchmarks
Wir freuen uns, zu zeigen, wie Unsloth Dynamic GGUFs es ermöglichen, LLMs wie DeepSeek-V3.1 (671B) auf nur 1-Bit oder 3-Bitherunter zu quantisieren, und dennoch SOTA-Modelle wie GPT-4.5, GPT-4.1 (April 2025) und Claude-4-Opus (Mai 2025).
Zuvor haben wir demonstriert wie Unsloth Dynamic GGUFs andere Quantisierungsmethoden bei 5-shot MMLU und KL-Divergenz übertreffen. Jetzt zeigen wir ihre Leistung in unabhängigen Drittanbieter-Bewertungen mithilfe des Aider Polyglot Benchmarks.


⭐Wichtige Ergebnisse
Unser 1-Bit Unsloth Dynamic GGUF verkleinert DeepSeek-V3.1 von 671GB → 192GB (-75% Größe) und der No-Thinking-Modus übertrifft deutlich GPT-4.1 (Apr 2025), GPT-4.5 und DeepSeek-V3-0324.
3-Bit Unsloth DeepSeek-V3.1 (Thinking) GGUF: Übertrifft Claude-4-Opus-20250514 (Thinking).
5-Bit Unsloth DeepSeek-V3.1 (Non-Thinking) GGUF: Entspricht der Leistung von Claude-4-Opus-20250514 (Non-Thinking).
Unsloth Dynamic GGUFs schneiden durchgängig besser ab als andere nicht-Unsloth Dynamic imatrix GGUFs
Andere nicht-Unsloth 1-Bit- und 2-Bit-DeepSeek-V3.1-Quantisierungen sowie Standard-1-Bit-Quantisierung ohne selektive Layer-Quantisierung schlugen entweder fehl beim Laden oder erzeugten Kauderwelsch und wiederholte Ausgaben. Dies hebt hervor, wie Unsloth Dynamic GGUFs die Genauigkeit weitgehend erhalten können, während andere Methoden nicht einmal funktionieren.
Warum der Aider Polyglot Benchmark? Aider ist eines der umfassendsten Maßstäbe dafür, wie gut LLMs schreiben, programmieren, Anweisungen befolgen und Änderungen ohne menschliches Eingreifen anwenden können, und damit einer der anspruchsvollsten und wertvollsten Benchmarks für den realen Einsatz.
Der Hauptvorteil bei der Verwendung des Unsloth-Pakets und der Modelle ist unsere aktive Rolle bei der Behebung kritischer Fehler in großen Modellen. Wir haben direkt mit den Teams hinter Qwen3, Meta (Llama 4), Mistral (Devstral), Google (Gemma 1–3) und Microsoft (Phi-3/4)zusammengearbeitet und wesentliche Fixes beigetragen, die die Genauigkeit erheblich verbessern.
🦥Unsloth Dynamic Quantisierung
Dynamic 1-Bit macht wichtige Layer in 8- oder 16-Bit und unwichtige Layer in 1,2,3,4,5 oder 6 Bit.
Im Nov 2024 haben unsere 4-Bit Dynamic Quants gezeigt, wie man die QLoRA-Feinabstimmung & Modellgenauigkeit weitgehend wiederherstellen kann, indem man einfach selektiv Layer quantisiert. Später haben wir DeepSeek-R1die Architektur von untersucht und diese ähnliche Methodik angewandt, wobei wir einige Layer bis auf 1-Bit und wichtige Layer auf höhere Bits (6, 8-Bit) quantisierten. Dieser Ansatz gewann schnell an Popularität und hat sich insbesondere für MoE-Modelle als besonders effektiv erwiesen, wodurch dynamische Quantisierung zum De-facto-Standard für MoE-Quantisierung wurde.
Unsere Dynamic GGUFs sind noch effektiver, wenn sie mit unserem imatrix Kalibrationsdatensatzkombiniert werden, der für Chat- und Coding-Performance entwickelt wurde. All dies ermöglichte extreme LLM-Kompression ohne katastrophalen Qualitätsverlust.
Zum Beispiel bewirkt bei Qwen2-VL-2B-Instruct das naive Quantisieren aller Layer auf 4bit, dass das Modell das untenstehende Bild nicht mehr korrekt versteht. Es ist ein Zug, keine Küstenszene!


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


⚙️Benchmark-Setup
Für unsere DeepSeek-V3.1-Experimente verglichen wir verschiedene Bitstufen von Unsloth Dynamic GGUFs mit:
Vollpräzisen, unquantisierten LLMs einschließlich GPT 4.5, 4.1, Claude-4-Opus, DeepSeek-V3-0324 usw.
Andere dynamic imatrix V3.1 GGUFs
Semi-dynamische (einige selektive Layer-Quantisierung) imatrix V3.1 GGUFs für Ablationszwecke.
Benchmark-Experimente wurden hauptsächlich durchgeführt von David Sluys (neolithic5452 auf Aider Discord), einem vertrauenswürdigen Community-Beitragenden zu Aider Polyglot-Bewertungen. Tests wurden etwa 3 Mal durchgeführt und für eine Medianbewertung gemittelt, und die Pass-2-Genauigkeit wird wie üblich berichtet. Es gibt einige reproduzierbare Benchmark-Code-Snippets im Aider-Discord.
Erweitern für Reasoning-Modell Aider-Benchmarks
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 (High)
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
Erweitern für Non-Reasoning-Modell Aider-Benchmarks
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
DeepSeek V3.1 hat sowohl einen Reasoning- als auch einen Non-Reasoning-Modus, und wir testen beide. Für Non-Reasoning sehen wir einen klaren Trend, wie unsere dynamischen Quantisierungen unten 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 3 und 4 Bit extrem leistungsstark!

🎇Vergleich zu anderen Quants
Wir führen den Aider Polyglot-Benchmark auch auf anderen dynamic imatrix GGUFs aus der Community durch und vergleichen ihn mit unserem. Um einen fairen Vergleichzu gewährleisten, tun wir Folgendes:
Wir wählen ähnlich große Dateien und Bit-Typen wie bei jedem Unsloth-Quant aus.
Wir verwenden unsere fixierte Chat-Vorlage falls das Community-Quant den Benchmark nicht ausführen kann. Wir fanden 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 dies wird behoben, indem wir unsere fixierte Chat-Vorlage verwenden.
Wir sehen, dass Unsloth Dynamic Quants im Vergleich zu anderen Community-Quantisierungen für dieselbe Modellgröße und Quant-Art bemerkenswert gut abschneiden!

Erweitern für rohe numerische Daten zum Vergleich mit anderen Quants
IQ2_XXS
164
43.6
TQ1_0
170
50.7
IQ1_M
206
55.7
IQ2_M
215
56.6
IQ2_XXS
225
61.2
IQ2_M
235
64.3
Q2_K_L
239
64.0
Q2_K_XL
255
65.8
IQ3_XXS
268
65.6
65.6
IQ3_XXS
279
66.8
Q3_K_S
293
65.2
Q3_K_XL
300
68.4
IQ4_XS
357
69.2
IQ4_XS
360
66.3
Q4_K_XL
387
69.7
Q4_K_M
405
69.7
Q4_K_M
409
67.7
Q5_K_M
478
68.9
Q5_K_XL
484
70.7
🍰Ablationen der dynamischen Quantisierung
Wir haben auch einige Ablationen durchgeführt, um zu bestätigen, ob unser Kalibrationsdatensatz und unsere Methodik der dynamischen Quantisierung tatsächlich funktionieren. Der Trick der Unsloth-Dynamik besteht darin, wichtige Layer auf höhere Bits zu quantisieren z. B. 8 Bit, während unwichtige Layer in niedrigeren Bits wie 2 Bit belassen werden.
Um unsere Methode zu testen, lassen wir bestimmte Tensoren in niedrigerer Präzision wie 4 Bit vs. höherer Präzision. Zum Beispiel lassen wir unten attn_k_b Tensoren in 4 Bit (semi-dynamisch) vs. 8 Bit (aktuell Unsloth), und indem wir die Quantgröße nur um ~100 MB oder so erhöhen (<0,1%), schießt die Genauigkeit dramatisch in die Höhe!
attn_k_b und andere Tensoren in DeepSeek V3.1 sind sehr wichtig / empfindlich gegenüber Quantisierung und sollten in höherer Präzision belassen werden, um die Genauigkeit zu erhalten!

🐛Chat-Vorlagen Bugfixes
Während der Tests der DeepSeek-V3.1-Quants stellten wir fest, dass einige niedrigere Bit-Quants nicht <think> </think> richtig umschlossen waren oder eine seltsame Formatierung aufwiesen. Dies führte dazu, dass einige Community-Quants bei niedrigeren Bits nicht funktionierten und somit zu unfairen Vergleichen führten. Wir stellten fest, dass llama.cpps Verwendung von minja (einer vereinfachten Version von jinja) keine Positionsargumente in .split akzeptiert. Wir mussten ändern:
zu folgendem:
Siehe hier für unsere fixierte Chat-Vorlage oder hier für eine rohe jinja-Datei.
📊Pass-Rate 1
Aider wird hauptsächlich mit Pass-Rate 2 berichtet. Wir berichten auch Pass-Rate 1, um Community-Quants derselben Größe zu vergleichen. Wir sehen, dass unsere dynamischen Quants wesentlich 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.

💻DeepSeek V3.1 Dynamic Quants ausführen
Gehe zu unserem DeepSeek V3.1 Leitfaden oder um schnell die dynamische 2-Bit-Version zu erhalten, mache:
verwende dann llama.cpp um die Gewichte direkt herunterzuladen. Wir haben bereits die optimal vorgeschlagenen Parameter wie Temperatur, die Chat-Vorlage usw. gesetzt:
Zuletzt aktualisiert
War das hilfreich?

