En bref

Entraîner un grand modèle de langage est une opération planifiable, en batch, sur plusieurs semaines. Le servir en production est un problème radicalement différent : chaque réponse doit arriver vite, des milliers d’utilisateurs peuvent se connecter simultanément, et la mémoire GPU est une ressource rare et coûteuse. Cinq familles de techniques ont émergé pour répondre à ce défi — chacune attaquant un goulot d’étranglement précis.


Le problème : pourquoi l’inférence est coûteuse

Un modèle de 70 milliards de paramètres stocké en précision FP16 occupe environ 140 Go de mémoire GPU. Un seul GPU A100 haut de gamme en dispose de 80 Go. Déjà, le modèle ne tient pas.

Mais la mémoire n’est pas le seul problème. La génération de texte est séquentielle par nature : chaque nouveau token dépend de tous les tokens précédents. Le modèle doit donc passer l’intégralité de son calcul pour produire un seul mot. Et pour ne pas recalculer les mêmes choses à chaque étape, les systèmes conservent en mémoire les résultats intermédiaires de l’attention (le KV cache — pour Key-Value cache). Ce cache grossit à chaque token généré, et encore plus vite quand plusieurs requêtes sont traitées en parallèle.

L’industrie de l’inférence est estimée à 106 milliards de dollars en 2025, avec une projection au-delà de 250 milliards d’ici 2030. Réduire ce coût est un enjeu commercial autant que technique.


Quantization : tenir dans moins de mémoire

La quantization réduit la précision numérique des poids d’un modèle. Au lieu de stocker chaque paramètre sur 16 bits (FP16), on passe à 8, 4, voire 2 bits. Le gain est immédiat : un modèle en 4 bits occupe quatre fois moins de mémoire qu’en FP16.

La difficulté est de compresser sans dégrader les performances. Trois approches ont marqué l’état de l’art :

GPTQ (Frantar et al., ICLR 2023) utilise l’information mathématique du second ordre pour quantifier couche par couche avec une perte minimale. Sur un modèle de 175 milliards de paramètres, il permet une accélération d’environ 3× sur GPU A100 en 4 bits, tout en faisant tenir le modèle dans un seul GPU.

AWQ (Lin et al., MLSys 2024, Best Paper Award) part d’une observation : tous les poids ne contribuent pas de façon égale au résultat. En identifiant le 1% de canaux les plus importants (repérés via les activations, pas les poids), AWQ les protège d’une compression agressive. Cette sélectivité lui permet de dépasser 3× d’accélération même sur GPU mobile.

SmoothQuant (Xiao et al., 2023) s’attaque à un cas plus difficile : quantifier à la fois les poids et les activations en INT8. Les activations posent un problème spécifique — quelques dimensions contiennent des valeurs extrêmes qui résistent à la compression. SmoothQuant déplace mathématiquement cette difficulté vers les poids, qui sont plus faciles à compresser. Résultat : jusqu’à 1,56× d’accélération et 2× de réduction mémoire.

Une nuance importante : la quantization 4 bits est souvent présentée comme quasi sans perte sur les benchmarks standard. Des travaux récents nuancent cette conclusion — les tâches de raisonnement mathématique et de programmation subissent des dégradations nettes en INT4, invisibles sur les mesures de perplexité habituelles (arxiv 2505.11574). La compression de 4 bits préserve moins bien les capacités de raisonnement que la perplexité ne le laisse supposer.

Pour une couverture complète des méthodes de quantization (GGUF, llama.cpp, NF4, formats hardware récents), voir l’article dédié.


FlashAttention : réduire les allers-retours dans le GPU

L’opération d’attention — le mécanisme central des Transformers — est connue pour sa consommation mémoire quadratique avec la longueur de la séquence. Mais Tri Dao et ses coauteurs (NeurIPS 2022) ont identifié un problème plus fondamental : le goulot n’est pas le nombre de calculs, c’est le temps passé à déplacer des données entre la mémoire haute bande passante du GPU (HBM) et sa mémoire rapide on-chip (SRAM).

