🦥Unsloth Dynamic GGUFs sur Aider Polyglot
Performances des Dynamic GGUF d'Unsloth sur les benchmarks Aider Polyglot
Nous sommes ravis de montrer comment Unsloth Dynamic GGUFs permet de quantifier des LLMs comme DeepSeek-V3.1 (671B) jusqu'à seulement quant 1-bit ou 3 bits, et d'être pourtant capable de surpasser des modèles SOTA comme GPT-4.5, GPT-4.1 (avril 2025) et Claude-4-Opus (mai 2025).
Précédemment, nous avons démontré comment Unsloth Dynamic GGUFs surpassent d'autres méthodes de quantification sur le MMLU 5-shot et la divergence KL. Maintenant, nous présentons leurs performances sur des évaluations tierces indépendantes utilisant le Aider Polyglot benchmark.


⭐Résultats clés
Notre quant 1-bit Unsloth Dynamic GGUF réduit DeepSeek-V3.1 de 671GB → 192GB (-75% de taille) et le mode sans réflexion surpasse largement GPT-4.1 (avr. 2025), GPT-4.5 et DeepSeek-V3-0324.
3 bits Unsloth DeepSeek-V3.1 (mode thinking) GGUF : Surpasse Claude-4-Opus-20250514 (mode thinking).
5 bits Unsloth DeepSeek-V3.1 (mode non-thinking) GGUF : Équivaut aux performances de Claude-4-Opus-20250514 (mode non-thinking).
Les Unsloth Dynamic GGUFs obtiennent systématiquement de meilleurs résultats que les autres GGUFs imatrix non-Dynamic Unsloth
D'autres quantifications DeepSeek-V3.1 non-Unsloth en 1 bit et 2 bits, ainsi que la quantification standard en 1 bit sans quantification sélective des couches, ont soit échoué au chargement soit produit des sorties incompréhensibles et en boucle. Cela met en évidence comment Unsloth Dynamic GGUFs parviennent à largement conserver la précision alors que d'autres méthodes ne fonctionnent même pas.
Pourquoi le Aider Polyglot benchmark ? Aider est l'une des mesures les plus complètes de la capacité des LLM à écrire, coder, suivre des instructions et appliquer des modifications sans intervention humaine, en faisant l'un des benchmarks les plus difficiles et les plus précieux pour une utilisation réelle.
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.
🦥Quantification dynamique Unsloth
Le 1 bit dynamique place les couches importantes en 8 ou 16 bits et les couches non importantes en 1, 2, 3, 4, 5 ou 6 bits.
En nov. 2024, notre Quantification dynamique 4 bits a démontré comment vous pouviez en grande partie restaurer le fine-tuning QLoRA et la précision du modèle en quantifiant sélectivement des couches. Nous avons ensuite étudié DeepSeek-R1l'architecture de
Nos Dynamic GGUFs sont encore plus efficaces lorsqu'ils sont associés à notre jeu de calibration imatrix, conçu pour les performances de chat et de codage. Tout cela a permis une compression extrême des LLM sans perte catastrophique de qualité.
Par exemple, dans Qwen2-VL-2B-Instruct, quantifier naïvement toutes les couches en 4 bits fait que le modèle échoue à comprendre l'image ci-dessous. C'est un train, pas une scène côtière !


Nous avons également présenté des benchmarks dynamiques dans https://docs.unsloth.ai/basics/unsloth-dynamic-2.0-ggufs pour Gemma 3 et Llama 4 Scout, montrant l'efficacité de notre méthodologie :


⚙️Configuration du benchmark
Pour nos expériences DeepSeek-V3.1, nous avons comparé différents nombres de bits de Unsloth Dynamic GGUFs contre :
LLMs en pleine précision, non quantifiés y compris GPT 4.5, 4.1, Claude-4-Opus, DeepSeek-V3-0324, etc.
Autres GGUFs imatrix dynamiques V3.1
Semi-dynamique (quantification sélective de certaines couches) GGUFs imatrix V3.1 pour des fins d'ablation.
Les expériences du benchmark ont été principalement conduites par David Sluys (neolithic5452 sur Discord Aider), un contributeur communautaire de confiance aux évaluations Polyglot d'Aider. Les tests ont été exécutés ~3 fois et moyennés pour un score médian, et la précision Pass-2 est rapportée par convention. Il existe des extraits de code reproductibles du benchmark dans le Discord d'Aider.
Développer pour les benchmarks Aider du modèle de raisonnement
GPT-5
86.7
Gemini 2.5 Pro (juin)
83.1
o3
76.9
DeepSeek V3.1
76.1
(3 bits) DeepSeek V3.1 Unsloth
75.6
Claude-4-Opus (mai)
72
o4-mini (Élevé)
72
DeepSeek R1 0528
71.4
(2 bits) DeepSeek V3.1 Unsloth
66.7
Claude-3.7-Sonnet (févr.)
64.9
(1 bit) DeepSeek V3.1 Unsloth
57.8
DeepSeek R1
56.9
Développer pour les benchmarks Aider du modèle non-raisonnement
DeepSeek V3.1
71.6
Claude-4-Opus (mai)
70.7
(5 bits) DeepSeek V3.1 Unsloth
70.7
(4 bits) DeepSeek V3.1 Unsloth
69.7
(3 bits) DeepSeek V3.1 Unsloth
68.4
(2 bits) DeepSeek V3.1 Unsloth
65.8
Qwen3 235B A22B
59.6
Kimi K2
59.1
(1 bit) DeepSeek V3.1 Unsloth
55.7
DeepSeek V3-0324
55.1
GPT-4.1 (avril 2025)
52.4
ChatGPT 4o (mars 2025)
45.3
GPT-4.5
44.9
DeepSeek V3.1 possède à la fois un mode raisonnement et un mode non-raisonnement, et nous testons les deux. Pour le non-raisonnement, on observe une tendance claire de la performance de nos quantifications dynamiques ci-dessous. Le dynamique 5 bits atteint 70,7% sur Aider Pass-2, tandis que le dynamique 1 bit atteint 55,7%. En termes de taille et de précision, les 3 et 4 bits sont extrêmement puissants !

