Partager via


Que signifient les plages de jetons par seconde dans le débit approvisionné ?

Cet article explique comment et pourquoi Databricks mesure les jetons par seconde pour les charges de travail de débit approvisionné pour les API Foundation Model.

Les performances des modèles de langage volumineux (LLM) sont souvent mesurées en jetons par seconde. Lorsque vous configurez des points de terminaison de service de modèle de production, il est important de prendre en compte le nombre de requêtes envoyées par votre application au point de terminaison. Cela vous aide à comprendre si votre point de terminaison doit être configuré pour être mis à l’échelle afin de ne pas avoir d’impact sur la latence.

Lors de la configuration des plages de scale-out pour les points de terminaison déployés avec un débit approvisionné, Databricks a trouvé plus facile de mesurer les entrées entrantes dans votre système à l’aide de jetons.

Que sont les jetons ?

Les LLM lisent et génèrent du texte en termes de ce qu’on appelle un jeton. Les jetons peuvent être des mots ou des sous-mots, et les règles exactes pour fractionner du texte en jetons varient d’un modèle à un autre. Par exemple, vous pouvez utiliser des outils en ligne pour voir comment le générateur de jetons de Llama convertit les mots en jetons.

Pourquoi mesurer les performances LLM en jetons par seconde ?

Traditionnellement, les points de terminaison de mise en service sont configurés en fonction du nombre de requêtes simultanées par seconde (RPS). Toutefois, une requête d’inférence LLM prend différentes quantités de temps en fonction du nombre de jetons transmis et du nombre de jetons générés, ce qui peut être déséquilibré entre les requêtes. Par conséquent, décider de la quantité de scale-out dont votre point de terminaison a besoin nécessite vraiment de mesurer l’échelle du point de terminaison en termes de contenu de votre demande : les jetons.

Différents cas d’usage présentent des ratios de jetons d’entrée et de sortie différents :

  • Longueurs variables des contextes d’entrée : bien que certaines requêtes n’impliquent que quelques jetons d’entrée, par exemple une courte question, d’autres peuvent impliquer des centaines ou même des milliers de jetons, comme un long document à résumer. Cette variabilité rend difficile la configuration d’un point de terminaison de mise en service en fonction uniquement des RPS, car elle ne tient pas compte des demandes de traitement variables des différentes requêtes.
  • Longueurs variables de sortie en fonction du cas d’usage : différents cas d’usage pour les machines virtuelles LLM peuvent entraîner des longueurs de jetons de sortie très différentes. La génération de jetons de sortie est la partie la plus gourmande en temps de l’inférence LLM, ce qui peut avoir un impact considérable sur le débit. Par exemple, le résumé implique des réponses plus courtes et concises, mais la génération de texte, comme l’écriture d’articles ou de descriptions de produits, peut générer des réponses beaucoup plus longues.

Comment sélectionner la plage de jetons par seconde pour mon point de terminaison ?

Les points de terminaison de mise en service de débit approvisionné sont configurés en termes de plage de jetons par seconde que vous pouvez envoyer au point de terminaison. Le point de terminaison effectue un scale-up et un scale-down pour gérer la charge de votre application de production. Vous êtes facturé par heure en fonction de la plage de jetons par seconde vers laquelle votre point de terminaison est mis à l’échelle.

La meilleure façon de connaître la plage de jetons par seconde sur votre point de terminaison de service de débit approvisionné qui fonctionne pour votre cas d’usage consiste à effectuer un test de charge avec un jeu de données représentatif. Consultez Effectuer l’évaluation de votre propre point de terminaison LLM.

Il existe deux facteurs importants à prendre en compte :

  • Présentation de la façon dont Databricks mesure les performances en jetons par seconde du LLM

    Databricks évalue les points de terminaison par rapport à une charge de travail représentant des tâches de résumé courantes pour les cas d’usage de génération augmentée de récupération. Plus précisément, la charge de travail se compose des éléments suivants :

    • 2 048 jetons d’entrée
    • 256 jetons de sortie

    Les plages de jetons affichées combinent le débit de jetons d’entrée et de sortie et optimisent par défaut l’équilibrage du débit et de la latence.

    Databricks évalue que les utilisateurs peuvent envoyer de nombreux jetons par seconde simultanément au point de terminaison à une taille de lot de 1 par requête. Cela simule plusieurs requêtes qui atteignent le point de terminaison en même temps, ce qui représente plus précisément la façon dont vous utiliseriez réellement le point de terminaison en production.

  • Fonctionnement de la mise à l’échelle automatique

    La mise en service des modèles propose un système de mise à l’échelle automatique rapide qui met à l’échelle le calcul sous-jacent pour répondre à la demande de jetons par seconde de votre application. Databricks effectue un scale-up du débit approvisionné en blocs de jetons par seconde. Vous êtes donc facturé pour des unités supplémentaires de débit approvisionné uniquement lorsque vous les utilisez.