L’attention standard lit et écrit en HBM à chaque étape. FlashAttention découpe le calcul en blocs pour qu’il reste entièrement dans la SRAM, bien plus rapide. Résultat : les transferts mémoire passent de quadratiques à linéaires. Gain mesuré : 3× sur GPT-2, sans aucune modification de la sortie — l’algorithme est exact, pas approximatif.

FlashAttention-2 (ICLR 2024) améliore la parallélisation interne et atteint 50 à 73% du maximum théorique de calcul d’un GPU A100, contre 25 à 40% pour la version précédente. FlashAttention-3 (2024) ajoute des optimisations spécifiques aux GPU H100 de Nvidia.

FlashAttention est aujourd’hui intégré par défaut dans la plupart des frameworks d’inférence. Son impact n’est pas marginal : c’est l’une des rares optimisations qui accélère l’entraînement et l’inférence simultanément.


vLLM et PagedAttention : gérer le KV cache comme un système d’exploitation

Le KV cache est imprévisible : sa taille dépend de la longueur de chaque réponse générée, qui varie d’une requête à l’autre. Les implémentations naïves réservent de la mémoire au maximum possible — ce qui gaspille de 60 à 80% des ressources GPU selon les mesures de l’équipe vLLM.

Kwon et al. (SOSP 2023) ont emprunté une idée aux systèmes d’exploitation : la mémoire virtuelle et la pagination. Dans PagedAttention, le KV cache est découpé en blocs de taille fixe alloués à la demande dans un pool partagé, exactement comme un OS gère ses pages mémoire. Cela élimine la fragmentation et permet en plus de partager les blocs communs entre requêtes similaires (par exemple, plusieurs requêtes utilisant le même préfixe).

vLLM construit sur PagedAttention un système de serving complet, avec une fonctionnalité clé : le batching continu. Au lieu d’attendre que toutes les requêtes d’un batch soient terminées pour en traiter de nouvelles, de nouvelles requêtes rejoignent le batch dès que des slots se libèrent. Le gain mesuré est de 2 à 4× de débit par rapport aux systèmes précédents à latence équivalente.

Un débat architectural est en cours : vAttention (arxiv 2405.04437) propose de gérer la mémoire du KV cache directement via les primitives du système d’exploitation, sans le mécanisme de paging de vLLM, arguant que les abstractions modernes rendent PagedAttention inutilement complexe. Ce débat reste ouvert.


Speculative decoding : paralléliser un processus séquentiel

La contrainte fondamentale de la génération autorégressive est simple : pour produire le token N, il faut avoir produit le token N-1, donc faire tourner le grand modèle au moins une fois par token. Il est impossible de paralléliser ce processus — en apparence.

Le speculative decoding (Leviathan et al., ICML 2023 ; Chen et al., 2023) propose un contournement : un modèle auxiliaire plus petit (le modèle draft) propose K tokens en avance, puis le grand modèle les vérifie tous en un seul passage parallèle. Si les propositions sont acceptées, K tokens sont produits au coût d’un seul appel au grand modèle.

La garantie mathématique est forte : la procédure préserve exactement la distribution de probabilité du grand modèle. Le résultat est identique à ce qu’il aurait produit sans accélération.

Les implémentations modernes ont abandonné le modèle draft externe :

Medusa (Cai et al., 2024) ajoute des têtes de décodage supplémentaires directement au modèle, prédisant plusieurs tokens suivants en parallèle. Gain : 2,2 à 3,6× selon la configuration.

EAGLE-3 (Li et al., 2025) utilise un mini-Transformer d’une couche comme draft, réutilisant les représentations internes du grand modèle. Les gains atteignent 3 à 6,5× vs la génération standard.

