Besoin d'une latence réduite sur H100/Blackwell sans l'impact sur la précision d'une quantization INT agressive.
→Utiliser la quantization FP8 (E4M3) via TensorRT-LLM ; Hopper et Blackwell disposent de Tensor Cores FP8 natifs.
Pourquoi: FP8 préserve mieux la plage dynamique que INT8 et fonctionne à pleine vitesse matérielle sur Hopper+, offrant une qualité proche de FP16 avec un débit de classe INT8.
Référence↗
Le modèle tient à peine dans la mémoire GPU et le débit est limité par la bande passante mémoire.
→Appliquer la quantization INT4 poids-seulement (AWQ ou GPTQ) ; maintenir les activations en FP16/FP8.
Pourquoi: INT4 poids-seulement réduit environ de moitié la mémoire par rapport à INT8 et soulage la pression sur la bande passante ; la précision d'activation reste élevée, donc la perte de précision est minime.
Décider entre la quantization post-entraînement et l'entraînement conscient de la quantization.
→Commencer par la PTQ (calibrer sur un échantillon représentatif) ; ne recourir à la QAT que si la perte de précision de la PTQ dépasse le budget.
Pourquoi: La PTQ est rapide et ne nécessite pas de réentraînement ; la QAT récupère la précision mais coûte un cycle d'entraînement, il faut donc la réserver aux modèles critiques en précision.
Inférence à long contexte où le cache KV domine la mémoire et limite la taille du lot.
→Activer la quantization du cache KV en FP8 ou INT8 dans TensorRT-LLM.
Pourquoi: Le cache KV augmente avec la longueur de séquence × lot ; sa quantization libère de la mémoire pour des lots plus grands et des contextes plus longs avec un impact minimal sur la qualité.
Des longueurs de requête mixtes entraînent un temps d'inactivité du GPU avec le batching statique.
→Utiliser le batching en vol (continu) dans TensorRT-LLM afin que les séquences terminées soient évincées et que de nouvelles rejoignent le processus en cours.
Pourquoi: Le batching continu maintient le GPU saturé et augmente le débit bien au-delà du batching statique pour les flux de requêtes hétérogènes.
Référence↗
Un grand modèle "enseignant" répond aux exigences de qualité mais pas aux objectifs de latence et de coût.
→Distinguer vers un modèle "étudiant" plus petit, puis quantizer l'étudiant pour l'inférence.
Pourquoi: La distillation transfère les capacités à une architecture moins coûteuse ; combinée à la quantization, elle augmente les économies de coût/latence.
La latence en flux unique est trop élevée pour un cas d'utilisation interactif.
→Appliquer le décodage spéculatif avec un petit modèle "brouillon" vérifié par le modèle cible.
Pourquoi: Le brouillon propose plusieurs tokens que le grand modèle vérifie en un seul passage, réduisant la latence réelle sans modifier la distribution de sortie.
Quantizer tout en INT4 dégrade la précision sur quelques couches sensibles.
→Utiliser la précision mixte : maintenir les couches sensibles (par exemple, projection finale, attention) avec une précision plus élevée et quantizer le reste.
Pourquoi: La sensibilité par couche varie ; la précision sélective protège la précision là où c'est important tout en réduisant la majeure partie des poids.
La précision de la PTQ est médiocre malgré un schéma de quantization raisonnable.
→Recalibrer avec un échantillon de la distribution (des centaines de prompts représentatifs) correspondant au trafic de production.
Pourquoi: La calibration définit les plages d'activation ; un échantillon non représentatif produit de mauvaises échelles et une perte de précision évitable.