Décodage spéculatif : comment accélérer de 2 à 3 fois les réponses d’un LLM

Une technique de génération plus intelligente permettrait d’accélérer l’inférence des grands modèles de langage (LLM) de 2 à 3 fois, sans modifier leur architecture ni dégrader la qualité statistique des réponses.

Le décodage spéculatif (speculative decoding) repose sur une stratégie de génération plutôt que sur une modification du modèle lui-même. Son principe consiste à associer un petit modèle rapide à un modèle cible plus puissant, afin de produire plusieurs tokens simultanément au lieu de les générer successivement.

Décodage spéculatif : comment accélérer de 2 à 3 fois les réponses d’un LLM

Cette approche pourrait permettre aux entreprises d’améliorer les performances de leurs infrastructures d’intelligence artificielle sans devoir systématiquement investir dans de nouveaux accélérateurs graphiques. Le principe et ses limites sont détaillés dans un tutoriel de the-ai.news, que nous résumons ici pour les équipes informatiques qui déploient des modèles.

Quel est le vrai frein à l’inférence des grands modèles de langage ?

Un modèle génère sa réponse token par token, c’est-à-dire fragment de texte par fragment de texte. Un token peut correspondre à un mot entier, à une partie de mot, à un signe de ponctuation ou à un autre élément textuel.

Ce fonctionnement, appelé génération autorégressive, signifie que chaque nouveau token dépend des précédents. Le modèle doit donc généralement terminer une étape de génération avant de pouvoir calculer la suivante.

Cela devient un obstacle à mesure que les modèles grossissent, surtout pour les assistants de programmation, les services client ou les agents en temps réel.

Le frein ne vient pas principalement de la puissance de calcul : des GPU comme les NVIDIA H100 sont très rapides pour les calculs matriciels. Le problème tient notamment au transfert des milliards de paramètres, stockés en mémoire, vers les unités de calcul avant chaque étape de génération.

Dans certaines configurations, les GPU passent ainsi davantage de temps à déplacer les données qu’à effectuer des calculs. On parle alors d’un problème de limitation par la bande passante mémoire (memory-bound).

Cette situation explique pourquoi ajouter de la puissance de calcul n’accélère pas nécessairement la génération dans les mêmes proportions. Un GPU plus puissant ne résout pas automatiquement un problème de circulation des données entre la mémoire et les unités de calcul.

Il faut également distinguer deux phases de l’inférence :

  • Le prefill : le modèle traite le prompt initial et calcule les représentations nécessaires à la génération. Cette phase peut être fortement dépendante de la puissance de calcul
  • Le decoding : le modèle produit progressivement les tokens de la réponse. Cette phase peut être limitée par la bande passante mémoire, notamment lorsque les requêtes sont traitées avec de petits lots

C’est précisément cette seconde phase que le décodage spéculatif cherche à optimiser.

Comment fonctionne le décodage spéculatif ?

Le système repose sur deux modèles qui travaillent ensemble :

  • Le modèle brouillon (draft model) : un modèle de petite taille, capable de générer rapidement des propositions de tokens
  • Le modèle cible (target model) : le modèle principal, généralement plus volumineux et plus performant, qui vérifie les propositions du premier

Le fonctionnement se déroule en plusieurs étapes.

1. Le petit modèle anticipe les prochains tokens

Au lieu de laisser le grand modèle générer chaque token individuellement, le modèle brouillon produit rapidement une séquence de candidats. Selon la configuration, il peut proposer quatre à huit tokens, voire davantage.

2. Le grand modèle vérifie les propositions en parallèle

Le modèle cible examine ensuite l’ensemble de la séquence proposée au cours d’une seule passe de calcul. Il vérifie si les tokens correspondent à ses propres prédictions, compte tenu du contexte déjà généré.

Cette opération exploite les capacités de calcul parallèle des GPU. En effet, vérifier plusieurs tokens au cours d’une même passe peut être beaucoup moins coûteux que de les générer successivement.