Une limite documentée : les gains du speculative decoding dépendent fortement du taux d’acceptation des tokens proposés, qui varie selon la langue et la tâche. Des travaux récents (arxiv 2510.02128) montrent que les langues sous-représentées dans les données d’entraînement ont des taux d’acceptation beaucoup plus faibles — ce qui crée une inégalité de latence entre utilisateurs selon leur langue.


Distillation : fabriquer des modèles plus petits mais capables

La distillation de connaissance est une approche différente : plutôt qu’optimiser le déploiement d’un grand modèle, on entraîne un modèle plus petit à reproduire le comportement du grand. L’étudiant n’apprend pas à partir des données d’origine, mais à partir des sorties du modèle enseignant — ses distributions de probabilité, ses raisonnements intermédiaires.

Cette approche prend deux formes principales dans le contexte des LLM :

  • Distillation sur les outputs : le petit modèle apprend sur des textes générés par le grand. C’est le paradigme dominant depuis GPT-4 : de nombreux modèles open-source ont été affinés sur des données synthétiques produites par des modèles propriétaires.

  • Distillation des représentations intermédiaires : l’étudiant est supervisé sur les activations internes du grand modèle, pas seulement ses sorties. Plus contraignant à mettre en œuvre, mais plus précis.

La distillation de chaînes de raisonnement (Chain-of-Thought distillation) force l’étudiant à reproduire les étapes intermédiaires du raisonnement, pas uniquement la réponse finale. Cette technique explique en partie pourquoi des modèles de 7 ou 14 milliards de paramètres peuvent rivaliser sur certaines tâches avec des modèles dix fois plus grands.

Une question ouverte : entraîner un modèle open-source sur les sorties de GPT-4 ou Gemini viole les conditions d’utilisation de ces services. Le statut légal de cette pratique est non résolu et pèse sur la reproductibilité d’une partie des travaux de distillation publiés (Xu et al., arxiv 2402.13116).

Pour une couverture complète des méthodes de distillation (familles, pruning, self-distillation, limites), voir l’article dédié.


Cinq goulots, cinq réponses

Ces techniques ne sont pas redondantes — elles s’attaquent à des contraintes différentes :

TechniqueGoulot cibléMécanisme
QuantizationMémoire GPURéduction de la précision des poids
FlashAttentionBande passante mémoire interneCalcul en blocs dans la SRAM
vLLM / PagedAttentionFragmentation du KV cachePagination à la demande
Speculative decodingSéquentialité de la générationDraft + vérification parallèle
DistillationTaille du modèleTransfert de capacités vers un modèle plus petit

En pratique, elles sont combinées. Un système de production type utilise un modèle quantizé en 4 bits, servi via vLLM avec FlashAttention-2, avec speculative decoding actif. La difficulté est que ces optimisations interagissent : la quantization 4 bits peut réduire la qualité des propositions du modèle draft, et le batching continu peut entrer en conflit avec les hypothèses de la quantization statique. L’optimisation globale d’un système d’inférence reste un problème ouvert.


Ce qu’il faut retenir

  • Un modèle de 70 milliards de paramètres en précision standard dépasse la capacité d’un seul GPU haut de gamme — la quantization (GPTQ, AWQ) permet de le faire tenir en 4 bits avec une perte de qualité souvent faible, mais mesurable sur les tâches de raisonnement.
  • FlashAttention résout un problème de transfert mémoire interne au GPU, pas de calcul — c’est pourquoi ses gains se cumulent avec les autres optimisations.
  • vLLM introduit la gestion du KV cache par pagination, inspirée des OS, et multiplie le débit de 2 à 4× par rapport aux systèmes naïfs.
  • Le speculative decoding contourne la séquentialité de la génération en utilisant un modèle draft rapide, avec une garantie mathématique de préserver la distribution du grand modèle — mais ses gains sont inégaux selon les langues.
  • La distillation produit des modèles plus petits capables de comportements proches des grands modèles, mais soulève des questions légales non résolues quand elle s’appuie sur les sorties de modèles propriétaires.

Sources