🦥GGUF Dynamiques 2.0 d'Unsloth
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.
Mise à jour du 10 sept. 2025 : Vous avez demandé des benchmarks plus exigeants, nous présentons donc les résultats Aider Polyglot ! Nos scores DeepSeek V3.1 GGUF dynamiques en 3 bits 75.6%, dépassant de nombreux LLM SOTA en pleine précision. En savoir plus.
Le avantage clé d'utiliser le package et les modèles Unsloth est notre rôle actif dans corriger des bugs critiques dans des modèles majeurs. Nous avons collaboré directement avec les équipes derrière Qwen3, Meta (Llama 4), Mistral (Devstral), Google (Gemma 1–3) et Microsoft (Phi-3/4), contribuant des correctifs essentiels qui améliorent significativement la précision.
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 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 besoin 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.


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_v3 et Calibration_v5 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.

Llama 3.1 (8B) Instruct a une précision MMLU 5-shot de 67,8% en utilisant une implémentation MMLU naïve. Nous constatons cependant que Llama tokenise "A" et "_A" (A avec un espace devant) en tant que différents ids de token. Si nous considérons à la fois les tokens espacés et non espacés, nous obtenons 68,2% (+0.4%)
Fait intéressant, Llama 3 selon LLM Harness d'Eleuther AI ajoute également "The best answer is"
à la question, suivant les benchmarks MMLU originaux de Llama 3. Il existe de nombreux autres problèmes subtils, et donc pour benchmarker tout cela dans un environnement contrôlé, nous avons conçu notre propre implémentation MMLU from scratch en investiguant github.com/hendrycks/test
✨ 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
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 formulew = q * block_scale avec chaque bloc ayant 32 poids. Voir pour plus de détails.wiki de llama.cpp version int4 - vraisemblablement?
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%
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é
qui calcule l'utilité du modèle tout en prenant également en compte sa taille sur disque et son score MMLU 5-shot : Nous devons soustraire 25
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.
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%).
Tableau tronqué des résultats pour le MMLU de Gemma 3 (27B). Voir ci-dessous.
Notre version dynamique 4 bits est 2 Go plus petite tout en ayant +1% de précision supplémentaire par rapport à la version QAT !
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
Google QAT Cliquez ici
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
Nous avons également aidé et corrigé quelques bugs de Llama 4 : Llama 4 Scout a modifié la configuration de mise à l'échelle RoPE dans leur repo officiel. Nous avons aidé à résoudre des problèmes dans llama.cpp pour permettre cette

modification ici llama.cpp et transformers
L'epsilon de la QK Norm de Llama 4 pour Scout et Maverick devrait provenir du fichier de configuration - cela signifie utiliser 1e-05 et non 1e-06. Nous avons aidé à résoudre ces problèmes dans iciL'équipe Llama 4 et vLLM ont également corrigé indépendamment un problème avec la QK Norm partagée entre toutes les têtes (ce qui ne devrait pas être le cas)
. MMLU Pro est passé de 68,58% à 71,53% de précision. Wolfram Ravenwolf

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*"],
--prompt "<|header_start|>user<|header_end|>\n\nCreate a Flappy Bird game.<|eot|><|header_start|>assistant<|header_end|>\n\n" En savoir plus sur l'exécution de Llama 4 ici : https://docs.unsloth.ai/basics/tutorial-how-to-run-and-fine-tune-llama-4
Mis à jour
Ce contenu vous a-t-il été utile ?

