La quantification LLM réduit vos coûts parce qu’elle fait tourner un modèle plus lourd sur moins de mémoire, souvent sans tout casser côté qualité. Je vais clarifier quantification, pruning, gains réels, pièges en prod, et comment choisir sans transformer votre infra IA en gouffre.
Que font vraiment quantification et pruning ?
La quantification réduit la précision numérique des poids, le pruning retire des paramètres ou des structures du modèle. C’est la différence la plus simple à garder en tête, et franchement, elle évite pas mal de confusion.
Dans un LLM, un poids est juste un nombre appris pendant l’entraînement. En FP16, ce nombre est stocké sur 16 bits. C’est assez précis, mais ça prend de la place. En int8, on le stocke sur 8 bits. En int4, sur 4 bits. Moins de bits, moins de mémoire. C’est comme passer d’un fichier image très détaillé à une version compressée, tant que la compression reste propre, l’image reste utilisable.
Ce point est important : un modèle quantifié garde le même nombre de paramètres. Un modèle 7B reste un modèle 7B. Il n’a pas perdu ses 7 milliards de poids. Il les stocke juste avec moins de précision numérique. Résultat, il prend moins de VRAM, il peut tourner sur des GPU plus petits, et dans certains cas il répond plus vite ou coûte moins cher à servir.
Quand j’explique ça à un client, je dis souvent que la quantification compresse les nombres, alors que le pruning coupe dans l’architecture. Le pruning agit autrement. Il enlève des poids, des connexions, parfois des têtes d’attention, c’est-à-dire des blocs qui aident le modèle à regarder différentes parties du contexte, ou même des couches complètes selon la méthode utilisée.
Les deux approches ne s’opposent pas. On peut très bien pruner un modèle, puis le quantifier. Ou quantifier un modèle déjà optimisé. Mais pas n’importe comment. Si vous compressez trop fort puis que vous coupez trop agressivement, la qualité peut tomber vite. Je l’ai vu sur des cas de support client automatisé : le modèle répondait encore, mais il perdait les nuances métier. Et là, l’économie devient un faux gain.
| Critère | Quantification | Pruning |
| Ce qui change | La précision des poids, par exemple FP16 vers int8 ou int4 | Le nombre de poids, connexions, têtes d’attention ou couches |
| Impact mémoire | Fort, car chaque poids prend moins de place | Variable, selon ce qui est réellement supprimé |
| Impact calcul | Souvent positif, surtout avec du matériel compatible | Positif si le modèle pruné est bien exploité par le moteur d’inférence |
| Risque qualité | Modéré si la quantification est bien calibrée | Plus élevé si on coupe trop ou au mauvais endroit |
| Cas d’usage typique | Réduire les coûts GPU et servir plus de requêtes | Créer un modèle plus léger ou spécialisé |
Quels gains peut on attendre en production ?
En production, le gain le plus visible, c’est rarement magique. C’est surtout de la VRAM économisée, donc moins de GPU à louer ou à acheter, et parfois une latence plus basse parce que le modèle charge moins de données en mémoire.
Prenons un LLM de 70 milliards de paramètres. En FP16, chaque paramètre prend 16 bits, donc 2 octets. Rien que les poids du modèle représentent environ 140 Go de VRAM. Et là, on ne parle même pas encore du KV cache, c’est-à-dire la mémoire utilisée pour stocker le contexte pendant la génération. En pratique, ça force souvent à utiliser plusieurs GPU haut de gamme.
Avec une quantification 4-bit, via des approches comme AWQ ou GPTQ, on descend plutôt autour de 35 à 40 Go pour les poids, selon le format réel, les surcoûts, le runtime et la façon dont le modèle est chargé. C’est énorme. J’ai déjà vu des cas où ça change complètement l’équation économique, parce qu’on passe d’une architecture multi-GPU compliquée à un déploiement beaucoup plus simple.
| Modèle | Format | Empreinte mémoire approximative |
| LLM 70B | FP16 | Environ 140 Go de VRAM pour les poids |
| LLM 70B | 4-bit AWQ / GPTQ | Environ 35 à 40 Go selon les surcoûts |
| Gemma 3 27B | Version classique | Environ 54 Go |
| Gemma 3 27B | Quantization-aware 4-bit | Environ 14 Go |
L’exemple de Gemma 3 27B est parlant. Google a publié des versions 4-bit pensées avec la quantification en tête, ce qu’on appelle quantization-aware. Ça veut dire que le modèle est préparé pour mieux supporter cette compression, au lieu de juste compresser après coup. On passe d’environ 54 Go à environ 14 Go pour le 27B. Là, on ouvre des scénarios qui étaient bloqués avant.
C’est aussi ce qui rend possible certains modèles embarqués sur appareil, dans les écosystèmes mobiles par exemple. Sur un téléphone, une tablette ou un laptop, la mémoire est limitée, la chauffe compte, la batterie compte. Sans ce genre d’optimisation, beaucoup d’usages IA locaux seraient irréalistes.
Je reste prudent quand même. Le gain exact dépend du runtime, du format de quantification, de la longueur des prompts, du batch, du contexte, du KV cache et parfois même du driver GPU. La synthèse est simple : moins de VRAM, moins de GPU, plus de scénarios de déploiement. Mais validation obligatoire sur vos vrais prompts, vos vrais volumes, et votre vraie infra.
Quelles méthodes tester en premier ?
Je commencerais presque toujours par une quantification post-training propre avant de toucher au pruning. C’est le meilleur ratio effort / gain que je vois en prod. On prend un modèle déjà entraîné, on réduit la précision de ses poids, et on mesure. Pas besoin de réentraîner dans la majorité des cas, c’est réversible, et les outils sont franchement plus mûrs aujourd’hui.
Les méthodes à tester en premier sont assez claires :
- Int8 : Bon premier niveau. On passe certains calculs de 16 bits à 8 bits, avec souvent peu de perte qualité.
- 4-bit : Plus agressif, très utile pour réduire la mémoire GPU. C’est souvent là que les économies deviennent visibles.
- GPTQ : Méthode de quantification post-training pensée pour les LLM. Très utilisée quand on veut de bons compromis qualité / taille.
- AWQ : Même idée, avec une approche qui protège mieux certains poids importants. Je l’ai vue mieux tenir sur des cas conversationnels sensibles.
- Bitsandbytes : Librairie très pratique pour charger vite un modèle en int8 ou 4-bit avec Transformers.
- Quantization-aware training : Là, le modèle apprend en tenant compte de la quantification. C’est plus propre, mais ça demande de maîtriser le fine-tuning.
Le pruning arrive après, quand on veut vraiment réduire la structure du modèle ou accélérer certains calculs. Mais c’est plus délicat. Le pruning non structuré supprime des poids isolés. Sur le papier, c’est séduisant. En pratique, le GPU n’en profite pas toujours bien. Le pruning structuré enlève des blocs, des neurones, parfois des têtes d’attention. C’est plus exploitable par le matériel, mais le risque qualité est plus dur à contrôler.
Je ne prune jamais sans réévaluer sérieusement. Parfois même, il faut refaire un fine-tuning léger. Sinon les pertes sont sournoises : le modèle répond bien sur vos tests simples, puis il décroche sur les cas métier.
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
import torch
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.float16
)
model = AutoModelForCausalLM.from_pretrained(
"mistralai/Mistral-7B-Instruct-v0.2",
quantization_config=bnb_config,
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
import torch
# Mesure simple de mémoire GPU utilisée
torch.cuda.empty_cache()
print(torch.cuda.memory_allocated() / 1024**3, "Go utilisés")
import torch
import torch.nn as nn
import torch.nn.utils.prune as prune
layer = nn.Linear(1024, 1024)
# Exemple pédagogique : On supprime 30 % des poids les plus faibles
prune.l1_unstructured(layer, name="weight", amount=0.3)
# À ne pas appliquer brutalement sur un LLM en production
print(layer.weight)
Où peut on perdre en qualité ?
On perd en qualité quand on compresse sans mesurer les bons signaux, ou quand on valide un modèle sur une démo qui marche sur trois prompts. Ça paraît évident, mais je le vois souvent. Le modèle répond bien, il a l’air fluide, il garde ce ton “intelligent”… et pourtant il se trompe un peu plus souvent.
La quantification réduit la précision des nombres utilisés dans le modèle. Au lieu de stocker certains paramètres en 16 bits, on descend en 8 bits, 4 bits, parfois moins. Ça fait gagner en mémoire, en vitesse, en coût. Mais ça peut aussi créer des erreurs subtiles.
Les pertes ne sont pas toujours visibles tout de suite. Elles apparaissent souvent sur des cas limites, là où votre produit a justement besoin d’être fiable.
- Les réponses peuvent devenir moins précises, avec des nuances qui disparaissent.
- Le raisonnement peut devenir plus fragile, surtout sur plusieurs étapes.
- Les hallucinations peuvent augmenter sur certains sujets ou certains formats de questions.
- Les langues moins représentées peuvent perdre plus vite en qualité que l’anglais.
- Les tâches de code, de calcul ou de logique peuvent se dégrader plus fortement.
Je ne dramatise pas. Parfois ça passe très bien. Un modèle quantifié peut être presque indistinguable du modèle original sur votre cas d’usage. Mais parfois, il garde la même forme en surface et perd juste assez de fiabilité pour devenir dangereux en production.
Le pruning ajoute un autre risque. Le pruning, c’est le fait de supprimer des poids, des neurones, des têtes d’attention ou même des parties de couches pour alléger le modèle. Le problème, c’est que tout n’est pas interchangeable. Certaines redondances existent, oui, mais elles ne se voient pas au doigt mouillé. Si vous supprimez trop ou mal, vous pouvez casser une capacité entière sans vous en rendre compte tout de suite.
Je teste toujours par cas d’usage réel. Support client, extraction d’informations, RAG, résumé, génération de code, classification, agent autonome. Chaque usage stresse le modèle différemment. Chez des clients, le vrai problème n’était pas la moyenne des scores. C’était le pire cas, celui qui sort en prod sur une requête importante, avec un client pressé en face.
Les métriques que je suis systématiquement sont simples, mais elles évitent de piloter à l’impression.
- Le taux de réponses acceptées.
- L’exactitude métier.
- La latence p50 et p95, c’est-à-dire le temps médian et le temps dans les cas lents.
- Le coût par requête.
- La consommation mémoire.
- Le taux d’erreur.
- La stabilité sur prompts longs.
- La qualité avec le RAG, donc avec récupération de documents.
- La comparaison entre le modèle original et le modèle compressé.
Comment tester avant de déployer ?
Je traite toujours une compression de LLM comme une migration de modèle. Pas comme un petit bouton qu’on tourne pour économiser 30% de GPU. Dès qu’on quantifie ou qu’on prune, on change le comportement du modèle, parfois subtilement. Et ces subtilités, c’est souvent là que la prod casse.
Je pars du modèle de référence, souvent en FP16, c’est-à-dire avec des poids stockés en 16 bits. Je choisis ensuite une version quantifiée, par exemple int8 ou 4-bit, ou une version prunée, où certaines connexions du réseau ont été supprimées. Puis je rejoue un jeu de prompts représentatif. Même simple. Même 100 prompts dans un fichier CSV. C’est déjà mieux que de se fier uniquement aux benchmarks publics.
Je recommande vraiment de garder un benchmark maison, parce que les benchmarks publics ne reflètent presque jamais votre usage réel. Chez un client, le modèle brillait sur des tests génériques, mais ratait des extractions JSON avec des champs métier un peu ambigus. En prod, c’était exactement ça qui comptait.
Dans ce benchmark, je mets des cas variés :
- Questions fréquentes que vos utilisateurs posent vraiment.
- Prompts longs avec beaucoup de contexte.
- Cas limites, données incomplètes, formulations ambiguës.
- Tâches multilingues si vos clients ne parlent pas tous français.
- Génération avec format strict, par exemple réponse en trois blocs.
- Extraction JSON, parce que c’est souvent là que les petits modèles dérapent.
- Prompts liés à votre business, vos règles, vos produits, vos contraintes.
Je compare ensuite les sorties avec le modèle de référence. Pas seulement avec un score automatique. Je regarde aussi les erreurs graves, les hallucinations, les formats cassés, les réponses trop vagues. Je mesure le coût, la mémoire GPU, la latence, et le débit. Et je garde un œil sur le KV cache, c’est la mémoire utilisée pour stocker le contexte pendant la génération. En contexte long, il peut devenir une grosse partie de la mémoire totale. Réduire les poids du modèle ne règle donc pas tout.
Une fois les résultats corrects, je fais un déploiement progressif. 1%, puis 5%, puis 20%. Avec rollback simple. Pas de grand soir.
| Option | Gain mémoire | Complexité | Risque qualité | Besoin de fine-tuning | Bon cas d’usage |
| Modèle FP16 | Faible | Faible | Très faible | Non | Référence qualité, validation initiale |
| Quantification int8 | Moyen | Faible à moyenne | Faible | Rare | Prod généraliste avec peu de perte acceptable |
| Quantification 4-bit | Fort | Moyenne | Moyen | Parfois | Contraintes GPU fortes, gros volumes |
| Pruning léger | Moyen | Moyenne | Faible à moyen | Souvent utile | Optimisation maîtrisée d’un modèle connu |
| Pruning structuré plus agressif | Fort | Élevée | Élevé | Oui | Cas très industrialisés avec équipe ML solide |
Le meilleur modèle n’est pas le plus gros. C’est celui qui répond assez bien, assez vite, au bon coût.
Et maintenant, qu’est-ce que vous optimisez vraiment ?
La quantification LLM et le pruning servent le même objectif : rendre un modèle plus léger, moins cher et plus facile à déployer. La quantification réduit la précision des poids, souvent avec un excellent rapport gain risque. Le pruning va plus loin en retirant des paramètres ou des structures, mais il demande plus de prudence. Mon conseil reste simple : testez d’abord une quantification propre, mesurez sur vos vrais prompts, puis envisagez le pruning si le besoin est clair. Vous évitez les coûts GPU inutiles, vous baissez la latence, et vous gardez une qualité pilotée plutôt que subie.
FAQ
- Qu’est-ce que la quantification LLM ?
La quantification LLM consiste à stocker les poids du modèle avec moins de précision, par exemple en passant du FP16 à l’int8 ou à l’int4. Le modèle garde le même nombre de paramètres, mais il prend moins de place en mémoire et peut devenir moins coûteux à exécuter. - Quelle est la différence entre quantification et pruning ?
La quantification compresse les nombres qui représentent les poids. Le pruning supprime des poids, des connexions ou parfois des structures entières comme des têtes d’attention. La première réduit surtout l’empreinte mémoire, le second réduit directement une partie du modèle. - La quantification 4-bit dégrade-t-elle toujours la qualité ?
Pas toujours. Une bonne quantification 4-bit peut garder une qualité très correcte sur beaucoup d’usages. Le risque existe quand même, surtout sur le raisonnement, le code, les prompts longs ou les cas métier sensibles. Je conseille toujours de comparer le modèle compressé au modèle original sur vos propres prompts. - Peut-on combiner quantification et pruning ?
Oui, les deux techniques peuvent se combiner. Mais je ne le ferais pas à l’aveugle. En général, je teste d’abord la quantification seule, puis j’envisage le pruning si le gain mémoire ou latence reste insuffisant. Chaque couche de compression ajoute un risque qualité. - Quel est le meilleur point de départ pour réduire le coût d’un LLM ?
Le plus simple est souvent de tester une version quantifiée du modèle, en int8 ou 4-bit, avec un benchmark maison. Mesurez la mémoire, la latence, le coût par requête et la qualité réelle des réponses. C’est plus fiable qu’un choix basé uniquement sur la taille du modèle.
A propos de l’auteur
Je suis Franck Scandolera, expert et formateur en tracking avancé server-side, Analytics Engineering, automatisation No/Low Code avec n8n, intégration de l’IA en entreprise et SEO/GEO. J’accompagne des équipes qui veulent passer de la démo IA sympa à des systèmes fiables, mesurés et exploitables en production. Avec webAnalyste et Formations Analytics, j’ai travaillé pour des références comme Logis Hôtel, Yelloh Village, BazarChic, la Fédération Française de Football ou Texdecor. Si vous voulez cadrer vos usages IA, vos coûts d’inférence ou vos automatisations, contactez-moi.
⭐ Analytics engineer, Data Analyst et Automatisation IA indépendant ⭐
- Ref clients : Logis Hôtel, Yelloh Village, BazarChic, Fédération Football Français, Texdecor…
Mon terrain de jeu :
- Data Analyst & Analytics engineering : tracking avancé (GTM server, e-commerce, CAPI, RGPD), entrepôt de données (BigQuery, Snowflake, PostgreSQL, ClickHouse), modèles (Airflow, dbt, Dataform), dashboards décisionnels (Looker, Power BI, Metabase, SQL, Python).
- Automatisation IA des taches Data, Marketing, RH, compta etc : conception de workflows intelligents robustes (n8n, App Script, scraping) connectés aux API de vos outils et LLM (OpenAI, Mistral, Claude…).
- Engineering IA pour créer des applications et agent IA sur mesure : intégration de LLM (OpenAI, Mistral…), RAG, assistants métier, génération de documents complexes, APIs, backends Node.js/Python.






