🦥GGUF Dynamiques 2.0 d'Unsloth

Une grosse mise à jour de nos quantifications dynamiques !

Nous sommes ravis de présenter Unslotharrow-up-right La quantification dynamique v2.0 - une mise à niveau majeure de nos quants précédents. Cette nouvelle méthode surpasse les principales méthodes de quantification et fixe de nouveaux benchmarks pour Aider Polglot, MMLU 5-shot et divergence KL.

Cela signifie que vous pouvez désormais exécuter + affiner des LLM quantifiés tout en préservant autant de précision que possible ! Vous pouvez exécuter les GGUF 2.0 sur la plupart des moteurs d'inférence comme llama.cpp, LM Studio, etc.

Mise à jour du 27 février 2026 : Qwen3.5 est sorti et nous avons corrigé quelques problèmes de modèles de chat appelant des outils et évalué chaque GGUF sur la perplexité et la divergence KL. Voir les benchmarks !

Le principal avantage d'utiliser le package Unslotharrow-up-right et les quants est notre rôle actif dans la correction de bugs dans les modèles majeurs. Nous avons collaboré directement avec les équipes derrière Qwen3arrow-up-right, Meta (Llama 4)arrow-up-right, Mistral (Devstral)arrow-up-right, Google (Gemma 1–3)arrow-up-right et Microsoft (Phi-3/4)arrow-up-right, contribuant des correctifs qui augmentent la précision.

circle-check

Vous pouvez également consulter des benchmarks de cas d'utilisation réels réalisés par Benjamin Marie pour LiveCodeBench v6, MMLU Pro, etc. :

Vous pouvez voir comment les GGUF d'Unsloth performent mieux que les quants non-Unsloth malgré une taille d'environ 8 Go inférieure.

Analyse détaillée de nos benchmarks et de notre évaluation plus bas.

💡 Quoi de neuf dans Dynamic v2.0 ?

  • Sélection de couches repensée pour GGUFs + safetensors : Unsloth Dynamic 2.0 quantifie désormais les couches de manière beaucoup plus intelligente et étendue. Plutôt que de modifier uniquement certaines couches sélectionnées, nous ajustons désormais dynamiquement le type de quantification de chaque couche possible, et les combinaisons différeront pour chaque couche et modèle.

  • Les GGUF actuellement sélectionnés et tous les futurs téléchargements GGUF utiliseront Dynamic 2.0 et notre nouveau jeu de calibration. Le jeu de données contient plus de >1,5M tokens (selon le modèle) et se compose de données de haute qualité, triées et nettoyées manuellement - pour améliorer considérablement les performances de conversation en chat.

  • Auparavant, notre quantification Dynamic (DeepSeek-R1 GGUF 1,58-bit) n'était efficace que pour les architectures MoE. La quantification Dynamic 2.0 fonctionne désormais sur tous les modèles (y compris MOE et non-MOE).

  • Quants spécifiques au modèle : Chaque modèle utilise désormais un schéma de quantification personnalisé. Par exemple, les couches quantifiées dans Gemma 3 diffèrent considérablement de celles de Llama 4.

  • Pour maximiser l'efficacité, en particulier sur Apple Silicon et les appareils ARM, nous ajoutons également les formats Q4_NL, Q5.1, Q5.0, Q4.1 et Q4.0.

Pour garantir des benchmarks précis, nous avons construit un cadre d'évaluation interne pour faire correspondre les scores MMLU 5-shot officiels rapportés de Llama 4 et Gemma 3. Cela a permis des comparaisons à armes égales entre la précision pleine et Dynamic v2.0, QAT et imatrix quants GGUF.

Tous les futurs téléchargements GGUF utiliseront Unsloth Dynamic 2.0, et nos quants safetensor dynamiques 4 bits en bénéficieront également à l'avenir.

📊 Pourquoi la divergence KL ?

La précision n'est pas tout ce dont vous avez besoinarrow-up-right met en évidence comment l'élagage des couches, même en en sélectionnant des inutiles, entraîne toujours de grandes différences en termes de « flips ». Un « flip » est défini comme un changement de réponse d'incorrect à correct ou inversement. L'article montre comment le MMLU peut ne pas diminuer lorsque nous élaguons des couches ou effectuons une quantification, mais c'est parce que certaines réponses incorrectes peuvent avoir « flip » pour devenir correctes. Notre objectif est de correspondre au modèle original, donc mesurer les « flips » est une bonne métrique.