3. Les tokens validés sont conservés

Les propositions compatibles avec le mécanisme de validation sont acceptées. Si un token est rejeté, le système reprend la génération à partir de la position concernée en utilisant le modèle cible.

Le processus recommence ensuite jusqu’à la production complète de la réponse.

Un point essentiel mérite d’être souligné : dans le décodage spéculatif classique, un mécanisme de validation probabiliste permet de préserver exactement la distribution de sortie du modèle cible. Le résultat conserve donc les mêmes propriétés statistiques que si le grand modèle avait généré seul la réponse.

Il ne s’agit pas simplement de remplacer le grand modèle par un modèle plus petit, mais de lui faire gagner du temps en anticipant les calculs qu’il aurait dû effectuer successivement.

Pourquoi cette méthode peut-elle accélérer l’inférence de 2 à 3 fois ?

Le gain provient principalement de la réduction du nombre d’étapes séquentielles nécessaires à la génération.

Prenons un exemple simplifié. Un grand modèle doit produire une réponse de 100 tokens.

Avec une génération classique, il doit effectuer environ 100 étapes successives de décodage.

Avec le décodage spéculatif, le petit modèle propose plusieurs tokens à chaque cycle. Si le modèle cible en accepte régulièrement trois ou quatre, chaque passage permet de faire progresser la génération de plusieurs positions.

Le gain dépend du nombre moyen de tokens acceptés, mais aussi du temps nécessaire à la production des propositions et à leur vérification.

Les travaux de recherche de Google publiés en 2023 sur la génération spéculative ont notamment démontré des accélérations de l’ordre de deux à trois fois dans certaines configurations.

Il ne s’agit toutefois pas d’une performance garantie. Le résultat varie selon la taille des modèles, leur compatibilité, le matériel utilisé, la longueur des réponses et le nombre de requêtes simultanées.

Quels sont les avantages pour une entreprise ?

Pour une PME qui héberge ses propres modèles, gagner un facteur 2 à 3 sur la vitesse de génération sans réentraîner le modèle cible constitue une piste à étudier avant d’acheter du matériel supplémentaire.

Plusieurs bénéfices peuvent être envisagés.

Réduire la latence des applications d’IA

Le premier avantage concerne le temps de réponse. Un assistant de programmation qui génère plusieurs dizaines de lignes de code, un chatbot qui rédige une réponse détaillée ou un agent qui analyse des documents peuvent bénéficier d’une génération plus rapide.

La réduction du temps entre les tokens améliore notamment la fluidité des interactions avec les utilisateurs.

Optimiser l’utilisation des GPU existants

Une infrastructure peut disposer de GPU performants sans exploiter pleinement leurs capacités de calcul pendant la génération.

En regroupant plusieurs vérifications dans une même passe, le décodage spéculatif permet de mieux exploiter le parallélisme disponible.

Reporter certains investissements matériels

Pour une entreprise qui exploite ses propres modèles, accélérer l’inférence peut permettre de différer l’acquisition de nouveaux GPU ou de limiter les besoins d’extension de son infrastructure.

Il faut néanmoins tenir compte du coût supplémentaire du modèle brouillon, de sa consommation mémoire et des ressources nécessaires à son exécution.

Conserver le modèle principal en production

L’un des principaux intérêts de cette approche est qu’elle ne nécessite pas de réentraîner le grand modèle cible ni de modifier son architecture.

L’entreprise peut donc conserver son modèle existant, ses paramètres et ses procédures de validation, tout en adaptant le mécanisme de génération.

Le déploiement nécessite toutefois une solution logicielle compatible et une configuration adaptée aux deux modèles.

Quelles sont les limites du décodage spéculatif ?

Malgré ses avantages, le décodage spéculatif ne constitue pas une solution universelle. Son efficacité dépend de plusieurs facteurs.

