🦥GGUF dynamiques 3.0 d'Unsloth
Unsloth Dynamic v3.0 est la prochaine itération de notre quantification dynamique et une amélioration majeure par rapport à Dynamic v2.0.
Aujourd’hui, nous lançons Qwen3.8-27B des quantifications Dynamic v3.0 qui offrent >10 % de meilleure précision top-1 % à taille égale par rapport à tous les autres fournisseurs. Il s’agit d’une mise à jour de notre première aperçu anticipé version de Dynamic v3.0. Les nouveaux GGUF 3.0 fonctionnent avec la plupart des moteurs d’inférence, y compris llama.cpp et Unsloth Desktop.
Dynamic v3.0 préserve globalement davantage la qualité du modèle tout en gardant la même taille, avec de meilleurs résultats sur des métriques comme Divergence-300 @32 et divergence KL.
Un immense merci aussi pour tout votre soutien ! Nous avons vu plus de 5,1 millions de téléchargements d’Unsloth Qwen3.8 en seulement 5 jours !

Notre nouvelle méthodologie comprend de nombreuses nouvelles fonctionnalités et améliorations. Nous utilisons désormais un jeu de données de calibration imatrix de bien meilleure qualité provenant de sources diverses. Le jeu de données est affiné pour le codage agentique, le chat, et les performances multilingues. Nous avons aussi amélioré la sélection des couches et introduit beaucoup plus de techniques de quantification afin de préserver autant que possible la qualité du modèle.
Nous n’entraînons pas sur le jeu de données de calibration imatrix, et nous n’utilisons PAS QAT ou QAD. Tout est fait via la quantification post-entraînement. Le fichier imatrix que nous utilisons est disponible pour que la communauté le teste, l’évalue et l’utilise. Nous encourageons les chercheurs et les développeurs à créer des variantes et des fine-tunes de Qwen3.8 en utilisant nos quants/imatrix Unsloth. Vous pouvez aussi lire notre analyse du surapprentissage .
Nous avons également supprimé le module MTP des quants plus petits en dessous de
UD-Q2_K_XL(8,37 Go et moins) afin d’économiser environ 500 Mo d’espace disque - vous pouvez utiliser le module MTP séparéQ4_0si nécessaireNous avons aussi réalisé des quants UD-1bit plus petits avec
UD-IQ1_Sà 6,2 Go (sans MTP), qui conservent environ 72 % de précision top-1 % tout en étant 89 % plus petits.UD-Q2_K_XLest d’environ +8 % plus précis en top-1 % que le meilleur suivant, et il fait 9,83 Go et a réussi à créer un programme HTML fonctionnel avec un petit bug JS - auparavant, il cassait.

🔀 Divergence-300 @32
Nous rapportons généralement la précision top-1 % comme pour Kimi-K3 « Dynamic 1-bit atteint ~78.9% la précision top-1 tout en étant 62 % plus petit». Cependant, le top-1 % est un argmax sur une seule prédiction, donc ce n’est pas vraiment efficace pour évaluer l’inférence réelle.
Nous avons ստեղծé un jeu de données de 300 exemples mis de côté (PAS dans le jeu de calibration) à partir de Terminal-Bench 2.1 + DeepSWE + Harbor + MathArena 2025-26 + des invites non latines/longs documents, et nous avons effectué un décodage greedy argmax pendant 32 jetons pour BF16 contre tous les quants et fournisseurs. Voir analyse du surapprentissage pour plus de détails sur le surapprentissage.
Cela nous permet d’évaluer s’il existe un surapprentissage et si les sorties quantifiées sont similaires aux trajectoires BF16 sur plusieurs jetons. C’est une meilleure métrique que la précision top-1 %, puisque nous étendons le KLD top-1 % à quelque chose de plus proche du KLD top-1 % sur 32 jetons.