circle-info

La divergence KL devrait être l'un des standards d'or pour rapporter les erreurs de quantification selon l'article de recherche « Accuracy is Not All You Need ». Utiliser la perplexité est incorrect puisque les valeurs des tokens en sortie peuvent s'annuler, nous devons donc utiliser la KLD ou des benchmarks plus difficiles comme Aider.

L'article montre également qu'il est intéressant de constater que la divergence KL est fortement corrélée aux flips, et donc notre objectif est de réduire la divergence KL moyenne tout en augmentant l'espace disque de la quantification le moins possible.

⚖️ Surapprentissage du jeu de calibration

La plupart des frameworks rapportent la perplexité et la divergence KL en utilisant un ensemble de test d'articles Wikipédia. Cependant, nous avons remarqué que l'utilisation du jeu de calibration, qui est également lié à Wikipédia, fait que les quants surapprennent et obtiennent des scores de perplexité plus faibles. Nous utilisons Calibration_v3arrow-up-right et Calibration_v5arrow-up-right des jeux de données pour des tests équitables qui incluent certaines données wikitext parmi d'autres données. De plus, les modèles instruct ont des modèles de chat uniques, et l'utilisation de jeux de calibration uniquement textuels n'est pas efficace pour les modèles instructifs (les modèles de base oui). En fait, la plupart des imatrix GGUF sont généralement calibrés avec ces problèmes. En conséquence, ils performent naturellement mieux sur les benchmarks de divergence KL qui utilisent également des données Wikipédia, puisque le modèle est essentiellement optimisé pour ce domaine.

Pour assurer une évaluation équitable et contrôlée, nous n'utilisons pas notre propre jeu de calibration (qui est optimisé pour les performances en chat) lors des benchmarks de divergence KL. À la place, nous avons réalisé des tests en utilisant les mêmes jeux de données Wikipédia standard, nous permettant de comparer directement les performances de notre méthode Dynamic 2.0 à l'approche imatrix de référence.

🔢 Aventure de réplication MMLU

  • Répliquer le MMLU 5-shot a été cauchemardesque. Nous n'avons pas pu répliquer les résultats MMLU pour de nombreux modèles, y compris Llama 3.1 (8B) Instruct, Gemma 3 (12B) et d'autres en raison de problèmes d'implémentation subtils. Llama 3.1 (8B) par exemple devrait obtenir ~68,2 %, alors qu'une implémentation incorrecte peut atteindre 35 % de précision.

Problèmes d'implémentation MMLU

directement, et avons vérifié nos résultats sur plusieurs modèles en les comparant aux chiffres rapportés.

Réplication QAT de Gemma 3, benchmarks

  1. L'équipe Gemma a publié deux versions QAT (quantization aware training) de Gemma 3 : Q4_0 GGUF - Quantifie toutes les couches en Q4_0 via la formule w = q * block_scale avec chaque bloc ayant 32 poids. Voir arrow-up-rightle wiki llama.cpp

style TorchAO int4 Nous avons évalué toutes les versions Q4_0 GGUF et avons mené des expériences approfondies sur le modèle 12B. Nous constatons que le modèle QAT 12B Q4_0 obtient 67,07 %

tandis que la version 12B en bfloat16 pleine obtient 67,15 % en MMLU 5-shot. C'est très impressionnant ! Le modèle 27B est presque là !
Métrique
1B
4B
12B

27B

26.12%

55.13%

MMLU 5-shot

67,07 % (67,15 % BF16)

70,64 % (71,5 % BF16)

Espace disque

0,93 Go

2,94 Go

7,52 Go

16,05 Go

1.20

10.26

5.59

2.84

Efficacité* Nous avons conçu une nouvelle métrique d'efficacité

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

