For the complete documentation index, see llms.txt. This page is also available as Markdown.

🦥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 précision top-1 en plus à taille égale par rapport à tous les autres fournisseurs. Ceci est une mise à jour de notre première préversion anticipée 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.

Dans l’ensemble, Dynamic v3.0 préserve davantage la qualité du modèle tout en conservant la même taille, avec de meilleurs résultats sur des métriques comme Divergence-300 @32 et divergence KL.

Un immense merci pour tout votre soutien ! Nous avons vu plus de 5,1 millions de téléchargements d’Unsloth Qwen3.8 en seulement 5 jours !

Voir ci-dessous pour plus de graphiques/benchmarks et d’analyses

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é, issu de sources diverses. Le jeu de données est affiné pour le codage agentique, le chat, et les performances multilingues. Nous avons également amélioré la sélection des couches et introduit bien 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 utilisé 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 également.

  • Nous avons également retiré 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 Q4_0 module MTP séparé si nécessaire

  • Nous avons également réalisé quelques quants UD-1bit plus petits avec UD-IQ1_S pesant 6,2 Go (sans MTP), qui conservent environ 72 % de précision top-1 tout en étant 89 % plus petits.

  • UD-Q2_K_XL est environ +8 % plus précise en top-1 que la suivante, et elle fait 9,83 Go, et a réussi à créer un programme HTML fonctionnel avec 1 petit bug JS - auparavant, cela cassait.

Généré avec un GGUF Qwen3.8-27B 2 bits

🔀 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 créé un jeu de données de 300 exemples réservés (PAS dans le jeu de calibration) issus de Terminal-Bench 2.1 + DeepSWE + Harbor + MathArena 2025-26 + des prompts non latins/longs, et nous avons effectué un décodage greedy argmax pendant 32 tokens pour BF16 vs tous les quants et fournisseurs. Voir analyse du surapprentissage pour plus de détails sur le surapprentissage.

Cela nous permet d’évaluer s’il y a surapprentissage et si les sorties quantifiées ressemblent aux trajectoires BF16 sur plusieurs tokens. C’est une meilleure métrique que la précision top-1, puisque nous étendons KLD top-1 à quelque chose de plus proche d’un KLD top-1 sur 32 tokens.

❓Le 1-bit ne doit 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 tokens, d’environ 25 % de précision à moins de 8-10 %. Cette forte chute signifie que l’appel d’outils et les modes sans réflexion s’effondrent. Quelques problèmes et solutions lors de l’utilisation du 1-bit :

  1. Bouclage excessif Vous verrez beaucoup de bouclage avec des quants en dessous de UD-Q2_K_XL - utilisez presence_penalty = 1.5 dans tous les cas (ou plus)

  2. Réponses vides Activez toujours le raisonnement, au moins en faible niveau de raisonnement, pour les quants 1-bit - les modes sans raisonnement empêchent de toute façon le modèle de produire une sortie

  3. 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, continuera à les appeler ou ne les appellera même pas.

  4. Les connaissances générales fonctionnent Une récupération top-1 de 77 % ne remplace pas 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 des questions factuelles de connaissances générales très courtes, 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 du Top-1 et du KLD. À tous les niveaux, en particulier sur les tailles de quant plus petites, les quants Unsloth UD-3 atteignent 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 de fournir une comparaison équitable à tout le monde.

🕊️Pas de surapprentissage

En comparant à notre ancien UD-2 sur Wikitext et Code non vus, nous montrons une forte amélioration du KLD - les plus gros non pas tant que ça, donc nous utilisons toujours notre ancien UD-2 pour les plus grands quants - nous prévoyons aussi de les expérimenter et de les améliorer !

Nous contrôlons également le surapprentissage en utilisant des jeux de données totalement différents pour la calibration et en supprimant autant que possible toutes les fuites. Nous testons le KLD sur ces jeux de données 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 prompts provenant de DeepSWE, Terminal Bench et d’autres, et sert de jeu de données supplémentaire pour évaluer le surapprentissage - et montre que nos nouvelles méthodes UD-3 ne surapprennent pas.


Dynamic v2.0 (Ancien)

Nous présentons Unsloth la quantification Dynamic v2.0 - une mise à niveau majeure de nos quants précédents. Cette nouvelle méthode surpasse les principales méthodes de quantification et établit de nouveaux benchmarks pour Aider Polyglot, le MMLU 5-shot et la divergence KL.

Cela signifie que vous pouvez désormais exécuter + affiner des LLM quantifiés tout en préservant un maximum de précision ! 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 avr. 2026 : Voir nos nouveaux benchmarks GGUF pour Qwen3.6 et Gemma 4.

Mise à jour du 27 févr. 2026 : Qwen3.5 est sorti et nous avons corrigé certains problèmes de chat template pour l’appel d’outils et benchmarké chaque GGUF sur la perplexité et la divergence KL. Voir les benchmarks !

Le principal avantage de l’utilisation du package Unsloth et de nos 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 contribuant à des correctifs qui augmentent la précision.

Benchmarks Gemma 4 26B A4B (plus bas est mieux)
Benchmarks Qwen3.6 (plus bas est mieux)

Vous pouvez aussi consulter des benchmarks de cas d’usage réels mené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 de moins.

Une analyse détaillée de nos benchmarks et de notre évaluation se trouve plus bas.