❓Le 1-bit ne devrait pas être utilisé pour des cas d’usage agentiques
Comme on le voit dans 🔀 Divergence-300 @32, il y a une forte chute de UD-Q2_K_XL à UD-IQ2_S pour la prédiction sur 32 jetons, d’environ 25 % de précision à moins de 8-10 %. Cette chute brutale signifie que les appels d’outils et les modes sans réflexion s’effondrent. Quelques problèmes et atténuations si vous utilisez le 1-bit :
Bouclage excessif Vous verrez beaucoup de boucles en utilisant des quants en dessous de UD-Q2_K_XL - utilisez
presence_penalty = 1.5dans tous les cas (ou plus)Réponses vides Activez toujours la réflexion au moins en faible niveau de raisonnement pour les quants 1-bit - les modes sans raisonnement font de toute façon que le modèle ne produit même pas de sortie
Cas d’usage agentiques et appel d’outils N’utilisez pas le modèle pour l’appel d’outils - seulement les connaissances générales sont conservées lorsqu’il est fortement quantifié, et le modèle échouera soit à appeler les outils, soit continuera à les appeler, soit ne les appellera même pas.
Les connaissances générales fonctionnent Un retour de 77 % en top-1 % n’est pas un remplacement pour Divergence-300 @32 à 8 %, qui est un meilleur indicateur pour les charges de travail d’inférence réelles - vous pouvez utiliser le modèle pour de très courtes questions de faits de connaissances générales, mais il vaut mieux utiliser UD-Q2_K_XL.
🔀 Benchmarks de divergence KL
Nous avons également exécuté des benchmarks KLD pour tous les fournisseurs et rapportons la moyenne Top-1 % et KLD. À tous les niveaux, en particulier pour les tailles de quantification plus petites, les quants Unsloth UD-3 obtiennent jusqu’à +10 % de précision top-1 % supplémentaire à espace disque égal !
Tous les graphiques retirent la tête MTP de l’axe x lors du calcul de l’espace disque afin d’offrir une comparaison équitable à tout le monde.


🕊️Pas de surapprentissage
En comparant à notre ancien UD-2 sur Wikitext et Code non vus, nous montrons une grande amélioration du KLD - pas autant pour les plus gros, donc nous utilisons toujours notre ancien UD-2 pour les quants plus grands - nous prévoyons d’expérimenter et de les améliorer aussi !
Nous contrôlons aussi le surapprentissage en utilisant des ensembles de données totalement différents pour la calibration et en supprimant autant que possible toutes les fuites. Nous testons le KLD sur ces ensembles non vus, et nous ne faisons pas non plus de QAD / QAT, seulement du PTQ pur, donc le surapprentissage est moins préoccupant que dans d’autres approches QAD / QAT.

De même 🔀 Divergence-300 @32 utilise un jeu de données non vu de 300 invites provenant de DeepSWE, Terminal Bench et d’autres, et sert d’autre jeu de données pour évaluer le surapprentissage - et montre que nos nouvelles méthodes UD-3 ne surapprennent pas.
Dynamic v2.0 (ancien)
Nous introduisons Unsloth la quantification Dynamic v2.0 - une amélioration majeure de nos précédents quants. Cette nouvelle méthode surpasse les principales méthodes de quantification et établit de nouveaux benchmarks pour Aider Polyglot, MMLU 5-shot et divergence KL.
Cela signifie que vous pouvez désormais exécuter + fine-tuner 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, Unsloth Studio etc.
Mise à jour du 20 avril 2026 : Découvrez nos nouveaux benchmarks GGUF pour Qwen3.6 et Gemma 4.
Mise à jour du 27 février 2026 : Qwen3.5 est sorti et nous avons corrigé quelques problèmes de modèle de chat pour l’appel d’outils, et benchmarké chaque GGUF sur la perplexité et la divergence KL. Voir les benchmarks !
Le principal avantage d’utiliser le package Unsloth et les quants est notre rôle actif dans la correction de bugs dans les grands modèles. Nous avons collaboré directement avec les équipes derrière Qwen3, Meta (Llama 4), Mistral (Devstral), Google (Gemma 1–3) et Microsoft (Phi-3/4), en apportant des correctifs qui augmentent la précision.


Les GGUF dynamiques d’Unsloth peuvent désormais être exécutés dans Unsloth Studio ✨

mise à jour du 10 sept. 2025 : Vous avez demandé des benchmarks plus difficiles, alors voici les résultats d’Aider Polyglot ! Notre GGUF DeepSeek V3.1 dynamique 3 bits obtient 75.6%, surpassant de nombreux LLM SOTA en précision complète. En savoir plus.


