Tensoria
Parlez-nous de votre projet : 07 82 80 51 40
Outils & Modèles Par

Quantization de LLM : faire tourner un modèle sur petit GPU

Quantization LLM GGUF int4 - faire tourner un modèle de langage sur petit GPU ou CPU avec llama.cpp et Ollama

Un modèle 7B en fp16 pèse 14 Go de VRAM. Avec une quantization int4 bien calibrée, il descend à 4 Go — et tourne sur une RTX 3060 à 200 €, voire sur CPU. C'est ça, la quantization de LLM : comprimer les poids du modèle en réduisant leur précision numérique pour économiser de la mémoire et accélérer l'inférence, avec une perte de qualité maîtrisée selon le niveau de compression choisi.

Ce guide couvre les trois formats/méthodes qui comptent en 2026 — GGUF (llama.cpp, Ollama), GPTQ et AWQ — avec un tableau précision/VRAM/qualité, les outils concrets pour se lancer, et les situations où il ne faut surtout pas trop quantifier. On parle ici de compression de modèle, pas de serveur d'inférence : pour les architectures de serving en production, voir notre article sur les serveurs d'inférence LLM open source.

Ce que la quantization fait vraiment aux poids d'un modèle

Un LLM est fondamentalement un immense tableau de nombres : ses poids, ou paramètres. En entraînement, ces nombres sont stockés en fp32 (32 bits, virgule flottante). À l'inférence, la plupart des modèles modernes utilisent fp16 ou bf16 (16 bits), ce qui divise déjà par deux l'empreinte mémoire.

La quantization va plus loin. Elle convertit ces poids flottants en entiers de précision réduite :

  • int8 : 8 bits par poids. Quasi sans perte. Un 7B passe de 14 Go à ~7 Go.
  • int4 : 4 bits par poids. Légère dégradation. Un 7B descend à ~4 Go.
  • int3 / int2 : dégradation visible, souvent rédhibitoire sur les tâches précises.

L'idée intuitive : au lieu de stocker 3,14159265… avec 16 bits de précision, on stocke "3" sur 4 bits. On gagne en mémoire, on perd en finesse. La vraie question est : cette perte de finesse est-elle perceptible sur votre cas d'usage ?

Soyons honnêtes : en int8, la réponse est presque toujours non. En int4 avec une bonne méthode de calibration, c'est acceptable sur la grande majorité des tâches de génération. En Q2, ça commence à déraper.

Tableau de référence : précision, VRAM et qualité

Voici les chiffres qui comptent pour un modèle 7B de référence (Mistral 7B, Llama 3 8B) selon le niveau de quantization. Les tailles VRAM sont des approximations — elles varient légèrement selon le modèle exact et la méthode de quantization :

Précision VRAM (7B) VRAM (13B) Perte qualité Cas d'usage
fp16 / bf16 ~14 Go ~26 Go Référence (0) GPU A100/H100, RTX 4090
int8 ~7 Go ~13 Go Quasi nulle (<1%) RTX 3080 10 Go, RTX 4070
Q4_K_M (int4) ~4,5 Go ~7,5 Go Faible (1-3%) RTX 3060 8 Go, RTX 4060
Q3_K_M ~3,5 Go ~6 Go Modérée GPU 6-8 Go, CPU hybride
Q2_K ~2,5 Go ~4,5 Go Significative CPU only, tests rapides

Le niveau Q4_K_M est devenu le standard de facto pour une utilisation en local : il donne le meilleur rapport taille/qualité. Le suffixe "K_M" dans la nomenclature GGUF indique une méthode de quantization mixte (certaines couches critiques gardent plus de bits), plus précise qu'un Q4 naïf uniforme.

GGUF, GPTQ, AWQ : quelles différences concrètes ?

Trois méthodes dominent le paysage en 2026. Elles répondent à des besoins légèrement différents :

