Qu'est-ce que le décodage spéculatif ?
Réponse rapide
Le décodage spéculatif associe un petit modèle de brouillon à un modèle cible plus grand. Le modèle de brouillon propose plusieurs tokens à l'avance, et le modèle cible les vérifie tous en une seule passe parallèle au lieu d'une passe séquentielle par token, ce qui accélère la génération lorsque les propositions sont acceptées.
- ▸Un petit modèle de brouillon propose plusieurs tokens avant le modèle principal.
- ▸Le modèle cible plus grand vérifie les tokens proposés en une seule passe parallèle.
- ▸La qualité de sortie correspond exactement à celle du modèle cible — le décodage spéculatif ne change pas ce qui est généré, seulement la vitesse.
Mis à jour : 14 juillet 2026
Points clés
- ✓Un petit modèle de brouillon propose des tokens à l'avance ; le modèle cible plus grand les vérifie en une seule passe parallèle
- ✓La qualité de sortie est identique à celle du modèle cible seul — seule la vitesse change
- ✓Le gain de vitesse est maximal sur du texte prévisible (code, structure répétitive) où le modèle de brouillon devine juste plus souvent
- ✓Le modèle de brouillon doit partager le même tokenizer et le même vocabulaire que le modèle cible
Comment ça fonctionne
Un modèle de brouillon, bien plus petit et rapide que le modèle cible, génère une courte séquence de tokens candidats. Le modèle cible évalue ensuite l'intégralité de cette séquence en une seule passe, acceptant les tokens qui correspondent à ce qu'il aurait généré seul et rejetant le reste, ainsi que tout ce qui a été généré après la première divergence.
Comme vérifier plusieurs tokens en parallèle coûte à peu près autant que générer un seul token séquentiellement sur le modèle cible, les propositions acceptées se traduisent directement par un gain de vitesse sans changement de la sortie finale. Le modèle cible garde toujours le dernier mot — une proposition erronée du modèle de brouillon ne coûte que le (court) temps de sa génération et n'est jamais retenue dans la sortie.
Quand le décodage spéculatif aide le plus
Utilisez le décodage spéculatif pour générer du code, des données structurées ou tout autre texte prévisible, où les propositions du modèle de brouillon sont acceptées à un taux élevé et le gain de vitesse est maximal. Utilisez-le lorsque vous êtes déjà limité par la vitesse de génération plutôt que par le traitement du prompt, puisque le décodage spéculatif accélère spécifiquement l'étape de génération token par token.
Évitez le décodage spéculatif pour du texte très créatif et imprévisible (fiction ouverte, brainstorming), où les propositions du modèle de brouillon sont acceptées moins souvent et le gain de vitesse diminue — la surcharge du modèle de brouillon peut, dans le pire des cas, annuler le gain. Évitez-le également si vous ne disposez pas d'un modèle plus petit compatible de la même famille à utiliser comme modèle de brouillon.
Configurer un modèle de brouillon
Le modèle de brouillon doit partager le même tokenizer et le même vocabulaire que le modèle cible — associer des modèles de familles différentes (ou même des tailles différentes d'un modèle dont le vocabulaire a changé entre les versions) ne fonctionnera pas. La configuration la plus courante utilise un modèle plus petit de la même famille que le modèle cible (par exemple, un modèle de classe 1B comme brouillon pour un modèle de classe 13B de la même famille).
Plusieurs outils d'inférence locale (dont llama.cpp) prennent en charge nativement le décodage spéculatif — la configuration nécessite généralement de spécifier à la fois le modèle cible et le modèle de brouillon au lancement, sans modifier la façon dont vous formulez vos prompts.