Le décodage spéculatif est une technique d'optimisation au moment de l'inférence pour les grands modèles de langage qui accélère la génération de texte autorégressive en utilisant un modèle de brouillon plus petit et plus rapide pour proposer plusieurs tokens candidats à l'avance, que le modèle principal vérifie ou rejette ensuite en un seul passage parallèle. Étant donné que la vérification peut contrôler plusieurs tokens à la fois, la technique peut produire la même distribution de sortie qu'un décodage standard tout en nécessitant moins de passages séquentiels à travers le grand modèle, réduisant ainsi la latence sans modifier ce que le modèle aurait généré.
Cette approche a été décrite dans des recherches de Google et DeepMind en 2022 et 2023, puis adoptée dans les principaux systèmes d'inférence d'ici 2024, devenant une technique standard pour réduire le coût et la latence du service des grands modèles en production.
Comment cela fonctionne
Dans l'inférence autorégressive standard, un modèle génère un token à la fois, et chaque token nécessite un passage complet avant que le suivant puisse être produit, un processus intrinsèquement séquentiel. Le décodage spéculatif brise ce goulot d'étranglement en faisant générer par un modèle de brouillon plus petit, beaucoup moins coûteux à exécuter, une courte séquence de tokens candidats. Le grand modèle cible évalue ensuite tous ces candidats en un seul passage par lots, vérifiant s'il aurait attribué une probabilité similaire à chaque token proposé. Les tokens qui réussissent cette vérification sont acceptés ; le premier token qui échoue est corrigé par la propre prédiction du modèle cible, et tous les tokens de brouillon restants après ce point sont écartés. Comme un passage complet sur plusieurs tokens coûte à peine plus qu'un passage sur un seul token, car le calcul est souvent dominé par la bande passante mémoire plutôt que par l'arithmétique sur les GPU modernes, les étapes multi-tokens acceptées produisent une accélération nette substantielle.
Variantes de conception
Plusieurs variantes de l'idée centrale ont été proposées. Certains systèmes utilisent un petit modèle distillé ou autrement lié comme modèle de brouillon ; d'autres utilisent un sous-ensemble des couches du modèle cible lui-même, ou une recherche légère basée sur des n-grammes du contexte récent, évitant ainsi de devoir entraîner et maintenir un modèle de brouillon séparé. Medusa et des approches similaires attachent des têtes de prédiction supplémentaires au modèle original lui-même pour proposer plusieurs tokens futurs sans modèle séparé du tout. Le choix de la stratégie de brouillon affecte à la fois le taux d'acceptation, c'est-à-dire la fréquence à laquelle les tokens de brouillon correspondent à ce que le modèle cible aurait produit, et le coût supplémentaire de l'exécution de l'étape de brouillon.
Impact
Le décodage spéculatif est notable pour être presque une optimisation gratuite, dans le sens où, implémenté correctement, il ne modifie pas la distribution de sortie d'un modèle ni ne nécessite de réentraînement ; il change seulement la rapidité avec laquelle cette sortie est calculée. Cela le distingue des techniques d'efficacité avec perte telles que la quantification ou la distillation des connaissances, qui peuvent affecter la qualité de la sortie. Vers le milieu des années 2020, le décodage spéculatif était largement déployé par les principaux fournisseurs de modèles dans le cadre de l'infrastructure de service standard, en particulier pour les applications sensibles à la latence comme les interfaces de chat et les assistants de codage tels que GitHub Copilot et Claude Code, et était fréquemment combiné à d'autres optimisations de service pour réduire le coût d'exécution des modèles de pointe à grande échelle.