GGUF et llama.cpp : la quantization pour le CPU (et l'hybride CPU/GPU)

GGUF est le format natif de llama.cpp, le projet qui a démocratisé l'inférence locale de LLM. Son atout principal : faire tourner un modèle quantifié sur CPU, avec possibilité de décharger certaines couches sur GPU si disponible (offloading de couches). Un modèle 7B en Q4_K_M tourne à 3-5 tokens/seconde sur un CPU moderne — trop lent pour un chatbot interactif, mais suffisant pour de la génération batch ou des tests.

Ollama, LM Studio et Jan.ai s'appuient tous sur llama.cpp. Ils gèrent la quantization de façon transparente via des tags de modèle (ex. ollama pull mistral:7b-instruct-q4_K_M). Pour une équipe qui veut faire tourner un LLM en local sans GPU dédié, c'est l'entrée la plus simple.

La librairie llama.cpp dispose d'un outil intégré (llama-quantize) pour convertir un modèle HuggingFace en GGUF à n'importe quel niveau de quantization — de Q8_0 jusqu'à Q2_K. La documentation officielle de llama.cpp liste tous les niveaux disponibles avec leur taille et leur score de perplexité.

GPTQ : la quantization GPU par calibration

GPTQ (Generalized Post-Training Quantization) est une méthode qui calibre la quantization sur un petit dataset représentatif pour minimiser l'erreur de reconstruction des activations. Elle cible les GPU NVIDIA et génère des noyaux CUDA optimisés pour l'inférence.

En pratique : on prend un modèle fp16, on choisit un dataset de calibration (souvent WikiText ou C4), on lance la quantization — quelques minutes à quelques heures selon la taille du modèle. Le résultat est un modèle GPTQ int4 qui s'intègre directement dans les frameworks vLLM et Text Generation Inference (TGI) de HuggingFace pour un serving GPU.

La librairie AutoGPTQ, intégrée à l'écosystème HuggingFace, est l'outil de référence. La documentation HuggingFace sur la quantization GPTQ couvre l'intégration complète.

AWQ : GPTQ plus précis, couches critiques protégées

AWQ (Activation-Aware Weight Quantization) affine l'approche GPTQ en identifiant les poids les plus "saillants" — ceux dont la variation impacte le plus les activations du modèle — et en les protégeant lors de la quantization (ils gardent plus de bits). Résultat : à niveau de compression égal, AWQ préserve mieux la qualité que GPTQ, en particulier sur les petits modèles (7B et moins).

AutoAWQ est la librairie de référence. Elle s'intègre également avec vLLM pour un serving GPU optimisé. Sur un Mistral 7B ou un Llama 3 8B, le delta de qualité entre GPTQ et AWQ est faible mais mesurable sur des benchmarks de raisonnement et de code.

bitsandbytes NF4 : quantization à la volée pour le prototypage

Un quatrième outil mérite d'être mentionné : bitsandbytes de HuggingFace, avec son format NF4 (Normal Float 4). Il quantifie le modèle directement au chargement, en mémoire, sans pré-générer un fichier quantifié. C'est le mode utilisé par QLoRA pour le fine-tuning efficace en mémoire réduite.

Pour l'inférence en production, bitsandbytes NF4 est moins rapide que GPTQ ou AWQ (pas de noyaux CUDA aussi optimisés). En revanche, pour tester rapidement un gros modèle sur une machine avec peu de VRAM, c'est le moyen le plus simple : une seule ligne de config dans BitsAndBytesConfig et le modèle se charge en 4 bits.

Combien on gagne vraiment : exemples concrets par taille de modèle

Un tableau vaut mieux qu'un long discours. Voici les gains VRAM réels selon la taille du modèle et la méthode, avec le matériel minimum associé :

Modèle fp16 int8 int4 (Q4_K_M) GPU accessible en int4
Mistral 7B 14 Go 7 Go 4,5 Go RTX 3060 8 Go, RTX 4060
Llama 3 8B 16 Go 8 Go 5 Go RTX 3060 8 Go, RTX 4060
Mistral / Llama 13B 26 Go 13 Go 7,5 Go RTX 3080 10 Go, RTX 4070
Llama 3 70B 140 Go 70 Go 40 Go 2× A100 40 Go, ou CPU (lent)
Mistral / Qwen 0.5-3B (SLM) 3-6 Go 1,5-3 Go ~1-2 Go N'importe quel GPU, ou CPU

Ce dernier cas — les petits modèles de langage (SLM) — est particulièrement intéressant en combinaison avec la quantization : un Qwen 1.5B ou un Phi-3 Mini en Q4 tient dans 1 Go de RAM, assez pour du déploiement on-device ou edge.

La perte de qualité réelle selon le niveau : ce que disent les benchmarks

Soyons précis, parce que "légère perte" est vague. Voici ce que donnent les mesures de perplexité et les benchmarks pratiques sur Mistral 7B :

int8 : quasi indolore

La quantization int8 — via bitsandbytes LLM.int8() ou GPTQ 8 bits — introduit une augmentation de perplexité de l'ordre de 0,1 à 0,3 points sur WikiText-2. En pratique, impossible à distinguer à l'usage. C'est le niveau recommandé quand on a les contraintes de VRAM mais qu'on ne veut prendre aucun risque sur la qualité.

int4 bien calibré (Q4_K_M, AWQ, GPTQ) : acceptable

En Q4 avec une bonne calibration, la perte de perplexité monte à 1 à 3 points. Sur des tâches de génération de texte, de résumé ou de Q&A sur documents, c'est imperceptible pour un utilisateur humain. Sur des tâches qui exigent de la précision numérique ou du raisonnement multi-étapes, on peut observer une légère régression — à valider sur votre benchmark métier avant de déployer.

Le choix entre Q4_K_M (GGUF) et AWQ dépend du contexte : GGUF si vous ciblez du CPU ou de l'offloading hybride, AWQ si vous avez un GPU NVIDIA et utilisez vLLM pour le serving.

int3 et int2 : attention

En dessous de int4, les choses se dégradent notablement. Q2_K sur llama.cpp peut faire baisser les benchmarks de raisonnement de 10 à 20 %. On commence à voir des hallucinations accrues et des incohérences dans les longues générations. À réserver aux cas extrêmes où la VRAM est vraiment la contrainte absolue — ou aux tests rapides pour vérifier qu'un modèle tourne bien avant de quantifier à un niveau plus raisonnable.

Les pièges à éviter avec la quantization

On voit régulièrement les mêmes erreurs sur des projets où la quantization a été mal appliquée.

Quantifier avant de fine-tuner

C'est le piège classique. Si vous prévoyez de faire du fine-tuning, gardez le modèle en fp16 (ou bf16) pendant l'entraînement. QLoRA quantifie le modèle de base pendant le fine-tuning pour économiser la VRAM — c'est une quantization de confort d'entraînement, pas un artefact final. Quantifier après fine-tuning, pas avant.

Supposer que Q4 suffit sans valider sur votre cas d'usage

Q4_K_M est souvent un excellent défaut. Mais "souvent" n'est pas "toujours". Sur de l'extraction structurée de données juridiques ou de la génération de code Python complexe, la perte en Q4 peut être tangible. Mesurez toujours sur votre propre benchmark — 50 à 100 exemples représentatifs suffisent pour détecter une régression.

Choisir GGUF pour un GPU NVIDIA dédié

GGUF brille sur CPU et sur les déploiements locaux avec Ollama. Mais pour un serving GPU avec vLLM ou TGI, GPTQ ou AWQ donnent de meilleures performances à l'inférence : les noyaux CUDA sont plus optimisés pour l'inférence batch que les noyaux llama.cpp. Utilisez le bon outil pour le bon contexte.

Négliger les couches d'embedding et de sortie

Certains outils de quantization quantifient aussi les couches d'embedding et la tête de langage finale. Ces couches sont particulièrement sensibles à la perte de précision. Les bonnes implémentations (Q4_K_M, AWQ) les maintiennent en fp16. À vérifier dans vos configs avant de lancer.

Quand ne pas quantifier (ou quantifier moins)

La quantization est un outil, pas une fin en soi. Il y a des situations où elle n'a pas lieu d'être, ou où il faut s'arrêter à int8 :

  • Vous avez assez de VRAM en fp16. Inutile de dégrader la qualité. Si vous avez un A100 40 Go pour un modèle 7B, gardez-le en fp16.
  • Votre tâche est très sensible à la précision. Raisonnement mathématique, génération de code complexe, extraction fine sur documents critiques : restez en int8 au minimum, testez Q4 soigneusement avant de décider.
  • Vous opérez en production à fort débit batch. Sur un cluster GPU homogène, les noyaux CUDA fp16 peuvent être plus rapides que de l'int4 pour de l'inférence batch massive — à mesurer, pas à supposer.
  • Vous allez fine-tuner ensuite. Quantifiez après, pas avant.

Pour un accompagnement sur le choix d'architecture d'inférence et de modèle adapté à votre usage, notre équipe d'expert IA générative et LLM peut cadrer rapidement les contraintes matérielles et les compromis pertinents.

Pour aller plus loin

Vous hésitez encore ?

Votre contrainte matérielle mérite une réponse précise. 30 minutes pour identifier le bon niveau de quantization pour votre cas d'usage.

Réserver un échange

En résumé : quantizer oui, mais avec méthode

La quantization n'est pas un tour de passe-passe : c'est un compromis engineering entre mémoire, vitesse et qualité. Int8 est quasi gratuit. Int4 bien calibré (Q4_K_M, AWQ) est acceptable sur la plupart des tâches. En dessous, ça dégrade et il faut valider sérieusement avant de déployer.

Pour le choix du format : GGUF si votre contrainte est le CPU ou un déploiement local avec Ollama ; GPTQ ou AWQ si vous avez un GPU NVIDIA et visez un serving en production avec vLLM. Bitsandbytes NF4 pour le prototypage rapide ou le fine-tuning QLoRA, pas pour la production.

Et quand la quantization ne suffit plus — parce que même en Q4 le modèle 7B est trop lent ou trop gros pour votre matériel — la piste suivante est de descendre en taille de modèle, pas de descendre à Q2. Un bon SLM bien choisi battra toujours un 7B mal quantifié.

Passer à l'action

Vous voulez appliquer ça dans votre entreprise ?

En quelques minutes, identifiez les cas d'usage IA les plus rentables pour votre métier. Sans engagement, et sans jargon.

Demander un devis

Articles liés

Outils & Modèles

Top SLM 2026 : les meilleurs petits modèles de langage

Comparatif des meilleurs SLM 2026 : Ministral, Phi-4-mini, Qwen2.5, Gemma 3, SmolLM2, Llama 3.2. Tailles, licences, VRAM, cas d'usage et RGPD pour les PME.

Lire l'article
Outils & Modèles

SLM vs LLM : quel modèle d'IA choisir en PME

SLM vs LLM : comparatif décisionnel complet. Coûts, latence, VRAM, souveraineté, cas d'usage. Quand le petit modèle gagne — et quand le LLM reste indispensable.

Lire l'article
Outils & Modèles

SLM : le guide des Small Language Models en entreprise

Small language model entreprise : définition, panorama des SLM (Phi-4, Mistral, Qwen, Gemma), comparatif coût/VRAM vs LLM, quand un SLM suffit et comment le spécialiser avec LoRA.

Lire l'article
Outils & Modèles

SLM on-device : l'IA générative en local et en edge

SLM on-device : faire tourner un modèle IA en local sur poste ou edge sans cloud. Outils (Ollama, llama.cpp), modèles 1B–8B, matériel requis, limites.

Lire l'article
Outils & Modèles

Router SLM/LLM : l'architecture hybride qui réduit les coûts

Architecture hybride SLM/LLM : comment router chaque requête vers le bon modèle pour diviser vos coûts d'inférence par 5 à 10. Outils, tableau €, pièges à éviter.

Lire l'article
Outils & Modèles

Préparer un dataset de fine-tuning LLM : la méthode

Dataset fine-tuning LLM : combien d'exemples, quel format JSONL, comment construire et nettoyer vos données. La méthode terrain pour éviter les erreurs qui font échouer 80 % des projets.

Lire l'article
Anas Rabhi, ingénieur IA et data scientist, fondateur de Tensoria
Anas Rabhi Ingénieur IA, fondateur de Tensoria ianas.fr

Je suis ingénieur IA et data scientist, fondateur de Tensoria. Depuis plus de 6 ans, j'accompagne les entreprises dans l'exploitation concrète de l'IA pour leur métier : assistants internes basés sur RAG, agents IA en production, automatisations sur mesure, traitement intelligent de documents. J'interviens du cadrage initial à la mise en production, sur stacks LLM modernes (Mistral, Claude, GPT) et infrastructures souveraines quand la confidentialité l'exige.