🦥Unsloth Dynamic 2.0 GGUFs

Ein großes neues Upgrade für unsere Dynamic Quants!

Wir freuen uns, unsere Dynamic v2.0-Quantisierungsmethode vorzustellen – ein großes Upgrade gegenüber unseren vorherigen Quants. Diese neue Methode übertrifft führende Quantisierungsmethoden und setzt neue Maßstäbe für 5-shot MMLU und KL-Divergenz.

Das bedeutet, dass Sie jetzt quantisierte LLMs ausführen und feinabstimmen können, wobei so viel Genauigkeit wie möglich erhalten bleibt! Sie können die 2.0 GGUFs auf jeder Inferenz-Engine wie llama.cpp, Ollama, Open WebUI usw. ausführen.

circle-check

Detaillierte Analyse unserer Benchmarks und Bewertungen weiter unten.

Thinking Aider Benchmarks
5-shot MMLU Benchmarks

💡 Was ist neu in Dynamic v2.0?

  • Überarbeitete Schichtauswahl für GGUFs + safetensors: Unsloth Dynamic 2.0 quantisiert nun Schichten selektiver, intelligenter und umfassender. Anstatt nur ausgewählte Schichten zu ändern, passen wir jetzt dynamisch den Quantisierungstyp jeder möglichen Schicht an, und die Kombinationen unterscheiden sich für jede Schicht und jedes Modell.

  • Aktuelle ausgewählte und alle zukünftigen GGUF-Uploads werden Dynamic 2.0 und unseren neuen Kalibrierungsdatensatz nutzen. Der Datensatz enthält mehr als >1,5M Token (je nach Modell) und besteht aus hochwertigen, handkuratierten und bereinigten Daten – um die Leistung bei konversationalen Chats erheblich zu verbessern.

  • Früher war unsere Dynamic-Quantisierung (DeepSeek-R1 1,58-bit GGUF) nur für MoE-Architekturen effektiv. Dynamic 2.0-Quantisierung funktioniert jetzt bei allen Modellen (einschließlich MoEs & Nicht-MoEs).

  • Modellspezifische Quants: Jedes Modell verwendet jetzt ein maßgeschneidertes Quantisierungsschema. Z. B. unterscheiden sich die in Gemma 3 quantisierten Schichten deutlich von denen in Llama 4.

  • Um die Effizienz, insbesondere auf Apple Silicon und ARM-Geräten, zu maximieren, fügen wir jetzt auch Q4_NL, Q5.1, Q5.0, Q4.1 und Q4.0 Formate hinzu.

Um genaue Benchmarks sicherzustellen, haben wir ein internes Evaluationsframework aufgebaut, das die offiziell berichteten 5-shot MMLU-Werte von Llama 4 und Gemma 3 reproduziert. Dies ermöglichte einen Apfel-zu-Apfel-Vergleich zwischen Full-Precision und Dynamic v2.0, QAT und standard imatrix GGUF-Quants.

Alle zukünftigen GGUF-Uploads werden Unsloth Dynamic 2.0 nutzen, und unsere Dynamic 4-bit safetensor-Quants werden in Zukunft ebenfalls davon profitieren.

📊 Warum KL-Divergenz?

Genauigkeit ist nicht alles, was man brauchtarrow-up-right zeigt, wie das Beschneiden von Schichten, sogar durch Auswahl unnötiger Schichten, immer noch große Unterschiede in Bezug auf "Flips" ergibt. Ein "Flip" ist definiert als eine Antwort, die sich von falsch zu richtig oder umgekehrt ändert. Die Arbeit zeigt, wie MMLU möglicherweise nicht abnimmt, wenn wir Schichten beschneiden oder quantisieren, aber das liegt daran, dass einige falsche Antworten sich zu richtigen Antworten "geflipped" haben könnten. Unser Ziel ist es, das ursprüngliche Modell nachzubilden, daher ist das Messen von "Flips" eine gute Metrik.

circle-info

KL-Divergenz sollte der Goldstandard für die Meldung von Quantisierungsfehlern sein laut dem Forschungspapier "Accuracy is Not All You Need". Perplexity zu verwenden ist inkorrekt da sich Ausgabewert von Tokens aufheben können, daher müssen wir KLD verwenden!

