Quantification LLM#

Ce guide couvre l'ensemble des méthodes de quantification utilisées pour compresser et accélérer les grands modèles de langage (LLM).

Qu'est-ce que la quantification ?#

La quantification est une technique d'optimisation qui consiste à réduire la précision des nombres utilisés pour représenter les paramètres d'un modèle (poids, activations, gradients). Au lieu d'utiliser des nombres à virgule flottante de 32 bits (FP32), on utilise des représentations plus compactes — 16 bits (FP16/BF16), 8 bits (INT8), 4 bits (INT4), voire moins.

Pourquoi c'est important ?#

  • Réduction de la mémoire : Un modèle de 70B paramètres en FP32 occupe ~280 Go. En INT4, il tient en ~35 Go — soit une réduction de 8×, rendant possible l'inférence sur des GPU grand public.
  • Accélération de l'inférence : Les calculs en basse précision sont plus rapides, notamment sur les architectures matérielles modernes (Tensor Cores, INT8/FP8).
  • Déploiement edge : Permet de faire tourner des LLMs sur des appareils à ressources limitées (laptops, mobiles, edge servers).
  • Efficacité énergétique : Moins de bits = moins de calculs = moins de consommation électrique.
  • Démocratisation : Abaisse la barrière hardware pour utiliser des modèles performants.

Tableau comparatif rapide#

📊 Comparatif complet des méthodes de quantification — Notre page phare : tous les chiffres, ratios de compression, dégradations de perplexité, compatibilités hardware et cas d'usage recommandés en un seul tableau.


Catalogue des méthodes#

Fondamentaux#

Les approches de base qui définissent quand et comment la quantification est appliquée pendant le cycle de vie du modèle.

  • Quantization-Aware Training (QAT) — La quantification est simulée pendant l'entraînement. Le modèle apprend à être robuste à la basse précision, offrant la meilleure qualité au prix d'un coût d'entraînement élevé.
  • Post-Training Quantization (PTQ) — La quantification est appliquée après l'entraînement, sans ré-entraînement. Rapide, pratique, largement utilisée pour le déploiement. La majorité des méthodes ci-dessous sont des variantes de PTQ.

Méthodes populaires#

Les méthodes les plus répandues dans l'écosystème open-source, utilisées en production.

  • LLM.int8() — Par Dettmers et al. Quantification INT8 qui préserve les valeurs aberrantes (outliers) en FP16 via décomposition matricielle. La méthode de référence pour une quantification 8-bit sans perte.
  • SmoothQuant — Lisse les difficultés de quantification entre poids et activations en transférant l'échelle. Permet une quantification W8A8 efficace de bout en bout.
  • GPTQ — Quantification post-entraînement couche par couche basée sur la résolution de problème inverse. Standard de facto pour la quantification W4A16 des LLMs.
  • AWQ (Activation-aware Weight Quantization) — Identifie les canaux de poids « importants » via les activations et applique une mise à l'échelle par canal. Excellente qualité en W4.
  • NF4 / bitsandbytes — Le format NormalFloat 4-bit (NF4) de QLoRA. Idéal pour le fine-tuning efficace en mémoire et l'inférence via la librairie bitsandbytes.
  • GGUF / GGML — Le format de fichier et ses variantes de quantification (Q4_0, Q4_K_M, Q5_K_M, etc.) utilisé par llama.cpp. Le standard pour l'inférence CPU/GPU grand public.

Méthodes avancées#

Techniques de recherche récentes poussant les limites de la compression (2-4 bits par poids).

  • QuIP (Quantization with Incoherence Processing) — Applique un traitement d'incohérence (rotation aléatoire) pour rendre poids et基底s plus uniformes, permettant une quantification à très basse précision (2-4 bits).
  • AQLM (Additive Quantization for LLMs) — Quantification additive par code-book. Compresse à 2-bit avec une dégradation minime, au prix d'un encodage coûteux.
  • HQQ (Half-Quadratic Quantization) — Quantification sans données de calibration, basée sur l'optimisation semi-quadratique. Rapide et flexible pour W8/W4/W2.
  • SqueezeLLM — Quantification non-uniforme sensible à la sensibilité (sensitivity-based) avec regroupement dense-et-clairsemé. 3-4 bits avec préservation de qualité.
  • SpQR — Sparse-Quantized Representation. Isole les valeurs aberrantes et quantifie le reste à 3-4 bits. Reconstruction quasi-lossless.
  • OmniQuant — Optimisation couche par couche des paramètres de quantification (scale, zero-point, clipping). Uniformise poids et activations simultanément.
  • Outlier Suppression — Suppression des valeurs aberrantes des activations via normalisation par canal avant quantification. Prérequis pour W8A8 stable.

Optimisations d'inférence#

Kernels, systèmes et techniques qui accélèrent ou facilitent l'inférence quantifiée.

  • Marlin — Kernel CUDA haute performance pour GEMM W4A16. Jusqu'à 4× plus rapide que les kernels GPTQ classiques sur GPU Ampere.
  • QoQ / QServe — Pipeline W4A8 avec déquantification progressive. Atteint la qualité du W4A16 et la vitesse du W8A16 via le runtime QServe.
  • KV Cache Quantization — Quantifie le cache clé-valeur pour réduire la mémoire lors de la génération long-contexte. Crucial pour les longues séquences.
  • W4A8 / W8A8 Mixed Precision — Schémas à précision mixte combinant poids 4-bit et activations 8-bit (ou 8/8). Équilibre entre qualité et vitesse Tensor Core.

Formats matériel & précision#

Les formats numériques natifs supportés par le hardware moderne.

  • INT8 & FP8 Hardware — Le paysage matériel : Tensor Cores INT8 (NVIDIA), FP8 (Hopper, Blackwell), TPU, NPU, Apple Silicon. Support natif, débit et bande passante.
  • FP4 & FP8 — Formats virgule flottante à basse précision. FP8 (E4M3, E5M2) et FP4 sur Blackwell. Alternative aux formats entiers avec plage dynamique.

Quantification extrême#

Repousser vers 1-4 bits par paramètre, à la frontière de la viabilité.

  • INT4 / INT3 / INT2 Extreme — Vue d'ensemble des quantifications entières ultra-basses. Analyse de la dégradation progressive et des seuils de viabilité.
  • BitNet (Ternary & Binary) — Poids ternaires {-1, 0, +1} ou binaires {-1, +1}. 1.58 bit par poids — entraînement from scratch requis, mais efficacité radicale.
  • Sub-byte Quantization — Techniques pour stocker plusieurs poids par byte (packing). Permet des précisions non-standard comme 1.5-bit ou 12-bit.
  • LLC (Low-bit Linear Combination) — Approximation linéaire à basse précision par combinaison de code-books. Réduit encore la mémoire au-delà du groupage classique.
  • HFQ (Hadruard-Free Quantization) — Quantification sans transformation de Hadamard. Alternative simplifiée aux rotations d'incohérence de QuIP/QuIP#.

Pour aller plus loin#

  1. Commencez par le comparatif complet pour choisir une méthode selon votre cas d'usage.
  2. Pour un déploiement rapide : GGUF ou bitsandbytes NF4.
  3. Pour la meilleure qualité en W4 : AWQ ou GPTQ.
  4. Pour l'inférence la plus rapide : Marlin ou QoQ/QServe.
  5. Pour la recherche en compression extrême : BitNet ou AQLM.
ia llm quantification machine-learning deep-learning