Chapitre 5 — Démystifier la quantification
Cinquième billet de la tournée chapitre par chapitre de LLM Primer VI : Mettre à l'échelle les systèmes IA. Le chapitre qui explique pourquoi un modèle 70B survit à la quantification 4 bits quand un modèle 1B n'y survit pas — et comment choisir la recette.
Pourquoi ce chapitre existe
Le décodage est limité par la bande passante mémoire ; la monnaie de la bande passante est l'octet par poids. Un modèle 70B en BF16 lit 140 Go par passe avant. Le même modèle en INT4 lit 35 Go. L'arithmétique est identique. Le goulot se déplace d'un facteur quatre. Cette seule observation est la raison pour laquelle la quantification est passée d'une curiosité de recherche au chemin de déploiement par défaut de l'inférence de production. Le Chapitre 5 parcourt la mécanique — ce que signifie réellement la précision, pourquoi une quantification agressive ne détruit pas un grand modèle comme elle détruit un petit, ce que font vraiment AWQ, GPTQ, SmoothQuant et GGUF sous le capot, et où la quantification cesse d'être sûre pour commencer à dégrader silencieusement la qualité.
5.1 Pourquoi les grands modèles survivent au 4 bits et pas les petits
Trois observations soutiennent la quantification des grands modèles. Premièrement, la charge informationnelle d'un poids individuel dans un grand transformer est faible : le comportement prédictif émerge de l'interaction collective de milliards de poids dont la distribution est fortement piquée près de zéro. Arrondir un poids de 0,0031 à 0,003 ne change rien que la couche suivante puisse détecter. Deuxièmement, les transformers entraînés se logent dans une région plate de l'espace des paramètres où de nombreuses configurations voisines produisent presque exactement la même sortie, et pour les modèles au-dessus d'environ 30B cette région est assez large pour absorber une perturbation 4 bits avec une dégradation MMLU inférieure au point. Troisièmement, la précision mixte laisse les couches sensibles — scores d'attention, normalisations de couche, logits finaux — en BF16 tandis que la masse des projections linéaires descend en INT4. Un modèle 70B en INT4 est empiriquement presque indiscernable de son homologue BF16 ; un modèle 1B en INT4 est nettement pire, car la région plate est plus petite et la perturbation pousse le modèle hors d'elle. L'intuition naïve — que les plus petits modèles devraient se quantifier plus facilement — est exactement à l'envers.
5.2 AWQ, GPTQ, SmoothQuant et GGUF font des choses différentes
GPTQ parcourt la matrice de poids colonne par colonne, choisit les niveaux de quantification pour minimiser l'erreur de sortie sur un petit jeu de calibration, et met à jour les colonnes encore non quantifiées pour absorber le résidu — une compensation approximée par la Hessienne qui garde la sortie de la couche proche de l'originale. AWQ part d'une autre observation : les valeurs extrêmes des activations comptent autant que celles des poids, donc on augmente d'échelle les canaux de poids saillants avant de quantifier (et on baisse d'échelle les activations en compensation), ce qui répartit les niveaux de quantification sur la plage que ces poids occupent réellement. SmoothQuant attaque le côté activation : les LLM ont une poignée de canaux à magnitudes énormes qui ruinent la quantification naïve des activations, donc SmoothQuant migre la magnitude aberrante des activations vers les poids par canal, ce qui permet à W8A8 d'atterrir avec une perte négligeable. GGUF est un format de fichier plutôt qu'un algorithme unique — le motif d'échelle emboîté par super-blocs Q4_K_M utilisé par llama.cpp pour l'inférence CPU et en périphérie, écologiquement important mais rarement utilisé sur les GPU de centre de données.
5.3 L'échelle de sûreté et la discipline de calibration
L'échelle de sûreté empirique est propre. BF16 → FP8 est presque toujours sans perte et c'est le défaut de production. BF16 → INT8 est sans perte au-dessus de ~7B avec un algorithme compétent. BF16 → INT4 est sans perte au-dessus de ~30B avec AWQ ou GPTQ ; en dessous de 13B, cela coûte de un à trois points MMLU ; en dessous de 7B, cela coûte cinq points ou plus sans entraînement conscient de la quantification. INT3 et en dessous est expérimental. Deux disciplines gouvernent la tenue de l'échelle en production. La première est la calibration sur la bonne distribution : 128–512 échantillons représentatifs tirés de la distribution que le trafic de production tirera, à refaire tous les six à douze mois à mesure que la charge dérive. La seconde est l'évaluation côté tâche : les benchmarks standards peuvent manquer des glissements de qualité sur la queue longue des capacités du modèle — faits rares, raisonnement multi-étapes, code en langues minoritaires — et une quantification agressive doit être validée contre une tranche de trafic de production réel, notée sur les dimensions qui comptent pour l'application.
Ce que prépare le Chapitre 5
La quantification rétrécit les octets par poids. Le chapitre suivant rétrécit directement le nombre de poids. Le Chapitre 6 parcourt l'élagage — dont la sparsité structurée 2:4 que Hopper accélère nativement — et la distillation des connaissances, où le comportement d'un grand professeur est transféré dans un plus petit élève qui tourne moins cher de bout en bout. Ensemble, les trois compressions (quantifier, élaguer, distiller) forment la boîte à outils côté modèle pour abaisser le fardeau de bande passante nommé au Chapitre 1. Le Chapitre 7 se tourne ensuite vers le levier côté runtime — le batching — qui convertit la marge nouvellement gagnée en débit d'utilisateurs concurrents.
Prochaine étape — Chapitre 6 : Élagage et distillation des connaissances. Les deux compressions côté modèle qui attaquent le nombre de poids plutôt que la largeur.
llm-compressor, la recette NVIDIA ModelOpt pour FP8 et NVFP4, le code exécutable pour GPTQ W4A16, et les encadrés « En clair » sur la quantification par vote de comité et l'arbitrage FP8 contre INT4 en production. LLM Primer VI sur Amazon →