L'entraînement attire l'attention. L'inférence porte la charge. Le trafic est dense, la longueur des instructions varie et les gens s'attendent à ce que des mots apparaissent à l'écran presque immédiatement. Pour tenir cette promesse, vous avez besoin d'une configuration de serveurs qui traite la mémoire, le traitement par lots et les coûts comme des préoccupations de premier ordre. Il existe toujours un équilibre entre la minimisation de la latence et l'optimisation du débit lors de l'optimisation de l'inférence LLM. Une faible latence est essentielle pour les applications interactives afin de garantir une bonne expérience utilisateur.
Vous avez besoin d'un terminal dédié que vous pouvez régler ? Sur Calculer, vous pouvez lancer un VllM serveur d'inférence sur RTX 4090 ou préréglages multiGPU. Vous obtenez une URL HTTPS qui fonctionne avec les SDK OpenAI. Choisissez une région pour garder les données à portée de main des utilisateurs.
Pourquoi l'inférence est difficile
Les demandes arrivent par rafales. Certaines instructions sont courtes, d'autres comportent de longues discussions. Le modèle crée un cache clé/valeur lorsqu'il génère des jetons. Ce cache se trouve dans la mémoire du GPU. Si vous ne le gérez pas correctement, la latence augmente et le débit s'effondre. Les ressources de calcul disponibles, telles que les GPU, ont un impact direct sur les performances du modèle et sur la capacité du système à gérer un débit élevé sans rencontrer de problèmes de performances. Les longueurs de séquence d'entrée (ISL) plus importantes ont un impact sur les besoins en mémoire et peuvent augmenter le délai jusqu'au premier jeton (TTFT).
Votre objectif est simple à définir : maintenir une faible latence tout en diffusant autant de jetons par seconde que nécessaire à vos utilisateurs, sans dépasser le budget. L'équilibre entre latence et débit est essentiel pour optimiser l'inférence LLM, car les deux indicateurs ont un impact significatif sur les performances et les coûts. L'évaluation des performances du LLM implique le suivi de ces indicateurs afin de garantir un fonctionnement efficace et rentable. L'un des plus grands défis de l'inférence LLM est son coût de calcul, qui peut entraîner une latence et des dépenses élevées. La latence est cruciale pour l'expérience utilisateur dans les applications interactives en temps réel.
Les trois numéros à surveiller
Voici les indicateurs clés généralement mesurés lors de l'évaluation des performances d'inférence LLM :
- Heure avant le premier jeton (TTFT). La rapidité avec laquelle la réponse commence. Les utilisateurs le ressentent, car cela marque le délai initial avant le début de la sortie du modèle. Le TTFT est influencé par la mise en file d'attente des demandes, le préremplissage et la latence du réseau.
- Jetons par seconde (TPS). La rapidité avec laquelle le texte s'écoule une fois qu'il commence. Cela définit la sensation de chat et la capacité de l'API.
- Débit. Le débit du système est un indicateur essentiel pour évaluer la capacité de traitement maximale en charge. Il mesure le nombre de demandes simultanées qui restent dans les limites de votre cible de latence, ce qui reflète l'efficacité du système d'inférence.
- Latence entre jetons (ITL). Le temps moyen entre la génération de jetons consécutifs dans une séquence, qui a un impact sur la fluidité de la génération du texte. Le temps nécessaire pour générer chaque jeton de complétion affecte directement la vitesse d'inférence globale et la réactivité de la sortie du modèle. La latence acceptable varie en fonction du cas d'utilisation ; par exemple, les chatbots nécessitent une latence plus faible que les processus hors ligne.
La latence moyenne et la latence totale sont importantes pour comprendre l'expérience utilisateur, car elles représentent le temps moyen et global entre le lancement de la demande et la réception du jeton final. Les métriques basées sur les jetons permettent de comparer l'efficacité des modèles, les coûts de formation et la vitesse d'inférence entre différents modèles et méthodes de tokenisation.
Architectures au service
GPU unique. Simple pour les modèles 7B à 13B, les preuves de concept et les petites applications.
Plusieurs processeurs graphiques. Un seul hôte, plusieurs cartes. Utilisez le parallélisme des tenseurs ou des pipelines pour adapter des modèles plus grands ou augmenter le débit. À mesure que les demandes simultanées augmentent, un débit plus élevé peut être atteint jusqu'aux limites du système d'inférence.
Échelle horizontale. De nombreux nœuds se trouvent derrière une passerelle. Ajoutez un équilibrage de charge, des sessions persistantes pour la réutilisation du cache et un planificateur qui connaît la longueur des instructions et des sorties. L'équilibrage de charge et la planification sont essentiels pour faire évoluer efficacement les systèmes LLM.
Terminaux sans serveur. Idéal pour les périodes de pointe lorsque vous pouvez accepter des démarrages à froid et des coûts variables.
Vous préférez des performances prévisibles ? Essayez Compute et lancez un serveur vLLM sur un seul 4090 ou passez à un préréglage multi-GPU. Vous bénéficiez d'une capacité dédiée et d'une tarification claire.
Les moteurs en un coup d'œil
VLLM. Une forte simultanéité grâce au traitement par lots continu et à la pagination intelligente du cache KV. Livré avec un serveur HTTP compatible OpenAI.
Inférence de génération de texte (TGI). Un choix solide dans l'écosystème Hugging Face avec un outillage mature.
Tensort-LLM. La voie tracée par NVIDIA pour atteindre la vitesse maximale sur le matériel compatible. Il est préférable d'investir dans l'optimisation.
Ollama. Idéal en local ou pour les configurations simples à boîtier unique. Moins axé sur les API à trafic élevé.
Choisissez en fonction du profil de trafic, de la prise en charge des modèles et du niveau de réglage que vous souhaitez acquérir.
Contexte et mémoire
Les longues instructions et les longues discussions augmentent le KV‑cache. Sans pagination minutieuse, la VRAM disparaît et la latence augmente. Les longueurs de séquence d'entrée (ISL) plus importantes ont un impact sur les besoins en mémoire et peuvent augmenter le délai jusqu'au premier jeton (TTFT). La complexité et la longueur des demandes d'entrée peuvent affecter de manière significative à la fois l'utilisation de la mémoire et la latence d'inférence. La longueur maximale du contexte limite le nombre total de jetons d'entrée et de sortie que le modèle peut traiter simultanément, ce qui a un impact direct sur la capacité à gérer des séquences plus longues et sur les performances globales. Deux leviers aident la plupart des équipes : l'utilisation d'une taille de lot plus importante nécessite plus de VRAM et peut entraîner une utilisation accrue de la mémoire pour le cache KV.
- Génération augmentée par extraction (RAG). Veillez à ce que les instructions soient courtes. Récupérez le bon contexte au moment de la demande. Le contrôle de la longueur de sortie est important pour gérer la mémoire et les coûts.
- Mise en cache efficace. Des moteurs tels que vLLM divisent le cache en petits blocs, réutilisent ce qu'ils peuvent et expulsent ce qu'ils doivent.
- Quantification. Cette technique réduit les exigences matérielles pour l'inférence LLM en diminuant la précision des pondérations et des activations des modèles. Il est important d'utiliser des données de test représentatives pour évaluer l'impact de la quantification sur les performances.
Quantification, en bref
Une précision moindre permet d'économiser de la mémoire et peut améliorer le débit. AWQ ou GPTQ int8/int4 sont courants. Attendez-vous à de petites pertes de qualité. La quantification peut avoir un impact sur la qualité de la production, elle doit donc être évaluée avec soin à l'aide de repères pertinents. Testez vos données avant de vous engager. Un réglage fin peut être nécessaire pour maintenir les performances après la quantification.
Choix de matériel
- La mémoire d'abord. La VRAM définit la taille du modèle et la profondeur du lot. Vingt-quatre gigaoctets conviennent à de nombreux modèles 7B avec de la place pour le traitement par lots. Les modèles plus grands ou les contextes longs nécessitent souvent de 48 à 80 Go ou plusieurs GPU, ce qui augmente les coûts d'infrastructure car davantage de matériel est requis.
- Calculez ensuite. Des noyaux supplémentaires aident lors du préremplissage. Battez bien et le décodage reste efficace.
- Placement sur le réseau. Placez le terminal à proximité des utilisateurs. La latence du réseau s'accumule rapidement. FlashAttention réorganise les calculs du mécanisme d'attention afin de réduire les besoins en bande passante mémoire.
L'optimisation de la sélection du matériel et des stratégies de traitement par lots est essentielle pour optimiser la rentabilité de l'inférence LLM, en équilibrant les performances avec les coûts des ressources et de l'infrastructure.
Des utilisateurs de l'UE ? Déployez Compute en France. Des marchés au Moyen-Orient ? Choisissez une région des Émirats arabes unis. Limitez la circulation.
Des coûts qui comptent
- Heures de fonctionnement du processeur graphique. Votre article principal. Matériel de taille adaptée au modèle et au trafic.
- Temps d'inactivité. Redimensionnez automatiquement ou éteignez-le en cas de silence, ou payez pour une disponibilité instantanée.
- Du gaspillage symbolique. Les longues instructions et les max_tokens élevés font brûler de l'argent. Diffusez les réponses et plafonnez les sorties.
- Taille du lot Des tailles de lots plus élevées peuvent conduire à une utilisation plus efficace du GPU, mais peuvent augmenter la latence pour les demandes individuelles. Des lots de plus grande taille peuvent améliorer le débit mais entraînent généralement une augmentation de la latence. Le mode Streaming permet aux LLM de fournir des sorties incrémentielles, améliorant ainsi l'expérience utilisateur. L'optimisation du débit avec des tailles de lots optimales peut améliorer considérablement la rentabilité en utilisant au mieux les ressources matérielles disponibles.
L'équilibre entre latence et débit est essentiel pour optimiser l'inférence LLM, car les deux indicateurs ont un impact significatif sur les performances et la rentabilité.
Un modèle approximatif : estimez les jetons quotidiens générés, divisez-les par le nombre de jetons attendus par seconde par GPU, puis convertissez-les en heures GPU. Comparez avec le trafic réel et augmentez la marge de manœuvre pour les pics. À mesure que la simultanéité augmente, le nombre total de jetons par seconde (TPS) augmente jusqu'à atteindre un point de saturation, au-delà duquel les performances peuvent diminuer. Il est important de comprendre le nombre de demandes que votre système peut traiter au cours d'une période donnée afin de planifier la capacité et de gérer les coûts de manière efficace. Notez que les performances réelles peuvent différer de ces estimations en raison de variations matérielles et de facteurs liés à l'infrastructure, donc validez toujours avec les données de déploiement réelles.
Fiabilité et observabilité
L'analyse comparative des performances du LLM et l'évaluation des performances du LLM à l'aide de mesures clés sont essentielles pour garantir des déploiements fiables et efficaces. Le suivi de ces indicateurs aide les équipes à comprendre la capacité du système, à identifier les goulots d'étranglement et à optimiser l'utilisation des ressources.
Suivez au moins :
- Taux de demandes, longueur de file d'attente, TTFT, TPS
- Utilisation de la mémoire GPU et taux de réussite du cache
- Utilisation des ressources d'inférence des modèles (utilisation du GPU et besoins en mémoire pendant l'inférence)
- Types d'erreurs : OOM, timeouts, 5xx
- La surveillance de l'utilisation de la bande passante des modèles (MBU) peut aider à comparer l'efficacité de différents systèmes d'inférence.
Les mesures d'analyse comparative courantes incluent le délai jusqu'au premier jeton (TTFT) et le nombre de jetons par seconde (TPS), qui sont essentiels pour évaluer les performances du système. L'analyse comparative des LLM est essentielle pour évaluer leurs performances et leur efficacité dans des applications réelles, afin d'aider les équipes à identifier les domaines à améliorer et à optimiser. L'évaluation des performances des LLM implique l'utilisation de divers outils qui définissent, mesurent et calculent les métriques différemment. L'analyse comparative des performances permet d'identifier les problèmes liés à l'efficacité et à l'optimisation des modèles. La combinaison des tests de charge et de l'analyse comparative des performances fournit une compréhension complète des capacités de déploiement du LLM. L'analyse de la courbe de latence est également importante pour comprendre le compromis entre la taille du lot et la latence, et comment les différentes configurations affectent le débit et les temps de réponse.
Alerte lorsque le TTFT augmente ou que le TPS diminue sous une charge constante. Cela est souvent le signe d'une pression de la mémoire, d'un mauvais traitement par lots ou de problèmes de performances.
Sécurité et résidence des données
Terminez le protocole TLS, faites pivoter les touches, limitez l'accès et évitez d'enregistrer des instructions brutes, sauf si vous y êtes obligé. Si vous travaillez en Europe, conservez les données par région et conservez et supprimez les documents.
Essayez Compute dès aujourd'hui !
Les points de terminaison de calcul utilisent le protocole HTTPS par défaut. Choisissez un emplacement européen pour conserver les données dans la région.
Construisez ou achetez
Possédez-le si vous avez besoin d'un contrôle total et si vous avez le temps de le régler. Utilisez un point de terminaison dédié et géré si vous souhaitez que la rapidité soit rentable et que les dépenses soient prévisibles. Gardez un chemin de sortie dans les deux sens. Les serveurs Compute vLLM fournissent un point de terminaison dédié avec Routes compatibles avec OpenAI. Échangez l'URL de base de votre SDK et lancez-vous.
FAQ
Qu'est-ce que le TTFT et pourquoi est-ce important ?
Le délai d'arrivée du premier jeton est l'intervalle entre l'envoi d'une invite et l'affichage du premier jeton. Le TTFT court améliore la perception de la vitesse et de la confiance. Les gens ressentent ce chiffre plus que tout autre. La latence des requêtes de bout en bout (e2e_latency) inclut le temps entre l'envoi d'une demande et la réception du jeton final, fournissant ainsi une mesure plus large de l'expérience utilisateur.
Combien d'utilisateurs simultanés un GPU peut-il desservir ?
Cela dépend de la taille du modèle, de la longueur du contexte et du traitement par lots. Un modèle 7B bien réglé, doté de courtes instructions et d'une fonction de diffusion en continu, peut répondre aux besoins de nombreux utilisateurs sur une seule carte de 24 Go. Les contextes longs permettent de réduire rapidement ce chiffre.
Est-ce qu'un contexte long vaut RAG ?
Pas toujours. Les contextes longs sont simples mais coûteux. RAG maintient les instructions serrées et vous permet de redimensionner la récupération de manière indépendante. De nombreuses équipes utilisent un hybride.
Ai-je besoin d'un processeur multiprocesseur tout de suite ?
Démarrez un seul GPU si possible. Passez au multiprocesseur graphique lorsque la mémoire ou le débit l'exigent. Testez les modes parallèles et surveillez l'état de santé du cache.
Puis-je conserver des données dans l'UE ?
Oui Placez le terminal dans une région de l'UE, utilisez le protocole HTTPS, contrôlez l'accès et définissez des politiques de rétention claires.
Qu'est-ce qu'une inférence LLM ?
L'inférence LLM est le processus par lequel un grand modèle de langage génère une réponse basée sur une invite de saisie en traitant des jetons via son réseau neuronal. Lors de l'inférence, le LLM traite l'invite en activant son vaste réseau de paramètres pour prédire la séquence de jetons la plus probable. Les LLM peuvent traiter de gros volumes de texte et fournir des résumés concis d'articles ou de documents.
Quelles sont les étapes de l'inférence LLM ?
L'inférence LLM comporte généralement deux étapes : la phase de préremplissage, au cours de laquelle les jetons d'entrée sont traités, et la phase de décodage, au cours de laquelle le modèle génère des jetons de sortie un par un.
Quelle est la différence entre l'inférence et la formation LLM ?
L'entraînement consiste à ajuster les paramètres du modèle à l'aide de grands ensembles de données, tandis que l'inférence utilise le modèle entraîné pour générer des sorties sans modifier ses paramètres. Les LLM peuvent générer des articles, des articles, des textes marketing et même du code.
Que sont les moteurs d'inférence LLM ?
Il s'agit de systèmes logiciels conçus pour exécuter efficacement des LLM afin de générer des sorties, en optimisant la latence, le débit et l'utilisation des ressources.
À quoi sert vLLM ?
vLLM est un moteur d'inférence axé sur une forte simultanéité avec un traitement par lots continu et une gestion efficace du cache clé-valeur afin d'optimiser le service LLM.
Quelle est la différence entre vLLM et LLM ?
LLM fait référence au grand modèle de langage lui-même, tandis que vLLM est un moteur ou un framework permettant de servir efficacement les LLM en production.
Est-ce que vLLM est plus rapide qu'Ollama ?
vLLM est optimisé pour une simultanéité et un débit élevés, ce qui permet souvent de traiter plusieurs demandes plus rapidement qu'Ollama, qui convient mieux aux configurations plus simples.
Pourquoi vLLM est-il si rapide ?
Parce qu'il utilise le traitement par lots continu et la pagination intelligente du cache des valeurs clés pour optimiser l'utilisation du GPU et réduire la latence.
Que signifie le fait de servir en LLM ?
Le service LLM fait référence au déploiement et à l'exécution de grands modèles de langage pour répondre aux demandes des utilisateurs en temps réel ou en mode batch.
Qu'est-ce qu'un moteur de service LLM ?
Il s'agit d'une plate-forme ou d'un logiciel qui héberge et gère les LLM, en gérant efficacement les demandes d'inférence.
Qu'est-ce qu'un serveur LLM ?
Serveur configuré pour exécuter des charges de travail d'inférence LLM, permettant d'accéder aux prévisions des modèles via des API ou d'autres interfaces.
Que signifie LLM en tant que juge ?
Cela fait référence à l'utilisation des LLM pour évaluer ou noter les résultats, tels que l'évaluation de la qualité du modèle ou le classement des réponses.
Qu'est-ce que les jetons par seconde ?
Le nombre de jetons par seconde (TPS) mesure le nombre de jetons qu'un LLM génère ou traite en une seconde, ce qui indique le débit.
Combien de jetons par seconde fait ChatGPT ?
Le TPS de ChatGPT varie en fonction du déploiement et du matériel, mais varie généralement de quelques dizaines à plus de cent jetons par seconde.
Combien de mots font 1 000 jetons ?
Environ 750 mots anglais, car un jeton correspond à peu près à 0,75 mot.
Que signifie un jeton dans l'IA ?
Un jeton est la plus petite unité de texte traitée par un modèle de langage. Il peut s'agir d'un mot, d'un sous-mot ou d'un caractère.
Qu'est-ce que le TTFT ?
Le temps écoulé entre l'envoi d'une demande et la réception du premier jeton généré (TTFT) correspond à la latence entre l'envoi d'une demande et la réception du premier jeton généré.
Comment mesurer le TTFT ?
En enregistrant la différence de temps entre la soumission d'une invite et la réception du premier jeton de sortie du modèle.
Qu'est-ce que la métrique TPOT dans LLM ?
Le temps par jeton de sortie (TPOT) mesure le temps moyen nécessaire pour générer chaque jeton de sortie après le premier.
Quel est le moment de créer un jeton Nvidia pour la première fois ?
Il s'agit de la mesure TTFT de Nvidia, qui se concentre sur les métriques de latence lors de l'inférence LLM sur le matériel Nvidia.
Qu'est-ce qu'un cache KV ?
Un cache clé-valeur stocke les résultats d'attention intermédiaires pendant le décodage afin d'éviter de recalculer les anciens jetons.
Qu'est-ce que le cache GPU KV ?
Il s'agit du stockage des données de cache clé-valeur dans la mémoire GPU pour accélérer la génération de jetons LLM.
Qu'est-ce que le cache KV dans LLM ?
Le cache KV contient les clés et les valeurs des jetons précédents afin de calculer efficacement l'attention portée aux nouveaux jetons.
Qu'est-ce que le cache de stockage clé-valeur ?
Structure de données stockant des paires de clés et de valeurs, utilisée dans les LLM pour mettre en cache les calculs intermédiaires.
Qu'est-ce que le traitement par lots continu ?
Technique dans laquelle les requêtes entrantes sont regroupées en continu afin d'optimiser l'utilisation et le débit du GPU.
Qu'est-ce qu'un lot continu ?
Lot de demandes d'inférence formées dynamiquement au fur et à mesure de leur arrivée, traitées sans attendre des intervalles fixes.
Quelle est la différence entre le traitement par lots en continu et le traitement par lots en vol ?
Le traitement par lots continu forme des lots de manière dynamique et continue, tandis que le traitement par lots en vol fait référence aux demandes en cours de traitement.
Que signifie le traitement par lots dans le secteur bancaire ?
Dans le secteur bancaire, le traitement par lots fait référence au regroupement des transactions pour les traiter collectivement, sans lien avec le service LLM.
Qu'est-ce que le débit et la latence LLM ?
Le débit correspond au nombre de jetons ou de requêtes qu'un LLM peut traiter par seconde ; la latence est le temps nécessaire pour générer des réponses.
Comment réduire la latence dans les LLM ?
En optimisant les stratégies de traitement par lots, en utilisant un matériel efficace, en réduisant la longueur des séquences d'entrée et en tirant parti de la mise en cache.
Qu'est-ce qui est mieux, une latence de 50 ms ou 40 ms ?
Une latence de 40 ms est préférable car cela signifie des temps de réponse plus rapides.
Quel est le plus gros problème avec le LLM ?
Coût de calcul et latence élevés, en particulier pour les grands modèles avec de longs contextes.
Quel est le débit d'un LLM ?
Il s'agit du nombre de jetons ou de requêtes qu'un LLM peut traiter par seconde dans des conditions données.
Comment tester le débit LLM ?
En mesurant les jetons générés au fil du temps sous des charges et une simultanéité contrôlées.
Le LLM utilise-t-il beaucoup de CPU ou de GPU ?
L'inférence LLM est principalement gourmande en GPU en raison des calculs matriciels volumineux.
Comment augmenter le débit LLM ?
En regroupant les demandes par lots, en utilisant des moteurs d'inférence optimisés et en déployant sur de puissants GPU.
Quel GPU utiliser pour LLM ?
Les GPU dotés d'une mémoire et d'une bande passante mémoire élevées, tels que Nvidia RTX 4090 ou A100, sont couramment utilisés.
Est-ce que quelque chose de LLM utilise un GPU ?
Oui, l'inférence et l'entraînement LLM s'appuient largement sur les GPU pour le calcul parallèle.
Ai-je besoin d'un GPU pour exécuter LLM localement ?
Pour les grands modèles, un GPU est recommandé ; les petits modèles peuvent fonctionner sur des processeurs mais avec des performances réduites.
Le RTX 4090 est-il bon pour le LLM ?
Oui, le RTX 4090 offre une VRAM élevée et une puissance de calcul adaptées à de nombreuses tâches d'inférence LLM.