Die Arbeit zeigt außerdem, dass KL-Divergenz interessanterweise stark mit Flips korreliert, und unser Ziel ist es daher, die mittlere KL-Divergenz zu reduzieren, während wir die Zunahme des Speicherplatzes durch die Quantisierung so gering wie möglich halten.

⚖️ Überanpassung an den Kalibrierungsdatensatz

Die meisten Frameworks melden Perplexity und KL-Divergenz unter Verwendung eines Testsets von Wikipedia-Artikeln. Wir stellten jedoch fest, dass die Verwendung des Kalibrierungsdatensatzes, der ebenfalls Wikipedia-bezogen ist, dazu führt, dass Quants überangepasst werden und niedrigere Perplexity-Werte erreichen. Wir verwenden Calibration_v3arrow-up-right und Calibration_v5arrow-up-right Datensätze für faire Tests, die neben anderem auch etwas Wikitext-Daten enthalten. Außerdem haben Instruct-Modelle einzigartige Chat-Vorlagen, und die Verwendung nur textbasierter Kalibrierungsdatensätze ist für Instruct-Modelle nicht effektiv (bei Basismodellen ja). Tatsächlich werden die meisten imatrix GGUFs typischerweise unter diesen Problemen kalibriert. Infolgedessen schneiden sie naturgemäß besser bei KL-Divergenz-Benchmarks ab, die ebenfalls Wikipedia-Daten verwenden, da das Modell im Wesentlichen für dieses Gebiet optimiert ist.

Um eine faire und kontrollierte Evaluation sicherzustellen, verwenden wir nicht unseren eigenen Kalibrierungsdatensatz (der für Chat-Leistung optimiert ist) beim Benchmarking der KL-Divergenz. Stattdessen führten wir Tests mit denselben Standard-Wikipedia-Datensätzen durch, sodass wir die Leistung unserer Dynamic 2.0-Methode direkt mit dem Basis-imatrix-Ansatz vergleichen konnten.

🔢 MMLU-Replikationsabenteuer

  • Die Replikation von MMLU 5-shot war albtraumhaft. Wir konnten nicht MMLU-Ergebnisse für viele Modelle replizieren, einschließlich Llama 3.1 (8B) Instruct, Gemma 3 (12B) und anderer, aufgrund von feinen Implementierungsproblemen. Llama 3.1 (8B) sollte zum Beispiel ~68,2% erreichen, während falsche Implementierungen 35% Genauigkeit erreichen können.

MMLU-Implementierungsprobleme
  • Llama 3.1 (8B) Instruct hat eine MMLU 5-shot-Genauigkeit von 67,8% bei einer naiven MMLU-Implementierung. Wir stellen jedoch fest, dass Llama "A" und "_A" (A mit einem führenden Leerzeichen) als unterschiedliche Token-IDs tokenisiert. Wenn wir sowohl getrennte als auch nicht-getrennte Tokens berücksichtigen, erhalten wir 68,2% (+0.4%)

  • Interessanterweise fügt Llama 3 gemäß Eleuther AIs LLM Harnessarrow-up-right auch an "The best answer is" zur Frage hinzu, in Anlehnung an Llama 3s ursprüngliche MMLU-Benchmarks.

  • Es gibt viele weitere subtile Probleme, und um alles in einer kontrollierten Umgebung zu benchmarken, haben wir unsere eigene MMLU-Implementierung von Grund auf entworfen, indem wir github.com/hendrycks/testarrow-up-right direkt untersucht und unsere Ergebnisse über mehrere Modelle hinweg mit den berichteten Zahlen verglichen und verifiziert.

Gemma 3 QAT Replikation, Benchmarks

Das Gemma-Team veröffentlichte zwei QAT (quantization aware training)-Versionen von Gemma 3:

  1. Q4_0 GGUF - quantisiert alle Schichten zu Q4_0 mittels der Formel w = q * block_scale wobei jeder Block 32 Gewichte hat. Siehe llama.cpp wiki arrow-up-rightfür weitere Details.

  2. int4-Version - vermutlich TorchAO int4-Stilarrow-up-right?

