Sans perte, mais pas gratuit : quand le décodage spéculatif est efficace
Le décodage spéculatif est un sujet d'actualité dans l'inférence des LLM.
Des entreprises comme DSpark revendiquent des gains de vitesse de 60 % à 85 %. Google publie également des recherches sur cette méthode.
Le concept est simple : un petit modèle de brouillon (draft model) écrit des jetons (tokens). Un grand modèle cible (target model) les vérifie en une seule passe. Cela accélère la génération.
Mais en tant qu'ingénieur, vous devez vous poser deux questions :
- Est-ce que cela augmente les hallucinations ?
- Est-ce que le modèle supplémentaire gaspille de la puissance de calcul ?
Examinons les faits.
Premièrement, la qualité est sans perte. Le modèle cible vérifie chaque jeton. Si le modèle de brouillon commet une erreur au troisième jeton, le modèle cible le rejette et régénère à partir de ce point. Le résultat est mathématiquement identique à celui obtenu avec le modèle cible seul. Cela n'amplifie pas les hallucinations.
Deuxièmement, le coût est réel. Un petit modèle coûte beaucoup moins cher à exécuter qu'un grand. Un modèle de 7B peut coûter 1/10e d'un modèle de 70B.
Le décodage spéculatif est un pari.
- En cas de succès total, vous économisez énormément de calcul.
- En cas d'échec total, vous perdez. Vous exécutez le modèle de brouillon plus des étapes supplémentaires du modèle cible. C'est plus lent qu'une inférence standard.
Pour gagner, vous devez suivre cette règle : Le nombre moyen de jetons acceptés doit être supérieur à 1 plus le surcoût (overhead) du modèle de brouillon.
Si votre modèle de brouillon est mauvais pour une tâche spécifique, votre taux d'acceptation chute. S'il chute trop bas, le décodage spéculatif ralentit votre système.
Comment décider si vous devez l'utiliser :
- Mesurez votre taux d'acceptation. Ne faites pas confiance aux benchmarks génériques. Utilisez vos propres données et tâches.
- Vérifiez le type de tâche. Utilisez-le pour des tâches prévisibles comme la complétion de code. Évitez-le pour des tâches imprévisibles comme l'écriture créative.
- Surveillez votre latence p99. Un échec total provoque un pic de latence.
La meilleure optimisation n'est pas celle qui gagne à tous les coups. C'est celle dont vous savez quand l'éteindre.
Utilisez-le quand le taux de réussite est élevé. Arrêtez de l'utiliser quand le taux de réussite s'effondre.
Optional learning community: https://t.me/GyaanSetuAi