Vous pouvez aussi consulter les benchmarks de cas d’usage réels réalisés par Benjamin Marie pour LiveCodeBench v6, MMLU Pro, etc. :


Vous pouvez voir comment les GGUF d’Unsloth obtiennent de meilleures performances que les quants non Unsloth malgré une taille d’environ 8 Go plus petite.
Une analyse détaillée de nos benchmarks et évaluations se trouve plus bas.
💡 Quoi de neuf dans Dynamic v2.0 ?
Sélection des couches remaniée pour les GGUF + safetensors : Unsloth Dynamic 2.0 quantifie désormais sélectivement les couches de manière beaucoup plus intelligente et plus extensive. Plutôt que de modifier uniquement certaines couches, nous ajustons désormais dynamiquement le type de quantification de chaque couche possible, et les combinaisons diffèrent pour chaque couche et chaque modèle.
Les uploads GGUF actuellement sélectionnés et tous les futurs utiliseront Dynamic 2.0 et notre nouveau jeu de données de calibration. Le jeu de données contient plus de >1,5 M jetons (selon le modèle) et comprend des données de haute qualité, curées à la main et nettoyées - afin d’améliorer considérablement les performances de chat conversationnel.
Auparavant, notre quantification dynamique (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 les MOE et les 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 aussi les formats Q4_NL, Q5.1, Q5.0, Q4.1 et Q4.0.
Pour garantir un benchmark précis, nous avons construit un cadre d’évaluation interne afin d’atteindre les scores 5-shot MMLU officiellement rapportés de Llama 4 et Gemma 3. Cela a permis des comparaisons équitablement directes entre précision complète vs. Dynamic v2.0, QAT et les quants GGUF standard imatrix .


Tous les futurs uploads GGUF utiliseront Unsloth Dynamic 2.0, et nos quants safetensor Dynamic 4-bit en bénéficieront également à l’avenir.
📊 Pourquoi la divergence KL ?
La précision ne fait pas tout montre comment l’élagage des couches, même en sélectionnant celles qui sont inutiles, produit malgré tout de vastes différences en termes de « flips ». Un « flip » est défini comme un changement de réponse, de incorrecte à correcte ou inversement. L’article montre que le MMLU peut ne pas diminuer lorsque nous élaguons des couches ou faisons de la quantification, mais c’est parce que certaines réponses incorrectes peuvent avoir « flipé » pour devenir correctes. Notre objectif est de faire correspondre le modèle original, donc mesurer les « flips » est une bonne métrique.


L’article montre aussi, de manière intéressante, que la divergence KL est fortement corrélée aux flips, et notre objectif est donc de réduire la divergence KL moyenne tout en augmentant le moins possible l’espace disque de la quantification.
⚖️ Surapprentissage du jeu de données 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 données de calibration, qui est aussi lié à Wikipédia, entraîne un surapprentissage des quants et des scores de perplexité plus faibles. Nous utilisons Calibration_v3 et Calibration_v5 des ensembles de données pour des tests équitables, incluant 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 données de calibration uniquement textuels n’est pas efficace pour les modèles instruct (les modèles de base oui). En fait, la plupart des GGUF 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 équitable et contrôlée, nous n’utilisons pas notre propre jeu de données 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, ce qui nous a permis de comparer directement les performances de notre méthode Dynamic 2.0 à l’approche imatrix de référence.
🔢 L’aventure de réplication de MMLU
Réppliquer le 5-shot MMLU était cauchemardesque. Nous n’avons pas pu reproduire les résultats MMLU pour de nombreux modèles, notamment Llama 3.1 (8B) Instruct, Gemma 3 (12B) et d’autres, à cause de problèmes subtils d’implémentation. Par exemple, Llama 3.1 (8B) devrait obtenir environ 68,2 %, tandis qu’en utilisant des implémentations incorrectes on peut atteindre 35 % de précision.

Llama 3.1 (8B) Instruct a une précision MMLU 5-shot de 67,8 % avec une implémentation MMLU naïve. Nous constatons cependant que Llama tokenise « A » et « _A » (A avec un espace devant) comme des identifiants de jetons différents. Si l’on considère à la fois les jetons avec espace et sans espace, on obtient 68,2 % (+0.4%)
Fait intéressant, Llama 3 selon LLM Harness ajoute aussi « La meilleure réponse est » à la question, en suivant les benchmarks MMLU originaux de Llama 3.
Il existe de nombreux autres problèmes subtils, et pour tout benchmarker dans un environnement contrôlé, nous avons conçu notre propre implémentation MMLU de zéro en examinant github.com/hendrycks/test directement, et nous avons vérifié nos résultats sur plusieurs modèles en les comparant aux chiffres rapportés.
✨ Réplication et benchmarks QAT de Gemma 3
L’équipe Gemma a publié deux versions QAT (entraînement conscient de la quantification) de Gemma 3 :
GGUF Q4_0 - Quantifie toutes les couches en Q4_0 via la formule
w = q * block_scaleavec 32 poids par bloc. Voir le wiki llama.cpp pour plus de détails.version int4 - vraisemblablement style TorchAO int4?
Nous avons benchmarké toutes les versions GGUF Q4_0, et 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 bfloat16 12B complète obtient 67,15 % en 5-shot MMLU. C’est très impressionnant ! Le modèle 27B s’en approche presque totalement !
MMLU 5-shot
26.12%
55.13%
67,07 % (67,15 % BF16)
70,64 % (71,5 % BF16)
Espace disque
0,93 Go
2,94 Go
7,52 Go
16,05 Go
Efficacité*
1.20
10.26
5.59
2.84
Nous avons conçu une nouvelle métrique d’efficacité qui calcule l’utilité du modèle tout en prenant en compte sa taille disque et son score MMLU 5-shot :
Nous devons moins 25 puisque MMLU a 4 choix multiples - A, B, C ou D. Supposons que nous créions un modèle qui choisit simplement les réponses au hasard - il obtiendra 25 % de précision, et n’occupera que quelques octets. Mais clairement, ce n’est pas un modèle utile.
Concernant la divergence KL par rapport au modèle de base, voici un tableau mettant en évidence les améliorations. Rappel : plus la divergence KL est proche de 0, mieux c’est (c’est-à-dire que 0 signifie identique au modèle en précision complète)
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
Si nous traçons le ratio entre l’augmentation de l’espace disque et la variation du ratio de divergence KL, nous pouvons voir un bénéfice beaucoup plus clair ! Notre Q2_K_XL dynamique 2 bits réduit le KLD de manière assez importante (environ 7,5 %).
Tableau tronqué des résultats MMLU pour Gemma 3 (27B). Voir ci-dessous.
Notre version dynamique 4 bits est 2 Go plus petite tout en offrant +1 % de précision supplémentaire par rapport à la version QAT !
Du point de vue de l’efficacité, les Q2_K_XL 2 bits et autres semblent très bien se comporter !
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
🦙 Corrections de bugs et exécution de Llama 4
Nous avons aussi aidé et corrigé quelques bugs de Llama 4 :
Llama 4 Scout a modifié la configuration de mise à l’échelle RoPE dans son dépôt officiel. Nous avons aidé à résoudre des problèmes dans llama.cpp pour permettre cela modification ici

l’epsilon du 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 cela dans llama.cpp et transformers
L’équipe de Llama 4 et vLLM ont aussi corrigé indépendamment un problème où QK Norm était partagé entre toutes les têtes (ce qui ne devrait pas être le cas) ici. La précision MMLU Pro est passée de 68,58 % à 71,53 %.
Wolfram Ravenwolf a montré comment nos GGUF via llama.cpp atteignent une précision bien plus élevée que les 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 le montre notre graphique, notre quantification Dynamic QAT 4 bits offre de meilleures performances en 5-shot MMLU tout en étant également plus petite en taille.
Exécution de Llama 4 Scout :
Pour exécuter Llama 4 Scout par exemple, clonez d’abord llama.cpp :
Puis téléchargez notre nouvelle quantification dynamic v 2.0 pour Scout :
Et maintenant, faisons l’inférence !
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 ?

