Définition
Quantification GGUF expliquée : Q4_K_M, Q8_0, IQ4_XS
Ce que veulent dire Q4_K_M, Q5_K_M, Q8_0 ou IQ4_XS dans un fichier GGUF, combien de bits par poids, et comment choisir pour un LLM local.
Mis à jour le
La quantification consiste à stocker les poids d'un modèle avec moins de bits : au lieu de 16 bits par nombre, 8, 5, 4, voire moins. Le fichier devient beaucoup plus léger et tient dans une carte graphique plus modeste, au prix d'une perte de précision. Dans un nom de fichier GGUF, le suffixe dit quelle méthode a été employée : Q4_K_M signifie quantification sur 4 bits de la famille « K », variante moyenne. Les définitions ci-dessous viennent de la documentation de Hugging Face et de llama.cpp, lue le 15/11/2026.
GGUF, le format de fichier
D'après la documentation de Hugging Face, GGUF est un format binaire optimisé pour charger et enregistrer vite un modèle, conçu pour GGML et d'autres moteurs. Il a été créé par le développeur de llama.cpp. À la différence de formats qui ne contiennent que les tenseurs (les tableaux de poids), comme safetensors, un fichier GGUF contient aussi un ensemble normalisé de métadonnées, dont le modèle de conversation (tokenizer.chat_template) qu'Ollama lit pour choisir son gabarit. Hugging Face cite llama.cpp, LM Studio, GPT4All et Ollama parmi les outils qui l'utilisent.
Lire un suffixe
| Partie du nom | Sens |
|---|---|
Q + chiffre |
quantification, nombre de bits de base (2 à 8) |
_K |
famille « K », qui range les poids par super-blocs |
_S, _M |
variantes d'une même famille ; dans le tableau de llama.cpp, _M est plus lourde que _S |
IQ + chiffre |
quantification utilisant une « matrice d'importance » |
_0, _1 |
types anciens par blocs de 32 poids |
F16, BF16 |
pas de quantification : nombres à virgule sur 16 bits |
Les familles « K » regroupent les poids en super-blocs : pour Q4_K, des super-blocs de 8 blocs de 32 poids, d'après le tableau de Hugging Face. Les types IQ s'appuient sur une matrice d'importance, qui sert à réduire la perte de précision ; le README de llama.cpp indique que cette perte peut être limitée avec un fichier imatrix adapté.
Bits par poids et taille réelle
Mesures de llama.cpp sur Llama 3.1 8B :
| Type | Bits par poids | Taille |
|---|---|---|
| IQ2_M | 2,93 | 2,74 Gio |
| Q3_K_M | 4,00 | 3,74 Gio |
| IQ4_XS | 4,46 | 4,17 Gio |
| Q4_K_S | 4,67 | 4,36 Gio |
| Q4_K_M | 4,89 | 4,58 Gio |
| Q5_K_M | 5,70 | 5,33 Gio |
| Q6_K | 6,56 | 6,14 Gio |
| Q8_0 | 8,50 | 7,95 Gio |
| F16 | 16,00 | 14,96 Gio |
Le nombre de bits réel dépasse le chiffre du nom. Les facteurs d'échelle stockés avec chaque bloc prennent de la place : le tableau de Hugging Face donne 4,5 bits par poids pour le type Q4_K seul, et la variante Q4_K_M mesurée par llama.cpp atteint 4,89 bits sur ce modèle.
Anciens et nouveaux types
La documentation de Hugging Face classe Q4_0, Q4_1, Q5_0, Q5_1, Q8_0 et Q8_1 parmi les types anciens, peu utilisés aujourd'hui. Vous en croiserez pourtant encore : la page de Hugging Face consacrée à Ollama prend :Q8_0 comme exemple de suffixe. Elle mentionne aussi des types récents : quantification ternaire (TQ1_0, TQ2_0) et MXFP4, un format à virgule flottante sur 4 bits par blocs.
Comment choisir
- Point de départ :
Q4_K_M. Le README de llama.cpp s'en sert comme exemple principal, et Ollama la prend par défaut quand il lance un dépôt GGUF de Hugging Face qui la contient (documentation). - Plus de précision si la mémoire le permet :
Q5_K_M,Q6_KouQ8_0. - Moins de mémoire :
IQ4_XSouQ3_K_M, en vérifiant la qualité des réponses en français sur vos propres questions. - Composants d'image des modèles multimodaux : le README de llama.cpp indique qu'on les garde en général dans un format de haute qualité, bf16 ou q8.
Entre un modèle plus grand plus quantifié et un modèle plus petit moins quantifié, seul un test sur vos usages tranche. Le calcul de mémoire complet est sur Quel matériel pour un LLM local.
Quantifier soi-même
D'après le README de llama.cpp, en deux temps :
python convert_hf_to_gguf.py --outfile gemma-4-E2B-it-bf16.gguf --outtype bf16 --remote google/gemma-4-E2B-it
./build/bin/llama-quantize gemma-4-E2B-it-bf16.gguf gemma-4-E2B-it-Q4_K_M.gguf Q4_K_M
Le fichier obtenu s'importe dans Ollama par un Modelfile contenant FROM ./gemma-4-E2B-it-Q4_K_M.gguf (voir Commandes Ollama).
Questions fréquentes
Que signifie Q4_K_M ?
Une quantification de llama.cpp de la famille « K » sur 4 bits, variante moyenne (M). Sur Llama 3.1 8B, le tableau de llama.cpp lui attribue 4,89 bits par poids et 4,58 Gio.
Quelle quantification Ollama prend-il par défaut sur Hugging Face ?
Q4_K_M quand le dépôt la contient, sinon une autre quantification présente dans le dépôt, d'après la documentation de Hugging Face.
Les types Q4_0 et Q8_0 sont-ils encore utilisés ?
La documentation de Hugging Face les classe parmi les types anciens, peu utilisés aujourd'hui.
Sources
Pages consultées pour écrire cet article :