LLM Locust : un outil pour évaluer les performances du LLM

Conçu pour la vitesse : latence d'environ 10 ms, même en cas de charge
Une méthode incroyablement rapide pour créer, suivre et déployer vos modèles !
- Gère plus de 350 RPS sur un seul processeur virtuel, aucun réglage n'est nécessaire
- Prêt pour la production avec un support complet pour les entreprises
Qu'est-ce que LLM Benchmarking ?
Analyse comparative du LLM est le processus qui permet d'évaluer l'efficacité des performances d'un serveur d'inférence LLM (Large Language Model) en cas de charge. Il va au-delà des tests de performances traditionnels en se concentrant sur les caractéristiques de réponse en temps réel qui ont un impact direct sur l'expérience utilisateur et l'évolutivité du système.
Voici certains des indicateurs clés concernés :
- Délai avant le premier jeton (TTFT) :
Délai entre l'envoi d'une demande et la réception du premier jeton de la réponse. Cela reflète la latence du traitement initial du modèle. - Jetons de sortie par seconde (jetons/s) :
Mesurez la rapidité avec laquelle le modèle génère des jetons de réponse, en indiquant la vitesse de génération et la réactivité du système. - Latence entre jetons :
Le temps qui s'écoule entre deux jetons consécutifs dans une réponse en streaming. Des valeurs plus faibles indiquent une sortie plus fluide et plus naturelle dans les applications en temps réel. - Demandes par seconde (RPS) :
Le nombre de demandes d'inférence qu'un LLM peut traiter par seconde, une mesure essentielle du débit.
Le suivi et l'analyse de ces indicateurs sont essentiels pour :
- LLM Processor Comparator
- Optimisation des déploiements sur des processeurs, des GPU ou des accélérateurs spécialisés
- Optimisation de la configuration des serveurs pour les applications sensibles à la latence
C'est là LLM Locust entre.
Pourquoi les outils de test de charge traditionnels tels que Locust ne sont pas adaptés à l'analyse comparative LLM (et comment LLM Locust y remédie)
Alors que les LLM continuent d'alimenter de plus en plus d'applications interactives et en temps réel, il est plus important que jamais d'évaluer leurs performances avec précision. Alors que des outils tels que Criquet sont excellents pour les tests de charge traditionnels, mais ils sont insuffisants en ce qui concerne le streaming et la granularité au niveau des jetons dont les LLM ont besoin.
Entrez LLM Locust—un outil spécialement conçu pour combler cette lacune.
Pourquoi le criquet est idéal pour les tests de charge traditionnels
Donnons du crédit à ce qui est dû. Locust reste l'un des outils les plus appréciés pour les tests de charge en raison de ses caractéristiques suivantes :
- Scripts natifs de Python : Flexible et intuitif pour la création de scénarios de test
- Simultanéité légère : Les Greenlets permettent d'utiliser des milliers d'utilisateurs simulés
- Interface utilisateur Web en temps réel : Simple et puissant pour surveiller les tests de charge en direct
Pour les API ou les services standard, c'est un excellent choix. Mais pour les LLM ? Pas assez.
Le problème : les LLM cassent le moule des essais de charge
1. Aucune prise en charge des métriques spécifiques à LLM
Locust ne suit pas nativement les indicateurs de performance spécifiques au LLM, tels que :
- Heure avant le premier jeton (TTFT)
- Jetons de sortie par seconde
- Latence entre jetons
Ces dynamiques de streaming sont fondamentales pour comprendre les performances d'un LLM, en particulier dans les cas d'utilisation en temps réel.
2. Incohérence du streaming de jetons + goulots d'étranglement du processeur
Les API LLM diffusent souvent des jetons de manière incohérente, certaines reviennent zero jeton au début, d'autres envoient un jeton à la fois, et certains livrent plusieurs jetons en un seul bloc.
Pour mesurer avec précision les jetons de sortie, les réponses doivent être re-tokenisé, car on ne peut pas faire confiance aux réponses de l'API pour suivre un format cohérent.
Mais voici le lien : la tokenisation est une tâche liée au processeur, en particulier lorsqu'il est effectué pour chaque réponse en streaming. Utilisations acridiennes greenlets pour une concurrence légère, mais ils fonctionnent toujours sous Python Verrouillage global de l'interpréteur (GIL). Cela signifie que les opérations gourmandes en ressources processeur, telles que la tokenisation, peuvent bloquer la boucle d'événements, en réduisant le débit et en faussant vos résultats de référence.
La combinaison d'un comportement de streaming incohérent et du GIL de Python en fait un goulot d'étranglement significatif en matière de performances dans des configurations Locust traditionnelles.
3. Pas de graphiques personnalisés
Vous souhaitez tracer le débit TTFT ou le débit de streaming ? L'interface utilisateur de Locust n'est pas compatible mesures LLM personnalisées prêt à l'emploi, laissant les données clés invisibles pendant les tests.
4. Les outils concurrents sont limités
Des outils tels que genai-perf sont utiles, mais fournissent souvent :
- Des aperçus de référence uniques
- Configurability limited
- Pas de feedback visuel en temps réel
Ils ne disposent pas de la flexibilité itérative et exploratoire nécessaire à l'analyse comparative dans le monde réel.
La solution : découvrez LLM Locust
LLM Locust associe la simplicité de Locust à une prise en charge approfondie de l'analyse comparative spécifique à LLM. Inspiré par Banque LLM de BentoML, il a introduit une architecture modulaire et une interface personnalisée pour des informations en temps réel.
Comment fonctionne LLM Locust
1. Génération de requêtes asynchrones
Les utilisateurs simulés envoient des requêtes asynchrones continues à votre API LLM, imitant ainsi la charge réelle. Cela s'exécute sur un processus Python distinct, il n'y a donc aucun goulot d'étranglement en matière de tokenisation.
2. Recueil de réponses en streaming
Les réponses LLM sont diffusées et acheminées vers un metry demon pour une analyse et une analyse légère.
3. Mètrial processing
Le démon tokenise les réponses, calcule le TTFT, les jetons/s et la latence entre les jetons, puis regroupe les résultats.
4. Aggregation
Toutes les 2 secondes, les données sont envoyées à un API FastAPI principale qui imite le backend Locust, qui stocke et agrège les métriques à l'échelle mondiale.
5. Visualisation en temps réel
Une version personnalisée du frontend Locust affiche :
- TTFT by request
- Débit des jetons au fil du temps
- 📊 RPS, latence et autres statistiques clés
Voici l'architecture détaillée :