Wir haben alle Q4_0 GGUF-Versionen benchmarked und umfangreiche Experimente am 12B-Modell durchgeführt. Wir sehen, dass das 12B Q4_0 QAT-Modell 67,07% erreicht während die vollständige bfloat16 12B-Version 67,15% beim 5-shot MMLU erreicht. Das ist sehr beeindruckend! Das 27B-Modell ist größtenteils fast dort!

Metrik
1B
4B
12B
27B

MMLU 5-shot

26.12%

55.13%

67,07% (67,15% BF16)

70,64% (71,5% BF16)

Speicherplatz

0,93GB

2,94GB

7,52GB

16,05GB

Effizienz*

1.20

10.26

5.59

2.84

Wir haben eine neue Effizienzmetrik entwickelt, die die Nützlichkeit des Modells berechnet und dabei sowohl seine Festplattengröße als auch die MMLU 5-shot-Punktzahl berücksichtigt:

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

Im Vergleich der KL-Divergenz zum Basismodell zeigt die folgende Tabelle die Verbesserungen. Zur Erinnerung: Je näher die KL-Divergenz an 0 liegt, desto besser (d. h. 0 bedeutet identisch mit dem Full-Precision-Modell)

Quant
Baseline KLD
GB
Neue 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

Wenn wir das Verhältnis der Zunahme des Speicherplatzes und die Veränderung des KL-Divergenz-Verhältnisses aufzeichnen, sehen wir einen viel klareren Nutzen! Unser dynamisches 2-Bit Q2_K_XL reduziert die KLD ziemlich stark (etwa 7,5%).

Gekürzte Ergebnistabelle für MMLU für Gemma 3 (27B). Siehe unten.

  1. Unsere dynamische 4-Bit-Version ist 2 GB kleiner und hat gleichzeitig +1% zusätzliche Genauigkeit gegenüber der QAT-Version!

  2. In puncto Effizienz schneiden 2-Bit Q2_K_XL und andere sehr gut ab!

Quant
Unsloth
Unsloth + QAT
Platten-/Festplattengröße
Effizienz

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

chevron-rightKlicken Sie hier für die vollständigen Google Gemma 3 (27B) QAT-Benchmarks:hashtag
Modell
Unsloth
Unsloth + QAT
Platten-/Festplattengröße
Effizienz

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 Bugfixes + Ausführung

Wir haben außerdem bei einigen Llama 4-Bugs geholfen und diese behoben:

  • Llama 4 Scout änderte die RoPE-Scaling-Konfiguration in ihrem offiziellen Repo. Wir halfen, Probleme in llama.cpp zu beheben, um dies zu ermöglichen Änderung hierarrow-up-right

  • Das Epsilon von Llama 4s QK Norm für sowohl Scout als auch Maverick sollte aus der Konfigurationsdatei stammen – das bedeutet 1e-05 und nicht 1e-06 zu verwenden. Wir halfen dabei, diese in llama.cpparrow-up-right und transformersarrow-up-right

  • Das Llama 4-Team und vLLM haben unabhängig auch ein Problem behoben, bei dem QK Norm über alle Heads geteilt wurde (was nicht so sein sollte) hierarrow-up-right. MMLU Pro stieg von 68,58% auf 71,53% Genauigkeit.

  • Wolfram Ravenwolfarrow-up-right zeigte, wie unsere GGUFs über llama.cpp deutlich höhere Genauigkeit erreichen als Drittanbieter-Inferenzanbieter – dies war höchstwahrscheinlich eine Kombination der oben erklärten Probleme und wahrscheinlich auch auf Quantisierungsprobleme zurückzuführen.

Wie in unserem Diagramm gezeigt, liefern unsere 4-Bit Dynamic QAT-Quantisierungen eine bessere Leistung beim 5-shot MMLU und sind gleichzeitig kleiner in der Größe.

Ausführen von Llama 4 Scout:

Um beispielsweise Llama 4 Scout auszuführen, klonen Sie zuerst llama.cpp:

Laden Sie dann unseren neuen Dynamic v2.0-Quant für Scout herunter:

Und nun lassen Sie uns Inferenz durchführen!

circle-check

Zuletzt aktualisiert

War das hilfreich?