Fonctionnement des tokens par seconde

Le calcul de base est le suivant :

TPS = nombre de tokens comptés / nombre de secondes écoulées

Pendant l’inférence, un modèle de langage produit des tokens en sortie. Mesurer leur débit semble simple, mais un benchmark doit faire trois choix :

  1. Quels tokens prendre en compte ? Une seule requête ou toutes les requêtes simultanées du système.
  2. Quels tokens compter ? Les tokens de sortie, les tokens d’entrée ou les deux.
  3. Quelles secondes mesurer ? Uniquement la période de génération après le premier token, la durée complète de la requête ou toute la durée du benchmark.

Ces choix donnent lieu à deux significations courantes.

La vitesse de sortie par requêtedécrit la vitesse à laquelle une seule réponse est diffusée une fois qu’elle a commencé. Elle est souvent calculée à partir des intervalles entre les tokens de sortie, en excluant l’attente initiale. C’est la TPS qui correspond le plus étroitement à ce qu’une personne voit pendant l’affichage du texte.

La TPS de sortie du systèmeadditionne les tokens de sortie de toutes les requêtes et divise le résultat par la durée du benchmark. Elle mesure la capacité totale de génération du déploiement. Les définitions des benchmarks de NVIDIA et le guide des métriques d’Anyscaledistinguent ces deux périmètres, car ils peuvent évoluer en sens inverse lorsque la charge change.

Vous pouvez également voir la TPS d’entrée, qui mesure le traitement du prompt, ou la TPS totale, qui combine les tokens d’entrée et de sortie. Vérifiez le libellé avant de comparer les valeurs. Le traitement de l’entrée et la génération de la sortie sont des opérations différentes, même si elles utilisent toutes deux des tokens.

Exemple détaillé

Supposons que vous envoyiez une requête à 0,0 s. Elle produit 41 tokens de sortie :

  • Le premier token arrive à 0,4 s.
  • Le dernier token arrive à 2,4 s.
  • Les 40 intervalles qui suivent le premier token s’étendent sur 2,0 s.

La vitesse de sortie stable est donc de :

40 intervalles / 2,0 secondes = 20 tok/s

Un outil qui inclut la totalité de la requête pourrait plutôt calculer :

41 tokens de sortie / 2,4 secondes = 17,1 tok/s

Les deux résultats proviennent de la même réponse. Le premier isole la génération après le début de la sortie. Le second inclut l’attente initiale et utilise tous les tokens de sortie. La documentation actuelle n’applique pas une convention universelle : Artificial Analysisexclut l’attente jusqu’au premier token de la vitesse de sortie, tandis que certaines métriques de bout en bout l’incluent.

Changeons maintenant de périmètre. Au cours d’un benchmark de cinq secondes, plusieurs requêtes simultanées produisent au total 400 tokens de sortie :

400 tokens de sortie / 5 secondes = 80 tok/s pour le système

Ces 80 tok/s représentent une capacité agrégée. Cela ne signifie pas qu’une réponse donnée a été diffusée à 80 tok/s.

Pourquoi les tokens par seconde sont importants

La TPS par requête vous aide à évaluer la rapidité avec laquelle une longue réponse arrivera une fois qu’elle a commencé. Elle est importante pour les conversations, la génération de code et tout processus qui exploite une réponse diffusée avant qu’elle soit complète.

La TPS du système aide à planifier la capacité et les coûts. Elle indique la quantité de sortie qu’un déploiement peut produire sous une charge donnée. Augmenter la concurrence peut améliorer ce débit agrégé en utilisant le matériel plus efficacement, mais cela peut aussi ralentir chaque requête. Un système à forte capacité n’offre pas automatiquement une expérience rapide à un utilisateur donné.

La TPS ne suffit jamais à décrire toute l’histoire du temps de réponse. Associez la TPS par requête au temps jusqu’au premier token, qui mesure l’attente avant le début de la sortie. Associez la TPS du système au débit d’inférence et à la latence sous charge. Un déploiement n’est utile que s’il produit suffisamment de travail tout en respectant les exigences de temps de réponse de son application.

Ce qui modifie une valeur de TPS

La TPS est une propriété d’une configuration mesurée, et pas seulement d’un nom de modèle. Elle peut varier selon :

  • l’architecture et la taille du modèle ;
  • le matériel et le nombre de dispositifs ;
  • le moteur d’inférence, la précision numérique, la mise en cache et la méthode de décodage ;
  • la longueur des prompts et des sorties ;
  • la concurrence, le regroupement des requêtes, le taux de requêtes et les autres profils de trafic ;
  • le tokenizer utilisé pour compter les tokens ; et
  • les effets côté client, comme les fragments de diffusion et la transmission réseau.

Des prompts plus longs peuvent modifier à la fois l’attente initiale et la vitesse de sortie ultérieure. La vitesse de sortie peut également varier selon le contenu généré lorsque le moteur de service utilise des méthodes telles que le décodage spéculatif. Un résultat reproductible doit donc préciser le modèle et le point d’accès, la forme de la charge de travail, la charge, le tokenizer et la formule exacte. La documentation des benchmarks de vLLMrecommande de comparer les points de mesure et les formules plutôt que les seuls noms des métriques.

Idées reçues courantes

« La TPS m’indique quand la réponse commence »

La TPS décrit généralement le débit pendant la génération ou sur une fenêtre de benchmark. Elle n’isole pas l’attente sans sortie avant le premier token. Deux systèmes peuvent avoir la même TPS de sortie et des temps jusqu’au premier token très différents.

« Une TPS système plus élevée signifie une réponse plus rapide pour moi »

Pas nécessairement. Traiter davantage de requêtes ensemble peut augmenter la TPS totale du système, tandis que chaque requête reçoit des tokens moins fréquemment. Vérifiez si une valeur est calculée par requête ou agrégée.

« Un token est un mot »

Les tokens ne sont pas des unités fixes de texte visible. Des tokenizers différents peuvent segmenter une même phrase différemment ; des valeurs égales en tok/s peuvent donc correspondre à des quantités de texte différentes. Pour cette raison, les benchmarks intermodèles retokenisent parfois les sorties avec un tokenizer commun.

« La TPS est une métrique standardisée unique »

Il n’existe pas de définition unique imposée. La TPS peut exclure ou inclure l’attente jusqu’au premier token, et compter uniquement les tokens de sortie ou les tokens d’entrée et de sortie. Lisez toujours la formule.

Pour aller plus loin

Utilisez la latence d’inférence pour comprendre le délai de réponse, le temps jusqu’au premier token pour l’attente initiale et le débit d’inférence pour la capacité totale de service. Pour comprendre les limites entre ces quatre mesures, consultez Latence vs. TTFT vs. tokens par seconde vs. débit.