💡 Quoi de neuf dans Dynamic v2.0 ?

  • Sélection des couches repensée pour les GGUF + safetensors : Unsloth Dynamic 2.0 quantifie désormais les couches de manière beaucoup plus intelligente et plus exhaustive. Plutôt que de ne modifier que certaines couches, nous ajustons désormais dynamiquement le type de quantification de chaque couche possible, et les combinaisons seront différentes pour chaque couche et chaque modèle.

  • Les GGUF actuellement sélectionnés et tous les futurs téléversements de GGUF utiliseront Dynamic 2.0 et notre nouveau jeu de données de calibration. Le jeu de données contient plus de 1,5 M tokens (selon le modèle) et se compose de données de haute qualité, sélectionnées à la main et nettoyées - afin d’améliorer fortement les performances de chat conversationnel.

  • Auparavant, notre quantification Dynamic (GGUF DeepSeek-R1 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 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é, notamment 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 benchmarking précis, nous avons construit un cadre d’évaluation interne afin de faire correspondre les scores MMLU 5-shot officiels rapportés de Llama 4 et Gemma 3. Cela a permis des comparaisons équitables entre la précision complète et Dynamic v2.0, QAT et les quants GGUF standard imatrix. Tous les futurs téléversements de GGUF utiliseront Unsloth Dynamic 2.0, et nos quants safetensor Dynamic 4-bit en bénéficieront également à l’avenir. GGUF standard imatrix.

Tous les futurs téléversements de 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 n’est pas tout ce dont vous avez besoin montre comment l’élagage des couches, même en sélectionnant des couches inutiles, produit encore de vastes différences en termes de « flips ». Un « flip » est défini comme un changement de réponse, d’incorrecte à correcte ou inversement. L’article montre comment 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 ont pu « basculer » pour devenir correctes. Notre objectif est de faire correspondre le modèle original, donc mesurer les « flips » est une bonne métrique.

divergence KL devrait être l’un des standards de référence pour signaler les erreurs de quantification conformément à l’article de recherche « Accuracy is Not All You Need ». Utiliser la perplexité est incorrect car les valeurs des tokens de sortie peuvent s’annuler, donc nous devons utiliser la KLD ou des benchmarks plus difficiles comme Aider.

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 également lié à Wikipédia, fait surapprendre les quants et obtenir de meilleurs scores de perplexité. Nous utilisons Calibration_v3 et Calibration_v5 des jeux de données pour des tests équitables, qui incluent notamment certaines données wikitext parmi d’autres données. De plus, les modèles instruct ont des chat templates 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 aussi 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 benchmarking de la divergence KL. À la place, nous avons mené des tests en utilisant les mêmes jeux de données Wikipédia standards, ce qui nous permet de comparer directement les performances de notre méthode Dynamic 2.0 à l’approche imatrix de base.

🔢 Aventure de reproduction du MMLU

  • Reproduire le MMLU 5-shot était cauchemardesque. Nous n’avons pas pu reproduire les résultats MMLU pour de nombreux modèles, y compris Llama 3.1 (8B) Instruct, Gemma 3 (12B) et d’autres, à cause de problèmes subtils d’implémentation. Llama 3.1 (8B), par exemple, devrait obtenir ~68,2 %, alors qu’avec des implémentations incorrectes on peut atteindre 35 % de précision.

Problèmes d’implémentation du MMLU
  • Llama 3.1 (8B) Instruct a une précision MMLU 5-shot de 67,8 % avec une implémentation naïve du MMLU. Nous constatons cependant que Llama tokenise "A" et "_A" (A avec un espace devant) comme des identifiants de token différents. Si nous prenons en compte à la fois les tokens avec et sans espace, nous obtenons 68,2 % (+0.4%)

  • Fait intéressant, Llama 3, selon le LLM Harness d’Eleuther AI, 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 du MMLU à partir de zéro en examinant 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 :

  1. GGUF Q4_0 - quantifie toutes les couches en Q4_0 via la formule w = q * block_scale avec chaque bloc contenant 32 poids. Voir wiki de llama.cpp pour plus de détails.

  2. version int4 - vraisemblablement style int4 TorchAO?

Nous avons benchmarké toutes les versions GGUF Q4_0, et mené de nombreuses expériences sur le modèle 12B. Nous voyons que le modèle QAT 12B Q4_0 obtient 67,07 % tandis que la version complète bfloat16 12B obtient 67,15 % en MMLU 5-shot. C’est très impressionnant ! Le modèle 27B est presque déjà là !

Métrique
1B
4B
12B
27B

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 également en compte sa taille sur disque et son score MMLU 5-shot :

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

Concernant la divergence KL par rapport au modèle de base, voici un tableau présentant les améliorations. Rappel : plus la divergence KL est proche de 0, mieux c’est (c.-à-d. 0 signifie identique au modèle en précision complète)

Quant
KLD de base
Go
Nouveau KLD
Go

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 rapport entre 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 assez fortement le KLD (environ 7,5 %).

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

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

  2. Du point de vue de l’efficacité, le Q2_K_XL 2 bits et les autres semblent très bons !

Quant
Unsloth
Unsloth + QAT
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

QAT Google

70.64

17.2

2.65

Cliquez ici pour les benchmarks QAT complets de Gemma 3 (27B) de Google :
Modèle
Unsloth
Unsloth + QAT
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

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

QAT Google

70.64

17.2

2.65

🦙 Corrections de bugs Llama 4 + exécution

Nous avons aussi aidé à corriger quelques bugs de Llama 4 :

  • Llama 4 Scout a modifié la configuration du RoPE Scaling dans leur dépôt officiel. Nous avons aidé à résoudre des problèmes dans llama.cpp pour permettre ce changement 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 Llama 4 et vLLM ont aussi corrigé indépendamment un problème de QK Norm 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 obtiennent une précision bien plus élevée que les fournisseurs d’inférence tiers - cela était très probablement dû à une combinaison des problèmes expliqués ci-dessus, ainsi qu’aux problèmes de quantification.

Comme le montre 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 :

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

Puis téléchargez notre nouvelle quantification dynamique v 2.0 pour Scout :

Et maintenant, faisons de l’inférence !

Mis à jour

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