Parallel Decoding
Le parallel decoding désigne l’ensemble des techniques qui accélèrent la génération de texte des LLM en produisant ou vérifiant plusieurs tokens simultanément, plutôt que de les générer un par un de manière séquentielle. Cela inclut le speculative decoding, Medusa, EAGLE, Lookahead et le décodage par blocs.
- Catégorie
- Technique d’optimisation d’inférence
- Objectif
- Réduire la latence de génération en exploitant le parallélisme GPU
- Principe
- Générer ou vérifier plusieurs tokens en une seule passe du modèle
- Techniques principales
- Speculative decoding (draft-verify), Medusa, EAGLE/EAGLE-3, Lookahead, Jacobi decoding
- Speedup typique
- 1,5× à 3× sans perte de qualité (speculative), jusqu’à 2× (Medusa)
- Statut 2026
- Standard de production, intégré dans vLLM, SGLang, TensorRT-LLM
Le problème : les GPU sous-utilisés pendant la génération
La génération autoréressive d’un LLM est fondamentalement séquentielle : chaque token nécessite un passage complet du modèle, et chaque passage dépend du token précédent. Pour un modèle de 70 milliards de paramètres générant 500 tokens, c’est 500 lectures séquentielles de tous les poids du modèle depuis la mémoire GPU.
Le paradoxe est que les GPU modernes offrent une puissance de calcul massive (des milliers de TFLOPS) qui reste largement inutilisée pendant la phase de decode. L’analyse roofline montre que l’inférence LLM se situe à une intensité arithmétique d’environ 1 FLOP par octet, soit deux ordres de grandeur en dessous du point de crête compute-bound. Le goulot d’étranglement n’est pas le calcul mais la bande passante mémoire : le GPU attend les données plus qu’il ne calcule.
Le parallel decoding exploite ce déséquilibre : puisque le GPU a de la puissance de calcul en réserve, on peut l’utiliser pour traiter plusieurs tokens simultanément, « remplissant » le pipeline qui serait autrement inactif.
Les deux familles de parallel decoding
1. Draft-and-Verify (spéculation puis vérification)
Le principe : un mécanisme rapide génère des candidats (draft tokens) pour plusieurs positions futures. Le modèle principal vérifie ensuite ces candidats en un seul passage parallèle. Les tokens corrects sont acceptés, les incorrects sont rejetés et regénérés.
Le passage de vérification est naturellement parallèle car les Transformers calculent l’attention sur toutes les positions simultanément. Vérifier 8 tokens candidats coûte presque le même prix qu’en générer 1 séquentiellement.
2. Prédiction parallèle (multi-token prediction)
Le principe : le modèle lui-même est modifié pour prédire plusieurs tokens futurs simultanément, via des têtes de prédiction supplémentaires ou des mécanismes itératifs. Pas de modèle brouillon séparé.
Les techniques de parallel decoding en détail
Speculative Decoding (Google, 2022)
Le speculative decoding est la technique la plus déployée en production. Un petit modèle « brouillon » (draft model) génère rapidement K tokens candidats de manière autoréessive. Puis le grand modèle « cible » vérifie ces K tokens en un seul passage parallèle, en comparant les distributions de probabilité du draft et de la cible via rejection sampling.
Garantie de qualité. Le rejection sampling garantit que les tokens acceptés sont exactement ceux que le modèle cible aurait produits seul. Il n’y a aucune perte de qualité. C’est la propriété clé qui a permis l’adoption en production.
Speedup. Typiquement 2-3× selon le taux d’acceptation des tokens brouillon. Ce taux dépend de la similarité entre le modèle brouillon et le modèle cible, et de la difficulté de la tâche. La complétion de code (très prévisible) offre les meilleurs taux ; la génération créative (moins prévisible) offre les gains les plus faibles.
Adoption. En 2026, le speculative decoding est intégré dans tous les frameworks de serving majeurs : vLLM, SGLang, TensorRT-LLM. Google l’utilise en production pour AI Overviews.
Medusa (Princeton/UIUC, 2023)
Medusa ajoute K « têtes » de décodage supplémentaires au modèle principal. Chaque tête est un petit FFN (une seule couche) avec une connexion résiduelle, entraîné à prédire un token futur spécifique : la tête 1 prédit le token t+1, la tête 2 prédit t+2, etc. Le modèle principal reste gelé pendant l’entraînement des têtes.
Tree attention. Medusa utilise un mécanisme d’attention en arbre : chaque tête peut proposer plusieurs candidats (top-K), formant un arbre de continuations possibles. Toutes les branches de l’arbre sont vérifiées simultanément dans une seule passe du modèle, grâce à un masque d’attention adapté.
Avantage vs. speculative decoding. Pas besoin de modèle brouillon séparé (pas de maintenance, pas de stockage supplémentaire). L’entraînement des têtes est rapide et léger (seules les têtes sont entraînées, le modèle reste gelé).
Limite. Medusa ne garantit pas la même qualité que le speculative decoding classique, car les prédictions des têtes ne passent pas par un rejection sampling exact. Medusa-2 améliore ce point avec un mécanisme de vérification plus rigoureux.
EAGLE et EAGLE-3 (2024-2025)
EAGLE (Speculative Sampling Requires Rethinking Feature Uncertainty) introduit une couche de spéculation dédiée attachée aux couches internes du modèle cible. Contrairement à Medusa qui prédit à partir de la dernière couche, EAGLE utilise les features des couches intermédiaires pour mieux capturer l’incertitude du modèle.
EAGLE-2 ajoute des arbres de draft dynamiques (la structure de l’arbre s’adapte au taux d’acceptation observé). EAGLE-3 pousse la fusion multi-couches et atteint les meilleurs taux d’acceptation publiés parmi les méthodes single-model. NVIDIA recommande EAGLE-3 comme technique de référence pour le parallel decoding sur GPU dans son blog technique.
Lookahead Decoding (LMSys, 2023)
Lookahead decoding fonctionne sans aucun entraînement supplémentaire ni modèle brouillon. Il utilise une fenêtre 2D fixe pour générer des n-grams candidats (branche lookahead) et les vérifie en parallèle (branche vérification). La clé : il exploite les itérations de Jacobi, où le modèle est appliqué itérativement sur une séquence initiale aléatoire jusqu’à convergence vers des tokens stables.
Avantage : applicable à tout modèle autorégressif sans modification ni entraînement. Limite : le speedup est plus modeste que Medusa ou EAGLE (typiquement 1,5-2×) et les tokens non convergés gaspillent du calcul.
Jacobi Decoding
Le décodage de Jacobi est la base théorique de plusieurs techniques de parallel decoding. Il s’inspire des méthodes itératives de résolution d’équations en mathématiques. L’idée : au lieu de générer les tokens séquentiellement, on initialise toute la séquence de sortie aléatoirement, puis on applique le modèle itérativement. À chaque itération, tous les tokens sont mis à jour en parallèle. Le processus converge quand les tokens se stabilisent (ne changent plus entre itérations).
En pratique, le Jacobi decoding pur a des limitations : les modèles AR entraînés sur des tokens précédents exacts ne fonctionnent pas toujours bien avec des tokens précédents approximatifs. Les Consistency LLMs (CLLM) ont été proposés pour entraîner les modèles à mieux tolérer ces approximations. Le lien conceptuel avec les modèles de diffusion est direct : le débruitage itératif d’une séquence bruitée vers une séquence propre est structurellement analogue au Jacobi decoding.
Comparaison des techniques
| Technique | Modèle séparé ? | Entraînement ? | Qualité préservée ? | Speedup typique | Intégration framework |
|---|---|---|---|---|---|
| Speculative decoding | Oui (draft model) | Non (modèle existant) | Exacte | 2-3× | vLLM, SGLang, TRT-LLM |
| Medusa | Non (têtes ajoutées) | Oui (léger, têtes seules) | Quasi-exacte | ~2× | TRT-LLM, vLLM |
| EAGLE-3 | Non (couche ajoutée) | Oui (couche de spéculation) | Quasi-exacte | 2-3× | TRT-LLM |
| Lookahead | Non | Non | Exacte | 1,5-2× | TRT-LLM |
| Jacobi / CLLM | Non | Oui (fine-tuning) | Approximative | 2-4× | Expérimental |
| Prompt Lookup | Non | Non | Exacte | Variable | HF Transformers |
L’attention en arbre : la brique commune
Plusieurs techniques de parallel decoding (Medusa, EAGLE, speculative decoding) partagent un mécanisme d’attention en arbre (tree attention). Au lieu de vérifier une seule séquence candidate linéaire, le modèle vérifie simultanément un arbre de continuations possibles :
La racine est le dernier token vérifié. Chaque branche est une continuation candidate (différentes prédictions pour les tokens futurs). Toutes les branches sont évaluées en un seul passage grâce à un masque d’attention qui encode la structure de l’arbre. Le chemin le plus long accepté devient la séquence générée.
L’attention en arbre multiplie le nombre de tokens vérifiés par passage sans augmenter proportionnellement le coût de calcul. Un arbre de profondeur 4 avec un facteur de branchement de 3 peut vérifier des dizaines de continuations en un seul forward pass. Le framework DeFT (Decoding with Flash Tree-attention) optimise ce mécanisme pour les GPU NVIDIA.
Parallel decoding en production
Le passage du parallel decoding de la recherche à la production s’est accéléré en 2025-2026 :
vLLM. Le framework de serving le plus populaire intègre le speculative decoding via sa bibliothèque « Speculators » (août 2025). Support des modèles brouillon, de Medusa et d’EAGLE.
SGLang. Support natif du speculative decoding avec optimisation pour les déploiements multi-GPU. Utilisé par des providers comme Together AI pour accélérer les modèles MoE frontier.
TensorRT-LLM (NVIDIA). Support de toutes les techniques majeures : speculative decoding (draft model), Medusa, EAGLE, Lookahead, prompt lookup. Le guide NVIDIA recommande explicitement EAGLE-3 pour les déploiements sur GPU H100/H200/Blackwell.
Google AI. Utilise le speculative decoding en production pour AI Overviews, démontrant que la technique est mature pour des déploiements à grande échelle avec des contraintes de latence strictes.
Avancée récente : Mirror Speculative Decoding (Apple, 2026)
Apple Research a publié Mirror-SD en 2026, une avancée qui brise le compromis latence-acceptance rate du speculative decoding classique. L’idée : au lieu d’utiliser le modèle cible uniquement pour vérifier les tokens du brouillon, Mirror-SD fait travailler les deux modèles en parallèle et en miroir. Le brouillon spécule des continuations pour la cible, tandis que la cible spécule des corrections pour le brouillon. Les deux modèles s’exécutent sur des accélérateurs hétérogènes (GPU + NPU) en parallèle complet.
Ce paradigme élimine le temps d’attente où un modèle attend les résultats de l’autre, exploitant le parallélisme inter-dispositif (GPU/NPU) en plus du parallélisme intra-passage déjà exploité par le speculative decoding standard.
Limites du parallel decoding
Overhead mémoire. Le speculative decoding nécessite de charger un modèle brouillon en plus du modèle cible. Medusa et EAGLE ajoutent des paramètres (modestes) au modèle. L’attention en arbre nécessite un KV-cache élargi pour stocker les clés/valeurs des branches multiples.
Efficacité variable selon la tâche. Le taux d’acceptation des tokens brouillon dépend fortement de la tâche. Code et texte formulaïque : taux élevé, gros speedup. Génération créative et raisonnement : taux faible, speedup modeste. Le speculative decoding est plus efficace quand le texte est prévisible.
Complexité de déploiement. Chaque technique a ses propres hyperparamètres (nombre de tokens spéculés, profondeur de l’arbre, seuil d’acceptation) qui impactent le compromis latence/throughput. Le tuning de ces paramètres pour un cas d’usage spécifique reste un travail d’ingénierie non trivial. Des approches comme Pacer (longueur de draft dynamique) et Kangaroo (early exit basé sur la confiance) automatisent partiellement ce tuning.
Verdict
Le parallel decoding est passé du statut de curiosité académique à celui de standard de production en trois ans. Le speculative decoding, en particulier, est aujourd’hui intégré dans tous les frameworks de serving majeurs et utilisé par les plus grands providers d’API. Son atout décisif : accélérer l’inférence de 2-3× sans aucune perte de qualité, une propriété que peu d’optimisations peuvent revendiquer.
Les techniques single-model (Medusa, EAGLE-3) gagnent du terrain car elles éliminent la complexité de maintenir un modèle brouillon séparé. EAGLE-3, avec sa fusion multi-couches et ses taux d’acceptation élevés, est probablement la technique la plus prometteuse pour les déploiements qui acceptent un léger investissement d’entraînement.
Si vous servez un LLM en production et que vous n’utilisez pas encore le parallel decoding, vous laissez de la performance sur la table. C’est l’une des optimisations au meilleur rapport effort/gain disponibles en 2026.
Questions fréquentes sur le parallel decoding
Le parallel decoding change-t-il la qualité des réponses du LLM ?
Pour le speculative decoding classique : non, la qualité est mathématiquement identique. Le rejection sampling garantit que les tokens acceptés sont exactement ceux que le modèle cible aurait produits seul. Pour Medusa et EAGLE : la qualité est quasi-identique avec de très légères différences possibles, car les mécanismes de vérification sont approximatifs. En pratique, les utilisateurs ne perçoivent pas de différence de qualité.
Quel speedup peut-on attendre en pratique ?
Le speedup dépend fortement de la tâche et du choix du modèle brouillon. Pour la complétion de code (tokens très prévisibles) : 2,5-3×. Pour le dialogue général : 1,8-2,5×. Pour la génération créative (moins prévisible) : 1,3-1,8×. Les résultats empiriques sur LLaMA 3.1 avec H100 confirment un speedup moyen de 1,9× avec Medusa et 2,4× avec EAGLE-3 dans les tests NVIDIA.
Comment choisir le modèle brouillon pour le speculative decoding ?
Le modèle brouillon doit être de la même famille que le modèle cible (même tokenizer, vocabulaire similaire) et beaucoup plus petit (typiquement 5-10× moins de paramètres). Par exemple : LLaMA 3.1 8B comme brouillon pour LLaMA 3.1 70B. Plus le brouillon est similaire au modèle cible (même distribution de probabilité), plus le taux d’acceptation est élevé. Le brouillon peut aussi être un modèle distillé depuis la cible.
Le parallel decoding fonctionne-t-il avec les modèles MoE ?
Oui. Together AI utilise le speculative decoding sur des modèles MoE comme DeepSeek V3 pour maximiser le throughput. Le MoE réduit le coût par token (moins de paramètres actifs), le speculative decoding réduit le nombre de passes nécessaires. Les deux optimisations sont orthogonales et se cumulent.
Medusa ou speculative decoding : lequel est le plus simple à déployer ?
Medusa est plus simple à déployer car il ne nécessite pas de modèle brouillon séparé. Il suffit d’entraîner les têtes Medusa (quelques heures sur GPU) et de les charger avec le modèle principal. Le speculative decoding nécessite de sélectionner, stocker et servir un modèle brouillon en plus du modèle cible, doublant la complexité de gestion. En revanche, le speculative decoding offre une garantie de qualité exacte que Medusa n’offre pas nativement.