Voici une démonstration de ce à quoi cela ressemble :


Conclusion
Locust est un excellent outil de test de charge, mais pas pour les LLM prêts à l'emploi.
LLM Locust apporte la précision requise au niveau du streaming, au niveau des jetons, pour évaluer correctement les puissants modèles linguistiques actuels.
Que vous déployiez un modèle open source sur votre propre infrastructure ou que vous compariez les performances entre les API LLM, LLM Locust vous offre clarté, flexibilité et contrôle pour le faire correctement.
Lien Github : https://github.com/truefoundry/llm-locust
Questions fréquemment posées
Qu'est-ce que LLM Locust ?
LLM Locust est un outil d'analyse comparative open source basé sur le framework Locust spécifiquement pour évaluer les grands modèles de langage. Contrairement aux outils de test de charge standard, il mesure des métriques spécifiques à GENAI, telles que le délai jusqu'au premier jeton (TTFT) et les jetons par seconde, afin de garantir que vos modèles gèrent un trafic simultané élevé dans les environnements de production.
Comment LLM Locust aide-t-il à tester les performances des modèles de langage ?
Il fournit une visibilité approfondie sur le comportement des modèles sous de fortes charges simultanées en analysant les réponses au streaming et les taux de génération de jetons. Ces données permettent aux ingénieurs d'optimiser l'infrastructure, d'identifier les goulots d'étranglement potentiels avant le déploiement et de garantir des vitesses de réponse constantes pour les utilisateurs finaux sur différentes configurations matérielles et de moteurs de service.
Est-ce que Locust peut être utilisé pour charger et tester les API LLM ?
Oui, mais alors que Locust standard fonctionne pour les API de base, LLM Locust est spécialement conçu pour répondre aux exigences uniques de l'IA générative. Il suit avec précision les réponses en streaming et calcule le débit de plusieurs demandes simultanées, fournissant ainsi une image plus claire de l'évolution d'un LLM par rapport aux outils de test de charge traditionnels.
Comment combiner LLM Locust avec des outils d'observabilité tels que Langfuse ?
L'intégration de LLM Locust à des plateformes telles que Langfuse vous permet de visualiser les traces de performances lors de tests à forte contrainte directement sur vos tableaux de bord. Vous pouvez corréler des modèles de charge spécifiques à des défaillances de modèles ou à des pics de latence, en fournissant ainsi des informations détaillées sur la fiabilité et la qualité de vos agents autonomes sous une pression réelle.
Comment utiliser LLM Locust avec TrueFoundry ?
L'exécution de LLM Locust avec TrueFoundry vous permet de comparer les modèles déployés dans votre cloud privé. Vous pouvez facilement tester différents moteurs de serveur tels que vLLM ou TGI afin de trouver la configuration optimale pour votre matériel spécifique, en vous assurant que votre déploiement est entièrement optimisé en termes de coût et de rapidité.
TrueFoundry AI Gateway offre une latence d'environ 3 à 4 ms, gère plus de 350 RPS sur 1 processeur virtuel, évolue horizontalement facilement et est prête pour la production, tandis que LiteLM souffre d'une latence élevée, peine à dépasser un RPS modéré, ne dispose pas d'une mise à l'échelle intégrée et convient parfaitement aux charges de travail légères ou aux prototypes.
Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA











.webp)



.png)


.webp)




.webp)