La qualité des prédictions du modèle brouillon

Le petit modèle doit être suffisamment rapide, mais aussi capable d’anticiper correctement les tokens du modèle cible.

Si ses propositions sont fréquemment rejetées, le nombre de cycles de vérification augmente et le gain de performance diminue.

La compatibilité entre les deux modèles

Dans une implémentation classique, les modèles doivent notamment disposer de tokenizers compatibles afin de faciliter la comparaison et la validation des tokens proposés.

Le choix du modèle brouillon ne doit donc pas se limiter à sa taille. Il faut également évaluer sa capacité à reproduire les distributions de sortie du modèle cible.

La charge de l’infrastructure

Le décodage spéculatif est particulièrement intéressant lorsque la génération est limitée par les accès mémoire et que les requêtes sont traitées avec de petits lots.

En revanche, lorsque le GPU traite déjà un grand nombre de requêtes simultanément, les gains peuvent être plus modestes. Le modèle brouillon consomme lui aussi des ressources et peut augmenter la pression sur la mémoire.

Le compromis entre nombre de tokens proposés et taux d’acceptation

Proposer davantage de tokens à chaque cycle ne garantit pas une accélération supérieure. Plus la séquence proposée est longue, plus le risque de rejet peut augmenter.

Il faut donc ajuster la longueur des séquences en fonction du modèle, des requêtes et du matériel utilisé.

Comment tester le décodage spéculatif avant un déploiement ?

Pour les équipes informatiques, la meilleure approche consiste à réaliser des benchmarks sur leur propre infrastructure, en comparant la génération classique et la génération spéculative.

Plusieurs indicateurs doivent être suivis :

  • TTFT (Time To First Token) : le temps nécessaire avant l’apparition du premier token
  • ITL (Inter-Token Latency) : le temps moyen entre deux tokens générés successivement
  • Débit de génération : le nombre de tokens produits par seconde
  • Taux d’acceptation : la proportion de tokens proposés par le modèle brouillon et validés par le modèle cible
  • Consommation mémoire : la quantité de mémoire GPU utilisée par les deux modèles et leurs caches
  • Coût par requête : les ressources matérielles consommées pour produire une réponse

Il est également important de tester plusieurs catégories de requêtes : génération de code, résumé de documents, conversation, extraction d’informations et réponses longues.

Des solutions comme NVIDIA TensorRT-LLM intègrent déjà différentes techniques de décodage spéculatif. D’autres approches, comme EAGLE, cherchent à améliorer les prédictions et à augmenter le nombre de tokens acceptés à chaque cycle.

Ces évolutions montrent que le décodage spéculatif devient un véritable axe d’optimisation des moteurs d’inférence, au même titre que la quantification, le batching ou la gestion du cache KV.

Conclusion : accélérer les LLM sans systématiquement acheter de nouveaux GPU

Le décodage spéculatif illustre une évolution importante dans l’optimisation des infrastructures d’intelligence artificielle. Jusqu’à présent, l’accélération de l’inférence était souvent abordée sous l’angle de la puissance matérielle, de la réduction de la taille des modèles ou de la quantification.

Cette technique propose une autre voie : améliorer la manière dont les tokens sont générés en exploitant davantage le parallélisme des accélérateurs existants.

Pour les entreprises, l’intérêt est concret. Avant d’investir dans de nouveaux GPU ou de remplacer un modèle en production, il peut être pertinent d’évaluer les possibilités offertes par le décodage spéculatif.

Un gain de vitesse de deux à trois fois est envisageable dans certaines configurations, mais doit être confirmé par des benchmarks représentatifs des usages réels.

L’enjeu n’est donc plus seulement de disposer de modèles toujours plus puissants, mais aussi de les faire fonctionner plus intelligemment et plus efficacement.

Raphael Vidal
Raphael Vidal a publié 2 articles sur MC2 Informatique depuis 2020.