> For the complete documentation index, see [llms.txt](https://unsloth.ai/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://unsloth.ai/docs/fr/notions-de-base/unsloth-dynamic-2.0-ggufs.md).

# GGUFs dynamiques 2.0 d'Unsloth

Nous sommes ravis de présenter [Unsloth](https://github.com/unslothai/unsloth) La quantification dynamique v2.0 - une amélioration majeure par rapport à nos précédentes quantifications. Cette nouvelle méthode surpasse les principales méthodes de quantification et établit de nouveaux repères pour [Aider Polyglot](/docs/fr/notions-de-base/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.md), MMLU 5-shot et divergence KL.

Cela signifie que vous pouvez désormais exécuter et affiner [des LLM quantifiés](/docs/fr/modeles/tutorials.md) 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](/docs/fr/nouveau/studio.md) etc.

{% columns %}
{% column %}
**Mise à jour du 20 avr. 2026 :** Découvrez nos nouveaux benchmarks GGUF pour [Qwen3.6](/docs/fr/modeles/qwen3.6.md#unsloth-gguf-benchmarks) et [Gemma 4](/docs/fr/modeles/gemma-4.md#unsloth-gguf-benchmarks).

[Mise à jour du 27 févr. 2026 :](/docs/fr/modeles/qwen3.5/gguf-benchmarks.md) **Qwen3.5** est disponible et nous avons corrigé certains problèmes de modèle de chat liés à l'appel d'outils, puis benchmarké chaque GGUF sur la perplexité et la divergence KL. [Voir les benchmarks !](/docs/fr/modeles/qwen3.5/gguf-benchmarks.md)

L' **principal avantage** d'utiliser le [package Unsloth](https://github.com/unslothai/unsloth) et 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](https://www.reddit.com/r/LocalLLaMA/comments/1kaodxu/qwen3_unsloth_dynamic_ggufs_128k_context_bug_fixes/), [Meta (Llama 4)](https://github.com/ggml-org/llama.cpp/pull/12889), [Mistral (Devstral)](https://app.gitbook.com/o/HpyELzcNe0topgVLGCZY/s/xhOjnexMCB3dmuQFQ2Zq/~/changes/618/basics/tutorials-how-to-fine-tune-and-run-llms/devstral-how-to-run-and-fine-tune), [Google (Gemma 1–3)](https://news.ycombinator.com/item?id=39671146) et [Microsoft (Phi-3/4)](https://simonwillison.net/2025/Jan/11/phi-4-bug-fixes), en apportant des correctifs qui améliorent la précision.
{% endcolumn %}

{% column %}

<figure><img src="/files/e81ee98f746b03b836788438360431e6fa3c153a" alt=""><figcaption><p>Benchmarks Gemma 4 26B A4B (plus c'est bas, mieux c'est)</p></figcaption></figure>

<figure><img src="/files/7d93795853898894656b195d5eef3eab9ccb68ba" alt=""><figcaption><p>Benchmarks Qwen3.6 (plus c'est bas, mieux c'est)</p></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="success" %}
Les GGUF dynamiques d'Unsloth peuvent désormais être exécutés sur [Unsloth Studio](/docs/fr/nouveau/studio.md) ✨

<img src="/files/e508a762e6597ccd32fd8a692e462c5f69c87fe2" alt="" data-size="original">
{% endhint %}

{% hint style="success" %}
[Mise à jour du 10 sept. 2025 :](/docs/fr/notions-de-base/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.md) Vous avez demandé des benchmarks plus exigeants, 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 totale. [En savoir plus.](/docs/fr/notions-de-base/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.md)

<img src="/files/a44459c063e628a7b3329db8bacc5515eff252fd" alt="DeepSeek-V3.2 Thinking Aider Benchmarks" data-size="original"><img src="/files/dff82e69eae54fe7e1dfc70f3a364059c61243cb" alt="Llama 4 5-shot MMLU Benchmarks" data-size="original">
{% endhint %}

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

<div><figure><img src="/files/f321cef04ad4b89bb6fd902546aad9817950e88b" alt="" width="563"><figcaption></figcaption></figure> <figure><img src="/files/2394d4676318d3a483203b406c78b42df0847f96" alt="" width="450"><figcaption></figcaption></figure></div>

Vous pouvez voir comment les GGUF d'Unsloth offrent de meilleures performances que les quants non Unsloth malgré une taille d'environ 8 Go inférieure.

Analyse détaillée de nos benchmarks et de notre évaluation 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 de manière sélective les couches de façon beaucoup plus intelligente et exhaustive. 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éreront pour chaque couche et chaque modèle.
* Les envois GGUF actuellement sélectionnés et tous les futurs envois utiliseront Dynamic 2.0 ainsi que 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é, sélectionnées et nettoyées à la main - afin d'améliorer considérablement les performances de chat conversationnel.
* Auparavant, notre quantification dynamique (GGUF DeepSeek-R1 1,58 bit) n'était efficace que pour les architectures MoE. <mark style="background-color:green;">**La quantification dynamique 2.0 fonctionne désormais sur tous les modèles (y compris les MOE et les non-MOE)**</mark>.
* **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 garantir des benchmarks précis, nous avons construit un cadre d'évaluation interne afin de faire correspondre les scores MMLU 5-shot officiellement rapportés pour Llama 4 et Gemma 3. Cela a permis des comparaisons équitables entre la précision totale et Dynamic v2.0, **QAT** et standard **imatrix** quants GGUF.

<div><figure><img src="/files/7b889d2941adceab9d3b367dfa4e47d780a61233" alt="" width="563"><figcaption></figcaption></figure> <figure><img src="/files/bb8dbe7a539c2b30f808067280787afb78348837" alt="" width="563"><figcaption></figcaption></figure></div>

Tous les futurs envois GGUF utiliseront Unsloth Dynamic 2.0, et nos quants safe tensor dynamiques 4 bits en bénéficieront également à l'avenir.

## 📊 Pourquoi la divergence KL ?

[La précision n'est pas tout ce qu'il vous faut](https://arxiv.org/pdf/2407.09141) 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 que le MMLU peut ne pas diminuer lorsque nous élaguons des couches ou effectuons une quantification, mais c'est parce que certaines réponses incorrectes peuvent avoir "basculé" pour devenir correctes. Notre objectif est de faire correspondre le modèle d'origine, donc mesurer les "flips" est une bonne métrique.

<div><figure><img src="/files/2d13a1182345a379c31365663d1ca5143aee72e3" alt=""><figcaption></figcaption></figure> <figure><img src="/files/d76cf52dab8009a39976600905518fdb0888a723" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %}
**La divergence KL** devrait être **l'une des références absolues pour signaler les erreurs de quantification** conformément à l'article de recherche "Accuracy is Not All You Need". **L'utilisation de la perplexité est incorrecte** puisque les valeurs des jetons de sortie peuvent s'annuler, nous devons donc utiliser la KLD ou des benchmarks plus difficiles comme [Aider](/docs/fr/notions-de-base/unsloth-dynamic-2.0-ggufs/unsloth-dynamic-ggufs-on-aider-polyglot.md).
{% endhint %}

L'article montre également, 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 à l'aide d'un ensemble de test d'articles Wikipédia. Cependant, nous avons remarqué que l'utilisation du jeu de données de calibration, également lié à Wikipédia, provoque un surapprentissage des quants, et conduit à des scores de perplexité plus faibles. Nous utilisons [Calibration\_v3](https://gist.github.com/bartowski1182/eb213dccb3571f863da82e99418f81e8) et [Calibration\_v5](https://gist.github.com/tristandruyen/9e207a95c7d75ddf37525d353e00659c/) des jeux de données pour des tests équitables, qui incluent notamment des données wikitext parmi d'autres données. <mark style="background-color:red;">**De plus, les modèles instruct ont des modèles de chat uniques, et l'utilisation de jeux de données de calibration en texte seul n'est pas efficace pour les modèles instruct**</mark> (les modèles de base, oui). En fait, la plupart des GGUF imatrix sont généralement calibrés avec ces problèmes. Par conséquent, ils obtiennent naturellement de meilleures performances 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é les 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.

## :1234: L'aventure de réplication de MMLU

* La réplication du MMLU 5-shot a été cauchemardesque. Nous <mark style="background-color:red;">**n'avons pas pu**</mark> reproduire les résultats MMLU pour de nombreux modèles, notamment Llama 3.1 (8B) Instruct, Gemma 3 (12B) et d'autres, en raison de <mark style="background-color:yellow;">**subtils problèmes d'implémentation**</mark>. Llama 3.1 (8B), par exemple, devrait obtenir environ 68,2 %, alors que des implémentations incorrectes peuvent atteindre <mark style="background-color:red;">**35 % de précision.**</mark>

<figure><img src="/files/648daff56c184774997fd26f37a77547b4889a00" alt="" width="375"><figcaption><p>Problèmes d'implémentation de MMLU</p></figcaption></figure>

* 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 ids de jetons différents**. Si nous considérons à la fois les jetons avec et sans espace, nous obtenons 68,2 % <mark style="background-color:green;">(+0.4%)</mark>
* Il est intéressant de noter que Llama 3, selon le [LLM Harness](https://github.com/EleutherAI/lm-evaluation-harness/blob/main/lm_eval/tasks/llama3/instruct/mmlu/_continuation_template_yaml) d'Eleuther AI, ajoute également <mark style="background-color:purple;">**"La meilleure réponse est"**</mark> à la question, conformément aux 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 de MMLU à partir de zéro en examinant [github.com/hendrycks/test](https://github.com/hendrycks/test) directement, et en vérifiant nos résultats sur plusieurs modèles ainsi qu'en les comparant aux chiffres rapportés.

## :sparkles: Réplication et benchmarks QAT de Gemma 3

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 [le wiki llama.cpp ](https://github.com/ggml-org/llama.cpp/wiki/Tensor-Encoding-Schemes)pour plus de détails.
2. version int4 - probablement [style int4 de TorchAO](https://github.com/pytorch/ao/blob/main/torchao/quantization/README.md)?

Nous avons benchmarké toutes les versions GGUF Q4\_0 et mené de vastes expériences 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 % sur le MMLU 5-shot. C'est très impressionnant ! Le modèle 27B y est presque !

<table><thead><tr><th>Métrique</th><th>1B</th><th valign="middle">4B</th><th>12B</th><th>27B</th></tr></thead><tbody><tr><td>MMLU 5-shot</td><td>26.12%</td><td valign="middle">55.13%</td><td><mark style="background-color:blue;"><strong>67,07 % (67,15 % BF16)</strong></mark></td><td><strong>70,64 % (71,5 % BF16)</strong></td></tr><tr><td>Espace disque</td><td>0,93 Go</td><td valign="middle">2,94 Go</td><td><strong>7,52 Go</strong></td><td>16,05 Go</td></tr><tr><td><mark style="background-color:green;"><strong>Efficacité*</strong></mark></td><td>1.20</td><td valign="middle">10.26</td><td><strong>5.59</strong></td><td>2.84</td></tr></tbody></table>

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 :

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

{% hint style="warning" %}
Nous devons **soustraire 25** car le MMLU propose 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 sur disque. Mais clairement, ce n'est pas un modèle utile.
{% endhint %}

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'est-à-dire 0 signifie identique au modèle en précision totale)

| Quant     | KLD de référence | 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 ratio de l'augmentation de l'espace disque et du changement du ratio de divergence KL, nous pouvons voir un avantage beaucoup plus clair ! Notre Q2\_K\_XL dynamique 2 bits réduit la KLD de façon assez nette (environ 7,5 %).

<figure><img src="/files/7fd782041d75573ef8d2d75dab767f600d7f12a6" alt=""><figcaption></figcaption></figure>

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. En termes d'efficacité, Q2\_K\_XL en 2 bits et les autres semblent très bien s'en sortir !

| 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**   |

<details>

<summary><mark style="color:vert;">Cliquez ici</mark> pour l'ensemble des benchmarks QAT complets de Gemma 3 (27B) de Google :</summary>

| 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**   |

</details>

## :llama: Corrections de bugs et exécution de 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 dépôt officiel. Nous avons aidé à résoudre des problèmes dans llama.cpp pour permettre ce [changement ici](https://github.com/ggml-org/llama.cpp/pull/12889)

  <figure><img src="/files/a5cde5fe5f571b04d484e7a0b472df6fa12d62c7" alt=""><figcaption></figcaption></figure>
* L'epsilon de 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](https://github.com/ggml-org/llama.cpp/pull/12889) et [transformers](https://github.com/huggingface/transformers/pull/37418)
* L'équipe Llama 4 et vLLM ont également 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](https://github.com/vllm-project/vllm/pull/16311). La précision MMLU Pro est passée de 68,58 % à 71,53 %.
* [Wolfram Ravenwolf](https://x.com/WolframRvnwlf/status/1909735579564331016) a montré que nos GGUF via llama.cpp atteignent une précision bien plus élevée que les fournisseurs d'inférence tiers - cela résultait très probablement d'une combinaison des problèmes expliqués ci-dessus, et probablement aussi de problèmes de quantification.

  <figure><img src="/files/7c8b4f3616ef0e87a1a63363b8f6bda43d70d617" alt=""><figcaption></figcaption></figure>

Comme le montre notre graphique, notre quantification QAT dynamique 4 bits offre de meilleures performances sur le MMLU 5-shot tout en étant plus compacte.

### Exécution de Llama 4 Scout :

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

```bash
apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
```

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

```python
# !pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download
snapshot_download(
    repo_id = "unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF",
    local_dir = "unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF",
    allow_patterns = ["*IQ2_XXS*"],
)
```

Et faisons l’inférence !

{% code overflow="wrap" %}

```bash
./llama.cpp/llama-cli \
    --model unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF/Llama-4-Scout-17B-16E-Instruct-UD-IQ2_XXS.gguf \
    --threads 32 \
    --ctx-size 16384 \
    --n-gpu-layers 99 \
    -ot ".ffn_.*_exps.=CPU" \
    --seed 3407 \
    --prio 3 \
    --temp 0.6 \
    --min-p 0.01 \
    --top-p 0.9 \
    -no-cnv \
    --prompt "<|header_start|>user<|header_end|>\n\nCréez un jeu Flappy Bird.<|eot|><|header_start|>assistant<|header_end|>\n\n"
```

{% endcode %}

{% hint style="success" %}
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>
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://unsloth.ai/docs/fr/notions-de-base/unsloth-dynamic-2.0-ggufs.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
