Pourquoi quantizer ?
Un modèle 70B en FP16 occupe ~140 Go de VRAM — il faut 2 A100 80Go minimum. En INT4 (quantization 4 bits), on tombe à ~35 Go : un seul A100 suffit, avec une dégradation de perplexité inférieure à 2% sur les benchmarks classiques.
GPTQ : quantization post-training
GPTQ est l'algorithme de référence pour la quantization INT4/INT8. Il calibre les poids sur un petit dataset de calibration (128-512 exemples) puis quantize par layer en minimisant l'erreur. Compatible avec AutoGPTQ et intégré dans HuggingFace Transformers.
AWQ : plus précis que GPTQ
AWQ (Activation-aware Weight Quantization) identifie les "canaux saillants" — les dimensions qui influencent le plus les activations — et les préserve en précision plus haute. Résultat : meilleure qualité que GPTQ pour le même niveau de compression, et inférence plus rapide avec vLLM.
GGUF : pour le CPU et les machines locales
Le format GGUF (successeur de GGML) est optimisé pour l'inférence CPU via llama.cpp. Il permet de faire tourner un 7B quantisé en Q4_K_M sur un MacBook Pro M3 avec des performances acceptables (~15 tokens/s). Idéal pour le développement local ou les déploiements edge.
Quel format choisir
- GPU NVIDIA (prod) : AWQ + vLLM pour le throughput maximal
- GPU NVIDIA (dev) : bitsandbytes NF4 (load_in_4bit=True) pour la simplicité
- CPU / Apple Silicon : GGUF Q4_K_M via llama.cpp ou Ollama