🦥Unsloth Dynamic 2.0 GGUFs

Une grande nouvelle mise à niveau de nos quantifications dynamiques !

Nous sommes ravis de présenter notre méthode de quantification dynamique v2.0 - une mise à niveau majeure par rapport à nos quants précédents. Cette nouvelle méthode surpasse les principales méthodes de quantification et établit de nouveaux repères pour le MMLU en 5-shot et la divergence KL.

Cela signifie que vous pouvez désormais exécuter et affiner des LLM quantifiés tout en préservant autant que possible la précision ! Vous pouvez exécuter les GGUFs 2.0 sur n'importe quel moteur d'inférence comme llama.cpp, Ollama, Open WebUI, etc.

circle-check

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

Thinking Aider Benchmarks
Benchmarks MMLU 5-shot

💡 Quoi de neuf dans Dynamic v2.0 ?

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

  • Les téléchargements GGUF actuels sélectionnés et tous les téléchargements futurs 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é, sélectionnées et nettoyées manuellement - pour améliorer considérablement les performances de conversation.

  • 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 sur mesure. 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 désormais également les formats Q4_NL, Q5.1, Q5.0, Q4.1 et Q4.0.

Pour assurer un benchmarking précis, nous avons construit un cadre d'évaluation interne pour correspondre aux scores MMLU 5-shot officiellement rapportés de Llama 4 et Gemma 3. Cela a permis des comparaisons directe (apple-to-apples) entre la précision totale et Dynamic v2.0, QAT et standard imatrix quants GGUF.

Tous les futurs téléchargements GGUF utiliseront Unsloth Dynamic 2.0, et nos quants safe tensor dynamiques en 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 sélectionnant des couches inutiles, engendre encore d'énormes différences en termes de « flips ». Un « flip » est défini comme une réponse passant de incorrecte à correcte 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 ont pu « basculer » pour devenir correctes. Notre objectif est d'égaler le modèle original, donc mesurer les « flips » est un bon indicateur.

circle-info

Divergence KL devrait être la référence d'or pour le rapport des erreurs de quantification selon l'article de recherche « Accuracy is Not All You Need ». Utiliser la perplexité est incorrect puisque les valeurs des tokens de sortie peuvent s'annuler, nous devons donc utiliser la KLD !

L'article montre également que, de manière intéressante, 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 aussi 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 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 composés uniquement de texte n'est pas efficace pour les modèles instructifs (les modèles de base oui). En fait, la plupart des GGUFs imatrix 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 garantir une évaluation juste et contrôlée, nous n'utilisons pas notre propre jeu de calibration (qui est optimisé pour les performances de chat) lors du benchmark de la divergence KL. À la place, nous avons effectué 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

  • La réplication du 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 subtiles problèmes d'implémentation. Llama 3.1 (8B) par exemple devrait obtenir ~68,2%, tandis 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-rightpour plus de détails.

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

tandis que la version complète bfloat16 12B obtient 67,15% sur le MMLU 5-shot. C'est très impressionnant ! Le modèle 27B est en grande partie presque au niveau !
1B
4B
Métrique
27B

12B

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 créions 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.

Quant
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, mieux c'est (c.-à-d. 0 signifie identique au modèle en pleine précision)
KLD de référence
Go
KLD de référence

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

Nouveau KLD

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 avantage bien plus clair ! Notre Q2_K_XL dynamique 2 bits réduit assez 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 2 Go plus petite tout en ayant +1% de précision supplémentaire par rapport à la version QAT !

Quant
Unsloth
En termes d'efficacité, Q2_K_XL en 2 bits et d'autres semblent très performants !
Taille sur disque
Efficacité

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

Unsloth + QAT

70.64

17.2

2.65

chevron-rightGoogle QAT Cliquez icihashtag
Modèle
Unsloth
En termes d'efficacité, Q2_K_XL en 2 bits et d'autres semblent très performants !
Taille sur disque
Efficacité

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

pour les benchmarks QAT complets de Google pour Gemma 3 (27B) :

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

Q2_K

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

Q3_K_M

71.87

71.60

20.64

2.26

Q8_0

71.60

71.53

26.74

1.74

Unsloth + QAT

70.64

17.2

2.65

🦙 Q6_K

Correctifs de bugs et exécution pour Llama 4

a montré comment nos GGUFs via llama.cpp atteignent une précision bien supérieure à celle des fournisseurs d'inférence tiers - cela était très probablement une combinaison des problèmes expliqués ci-dessus, et probablement aussi dû à des 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 également plus petite en taille.

Exécution de Llama 4 Scout :

Pour exécuter Llama 4 Scout par exemple, cloner d'abord llama.cpp :

allow_patterns = ["*IQ2_XXS*"],

circle-check

Mis à jour

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