Le traitement des prompts peut être plus rapide que la génération des tokens, car un accélérateur évalue de nombreux tokens d’entrée en parallèle, tandis qu’il doit décoder les tokens de sortie séquentiellement.
Un tableau de bord d’IA domestique peut afficher des centaines, voire des milliers de tokens de prompt par seconde, alors que la sortie diffusée arrive à un rythme bien inférieur. Ces chiffres décrivent des phases d’exécution différentes plutôt que des mesures contradictoires. Le préremplissage traite le contexte fourni comme un bloc et construit l’état d’attention, tandis que le décodage exécute à plusieurs reprises le modèle pour accepter un seul nouveau token à la fois. L’écart dépend de la longueur du prompt, de la taille du modèle, de la bande passante mémoire, du traitement par lots, de la disposition du cache et du partage éventuel du même accélérateur avec des requêtes en arrière-plan.
Le préremplissage et le décodage résolvent des problèmes de calcul différents
Le traitement du prompt, souvent appelé préremplissage, évalue la séquence d’entrée et crée l’état KV nécessaire à la génération ultérieure. Le décodage ne commence qu’une fois cet état initial disponible et prolonge la séquence token par token.
Les recherches sur le déploiement des LLM décrivent le préremplissage limité par le calcul et le décodage limité par la bande passante mémoire comme deux phases distinctes, présentant des comportements matériels différents.
Le même modèle peut donc afficher un débit de préremplissage élevé et un débit de tokens de sortie bien inférieur sans présenter le moindre dysfonctionnement. Chaque métrique compte les tokens qui traversent un chemin d’exécution différent.
Les tokens du prompt peuvent être évalués dans de grandes matrices parallèles
Lors du préremplissage, de nombreuses positions de requête sont disponibles simultanément. Les multiplications matricielles peuvent regrouper le travail sur la séquence, le lot, les têtes et les dimensions cachées, fournissant à l’accélérateur suffisamment d’opérations parallèles pour rester pleinement sollicité.
FlashAttention réduit la surcharge de l’attention grâce à un calcul de l’attention par tuiles, qui évite de matérialiser à plusieurs reprises la matrice d’attention complète dans la mémoire lente de l’appareil.
Les prompts plus longs augmentent le travail total de préremplissage, mais peuvent aussi améliorer l’utilisation des unités de calcul jusqu’à ce que la capacité mémoire, les limites des noyaux ou la complexité de l’attention deviennent prépondérantes.
Il s’agit du débit sur l’ensemble du bloc d’entrée, et non d’une indication que le serveur pourrait produire le même nombre de tokens de sortie indépendants chaque seconde.
Le décodage ne peut pas finaliser le token suivant avant le token actuel
La génération autorégressive sélectionne ou échantillonne un token, l’ajoute à la séquence, puis exécute une nouvelle étape du modèle conditionnée par ce résultat accepté. Le prochain token accepté n’est pas connu à l’avance.
DistServe sépare les deux phases, car les itérations de décodage accèdent à plusieurs reprises aux poids du modèle et à l’état KV actif, tout en produisant seulement une petite quantité de nouvelle sortie par séquence.
Le traitement par lots de plusieurs utilisateurs peut paralléliser plusieurs séquences de décodage, mais une même conversation progresse toujours au sein d’une chaîne de décisions de tokens dépendantes les unes des autres.
Le décodage spéculatif peut vérifier plusieurs candidats proposés simultanément, mais le décodage ordinaire reste séquentiel lorsqu’aucun candidat n’est accepté à l’avance.
Un débit élevé de prompts peut tout de même entraîner une longue attente avant le premier token
Le nombre de tokens par seconde divise le travail de prompt terminé par la taille du prompt. Un contexte très long peut afficher un débit impressionnant tout en nécessitant plusieurs secondes avant l’apparition du premier token généré.
ZimaSpace distingue le chargement, l’évaluation du prompt et la génération dans sa présentation des étapes de latence de l’IA. Un modèle déjà chargé élimine le délai de rechargement, mais ne supprime pas le coût d’évaluation d’un prompt volumineux.
Le délai avant le premier token constitue donc la meilleure mesure interactive du préremplissage. Le nombre de tokens de prompt par seconde est utile pour comparer l’efficacité avec laquelle le moteur traite différentes longueurs d’entrée.
Les préremplissages longs peuvent ralentir les utilisateurs déjà en phase de décodage
Le prompt d’un document exigeant beaucoup de calcul peut utiliser le même accélérateur pendant qu’un autre utilisateur reçoit des tokens en continu. Si le moteur combine ces charges de travail sans contrôle, le préremplissage volumineux peut allonger les itérations de décodage.
DistServe signale une forte interférence entre le préremplissage et le décodage lorsque les deux phases sont colocalisées et planifiées ensemble.
Le serveur peut malgré tout afficher une utilisation globale élevée, tandis que la conversation active subit des intervalles plus longs entre les tokens. Le débit et la fluidité perçue par l’utilisateur peuvent évoluer en sens opposés.
Des processus distincts, une planification tenant compte des phases ou des créneaux de décodage réservés peuvent protéger la sortie interactive lorsque le matériel et le moteur le permettent.
Le découpage échange une partie de l’efficacité du préremplissage contre une meilleure réactivité
Un moteur peut diviser un prompt long en segments plus petits et intercaler ces segments avec le travail de décodage. Le prompt nécessite alors davantage de tours de planification, mais aucun préremplissage ne monopolise une très longue itération.
Sarathi-Serve utilise des préremplissages découpés afin de réduire les interférences tout en conservant des possibilités utiles de traitement par lots.
La taille optimale des segments dépend de la longueur des prompts, de l’architecture du modèle, de la capacité de l’accélérateur et de l’objectif de latence des conversations actives.
Mesurez séparément le temps de traitement du prompt, le délai avant le premier token, le temps entre les tokens et le nombre de tokens de sortie par seconde. La phase affichant le débit nominal le plus faible n’est pas automatiquement celle qui provoque l’attente la plus longue pour l’utilisateur.
Centre Tech & IA
Plus à lire

Quelles fonctionnalités permettent de créer une frontière de confiance pour l’IA domestique autour des fichiers sensibles ?
Une frontière de confiance pour l’IA à domicile combine le chiffrement des données au repos, des autorisations selon le principe du moindre privilège, un...

Pourquoi les résultats de recherche privés privilégient-ils les fichiers fréquemment modifiés ?
Les fichiers fréquemment modifiés bénéficient d’un meilleur classement lorsque chaque mise à jour ajoute des signaux de fraîcheur, des segments, des versions ou des...

Qu’est-ce qui pousse les modèles de détection de présence pour maison intelligente à confondre les invités avec les résidents ?
Les invités peuvent être pris pour des résidents lorsque le système observe des habitudes d’activité du foyer, mais ne dispose d’aucun signal d’identité stable...

