Principe de speculative decoding
Le speculative decoding utilise un modèle de petite taille (draft) pour générer une séquence candidate, puis un modèle principal (large) vérifie cette séquence en un seul passage avant‑avance. Contrairement au décodage traditionnel, qui produit un token à la fois, la technique permet d’évaluer plusieurs tokens simultanément. L’article cite l’exemple d’un modèle de 27 milliards de paramètres, Qwen3.5‑27B, pour illustrer le volume de données déplacées à chaque token.
Nature du travail GPU
Sur le GPU, deux types d’opérations dominent : les calculs tensoriels (compute‑bound) et les transferts de mémoire entre la mémoire globale et la mémoire locale (memory‑bound). En décodage séquentiel, chaque token nécessite le chargement complet des paramètres, rendant l’opération fortement memory‑bound. En revanche, lorsqu’on regroupe plusieurs tokens dans un même passage, le GPU passe en mode compute‑bound car les données sont déjà en cache et les unités de calcul sont pleinement exploitées.
L’article indique qu’un nombre optimal de tokens par passe est de 5. En dessous de ce seuil, le GPU reste memory‑bound ; au‑dessus, il devient compute‑bound. Ainsi, le speculative decoding exploite le « compute » inutilisé lors de petits lots en augmentant la profondeur (depth) d’un seul flux plutôt qu’en élargissant le nombre de flux (breadth).
Analyse de performance et limites
Bien que le nombre total de FLOPs augmente – le travail effectif est plus important que dans le décodage classique – le temps d’inférence diminue parce que le GPU passe d’un état d’attente de mémoire à un état d’exécution intensive. Cette dynamique est pertinente surtout pour des charges à faible lot (batch size << 5). L’article souligne que chaque token rejeté par le modèle principal représente un gaspillage supplémentaire, d’où l’importance d’un taux d’acceptation élevé.
Dans les scénarios à haut débit, la bibliothèque vLLM propose le paramètre
--speculative-disable-by-batch-size pour désactiver le speculative decoding lorsque le lot dépasse le seuil optimal, évitant ainsi le sur‑coût de calcul inutile. Les chercheurs suggèrent d’ajuster dynamiquement la profondeur de spéculation en fonction du taux d’acceptation et de la taille du lot, afin de maximiser l’utilisation du GPU sans sacrifier la précision.