puisque le MMLU a 4 choix multiples - A, B, C ou D. Supposons que nous fassions un modèle qui choisit simplement des réponses au hasard - il obtiendra 25 % de précision et aura un espace disque de quelques octets. Mais clairement ce n'est pas un modèle utile.

Sur la divergence KL par rapport au modèle de base, ci-dessous se trouve un tableau montrant les améliorations. Rappel : plus la divergence KL est proche de 0, meilleur c'est (c.-à-d. 0 signifie identique au modèle en pleine précision)
Quant
KLD de référence
Go
KLD de référence

Nouveau KLD

1.035688

5.83

0.972932

6.06

IQ1_S

0.832252

6.33

0.800049

6.51

IQ1_M

0.535764

7.16

0.521039

7.31

IQ2_XXS

0.26554

8.84

0.258192

8.96

IQ2_M

0.229671

9.78

0.220937

9.95

Q2_K_XL

0.087845

12.51

0.080617

12.76

Q3_K_XL

0.024916

15.41

0.023701

15.64

Q4_K_XL

Si nous traçons le ratio de l'augmentation de l'espace disque et le changement du ratio de divergence KL, nous pouvons voir un bénéfice beaucoup plus clair ! Notre Q2_K_XL dynamique 2 bits réduit considérablement la KLD (environ 7,5 %).

  1. Tableau tronqué des résultats pour le MMLU de Gemma 3 (27B). Voir ci-dessous.

  2. Notre version dynamique 4 bits est plus petite de 2 Go tout en ayant +1 % de précision supplémentaire par rapport à la version QAT !

Sur la divergence KL par rapport au modèle de base, ci-dessous se trouve un tableau montrant les améliorations. Rappel : plus la divergence KL est proche de 0, meilleur c'est (c.-à-d. 0 signifie identique au modèle en pleine précision)
Unsloth
En termes d'efficacité, le Q2_K_XL 2 bits et d'autres semblent très performants !
Unsloth + QAT
Taille sur disque

IQ1_S

48.10

47.23

6.51

3.42

IQ1_M

59.20

56.57

7.31

4.32

IQ2_XXS

66.47

64.47

8.96

4.40

IQ2_M

68.70

67.77

9.95

4.30

Q2_K_XL

70.87

69.50

12.76

3.49

Q3_K_XL

71.47

71.07

15.64

2.94

Efficacité

70.64

17.2

2.65

chevron-rightGoogle QAT verthashtag
pour les benchmarks QAT complets de Gemma 3 (27B) de Google :
Unsloth
En termes d'efficacité, le Q2_K_XL 2 bits et d'autres semblent très performants !
Unsloth + QAT
Taille sur disque

Nouveau KLD

41.87

43.37

6.06

3.03

IQ1_S

48.10

47.23

6.51

3.42

IQ1_M

59.20

56.57

7.31

4.32

IQ2_XXS

66.47

64.47

8.96

4.40

Modèle

68.50

67.60

9.78

4.35

IQ2_M

68.70

67.77

9.95

4.30

Q2_K

68.27

67.07

10.07

4.18

IQ3_XXS

70.70

69.77

12.51

3.58

Q2_K_XL

70.87

69.50

12.76

3.49

Q3_K_M

71.23

71.00

15.41

2.98

Q3_K_XL

71.47

71.07

15.64

2.94

Q4_K_M

71.77

71.23

17.95

2.58

Q5_K_M

71.87

71.60

20.64

2.26

Q6_K

71.60

71.53

26.74

1.74

Efficacité

70.64

17.2

2.65

🦙 Q8_0

Corrections de bugs Llama 4 + exécution

a montré comment nos GGUF via llama.cpp obtiennent une précision bien supérieure à celle des fournisseurs d'inférence tiers - cela résultait très probablement d'une combinaison des problèmes expliqués ci-dessus, et aussi probablement de problèmes de quantification.

Comme montré dans notre graphique, notre quantification QAT dynamique 4 bits offre de meilleures performances sur le MMLU 5-shot tout en étant plus petite en taille.

Exécution de Llama 4 Scout :

cp llama.cpp/build/bin/llama-* llama.cpp

allow_patterns = ["*IQ2_XXS*"],

circle-check

Mis à jour

Ce contenu vous a-t-il été utile ?