🎇Comparaison avec d'autres quants
Nous avons également exécuté le benchmark Aider Polyglot sur d'autres GGUFs imatrix dynamiques de la communauté et les avons comparés aux nôtres. Pour assurer une comparaison équitable, nous faisons ce qui suit :
Nous sélectionnons des fichiers de tailles et de types de bits similaires à chaque quantification Unsloth.
Nous utilisons notre modèle de chat corrigé si la quantification communautaire échoue à exécuter le benchmark. Nous avons trouvé que certaines quantifications communautaires
{"code":500,"message":"split method must have between 1 and 1 positional arguments and between 0 and 0 keyword arguments at row 3, column 1908"}, et cela est corrigé en utilisant notre modèle de chat corrigé.
Nous constatons que les quants dynamiques Unsloth se comportent remarquablement bien comparés aux autres quantifications communautaires pour la même taille de modèle et le même type de quant !

Développer pour comparaison de données numériques brutes avec d'autres quants
IQ2_XXS
164
43.6
TQ1_0
170
50.7
IQ1_M
206
55.7
IQ2_M
215
56.6
IQ2_XXS
225
61.2
IQ2_M
235
64.3
Q2_K_L
239
64.0
Q2_K_XL
255
65.8
IQ3_XXS
268
65.6
65.6
IQ3_XXS
279
66.8
Q3_K_S
293
65.2
Q3_K_XL
300
68.4
IQ4_XS
357
69.2
IQ4_XS
360
66.3
Q4_K_XL
387
69.7
Q4_K_M
405
69.7
Q4_K_M
409
67.7
Q5_K_M
478
68.9
Q5_K_XL
484
70.7
🍰Ablations de quantification dynamique
Nous avons également réalisé des ablations pour confirmer si notre jeu de calibration et notre méthodologie de quantification dynamique fonctionnent réellement. L'astuce de la méthode dynamique d'Unsloth est de quantifier les couches importantes en bits supérieurs par exemple 8 bits, tandis que les couches non importantes restent en bits inférieurs comme 2 bits.
Pour tester notre méthode, nous laissons des tenseurs spécifiques en précision inférieure comme 4 bits vs une précision supérieure. Par exemple ci-dessous nous laissons attn_k_b les tenseurs en 4 bits (semi-dynamique) vs 8 bits (Unsloth actuel), et en augmentant la taille du quant d'environ ~100 Mo ou plus (<0,1%), la précision augmente de manière spectaculaire !
attn_k_b et d'autres tenseurs dans DeepSeek V3.1 sont très importants / sensibles à la quantification et devraient rester en précision supérieure pour conserver la précision !

🐛Corrections de bugs du modèle de chat
Lors des tests des quants DeepSeek-V3.1, nous avons constaté que certaines quantifications en bits faibles n'encadraient pas <think> </think> correctement ou faisaient un formatage étrange. Cela a fait que certaines quantifications communautaires ne fonctionnaient pas sur des bits faibles, entraînant des comparaisons injustes. Nous avons constaté que l'utilisation de minja par llama.cpp (une version plus simple de jinja) n'accepte pas d'argument positionnel dans .split. Nous avons dû changer :
par ce qui suit :
Voir ici pour notre modèle de chat corrigé ou ici pour un fichier jinja brut.
📊Taux de réussite 1
Aider est principalement rapporté sur le taux de réussite 2. Nous rapportons également le taux de réussite 1 pour comparer les quants communautaires de la même taille. Nous constatons que nos quants dynamiques font bien mieux que d'autres quants communautaires de tailles similaires, surtout en dessous de 2 bits et au-dessus de 4 bits. Les 3 et 4 bits performent de manière similaire.

💻Exécuter les quants dynamiques DeepSeek V3.1
Rendez-vous sur notre guide DeepSeek V3.1 ou pour obtenir rapidement la version dynamique 2 bits, faites :
puis utilisez llama.cpp pour télécharger directement les poids. Nous avons déjà défini les paramètres suggérés optimaux comme la température, le modèle de chat, etc. :
Mis à jour
Ce contenu vous a-t-il été utile ?

