Le vLLM, qu'est-ce que c'est ?

Copier l'URL

Le vLLM, sigle anglais de virtual Large Language Model, ou grand modèle de langage virtuel, est une bibliothèque de code Open Source gérée par la communauté vLLM. Elle permet aux grands modèles de langage (LLM) d'effectuer des calculs plus efficaces à grande échelle.

Plus précisément, le vLLM est un serveur d'inférences qui accélère les résultats des applications d'IA générative en optimisant l'utilisation de la mémoire GPU. 

Découvrir Red Hat AI

Il est essentiel de connaître l'utilité d'un serveur d'inférence et le fonctionnement de base d'un LLM pour mieux comprendre le rôle du vLLM dans l'amélioration des performances des modèles de langage.

Définition d'un serveur d'inférence

Un serveur d'inférence est un logiciel qui aide un modèle d'IA à établir de nouvelles conclusions sur la base de son entraînement. Il suit un modèle d'apprentissage automatique pour transmettre les demandes en entrée puis renvoyer un résultat.

L'inférence est une opération de déduction basée sur une preuve. Si l'on aperçoit de la lumière dans le salon d'un ami, mais que l'on ne voit personne dans la pièce, on peut en déduire qu'il est chez lui, sans pour autant en avoir une preuve certaine.

Parce que ce n'est qu'un logiciel, un modèle de langage ne peut prouver avec certitude la signification d'un mot ou d'une expression. C'est pourquoi il exploite ce qu'il a appris pendant son entraînement. Il effectue plusieurs calculs basés sur les données avant de générer une conclusion, comme lorsque l'on déduit qu'un ami n'est pas chez lui car la lumière est éteinte.

En savoir plus sur les inférences d'IA

Les LLM utilisent les mathématiques pour tirer des conclusions

L'entraînement d'un LLM repose sur des calculs mathématiques. Pour générer une réponse ou inférence, un LLM réalise plusieurs calculs de probabilités, c'est-à-dire d'autres opérations mathématiques.

Pour comprendre une demande, un LLM doit d'abord saisir les liens entre les mots et la manière de les associer. Cependant, au lieu d'utiliser des mots pour maîtriser leur sens et les associer, il s'appuie sur des opérations mathématiques.

Chaque jour, un LLM doit effectuer de nombreux calculs pour répondre aux demandes de millions d'utilisateurs. Le traitement simultané de tous ces calculs peut poser problème au sein d'une application en cours d'exécution, car la puissance de traitement requise pour exécuter un LLM peut rapidement consommer une énorme quantité de mémoire (avec les méthodes traditionnelles).

Les améliorations de l'architecture vLLM augmentent en continu l'efficacité des ressources en matière de mémoire et de rapidité, par exemple.

En savoir plus sur l'IA d'entreprise 

Red Hat AI

L'étude Efficient Memory Management for Large Language Model Serving with PagedAttention a révélé un manque d'efficacité dans les systèmes de gestion de la mémoire des LLM existants en ce qui concerne l'organisation des calculs. Issue du vLLM, PagedAttention est une technique de gestion de la mémoire qui s'inspire de la mémoire virtuelle et de la pagination au sein des systèmes d'exploitation.

D'après l'étude, le cache clé-valeur (mémoire à court terme d'un LLM) change de taille en fonction du débit et permet au vLLM de gérer l'espace et la puissance de calcul de manière plus stable.

Pour résumer, le vLLM contient un ensemble d'instructions qui encouragent le cache clé-valeur à créer des raccourcis en traitant les réponses des utilisateurs par lots et en continu.

Avant d'aller plus loin, il est nécessaire de comprendre ce qu'est le cache clé-valeur et le traitement par lots en continu.

Définition du cache clé-valeur

La paire clé-valeur détermine la façon dont un LLM interprète un mot ou une expression. Par exemple, un menu pourrait contenir la paire clé-valeur suivante : une portion de frites (clé) coûte 3,99 € (valeur). Pour chaque commande d'une portion de frites, la « valeur » calculée pour cette « clé » est donc 3,99 €. Les LLM traitent les paires clé-valeur d'une manière similaire : ils associent la valeur correspondante à chaque clé (ou jeton textuel) dans leur cache.

Le cache est un espace de stockage de la mémoire à court terme. Sur un ordinateur, on vide généralement le cache pour tenter d'améliorer et accélérer le traitement si celui-ci semble trop lent.

Définition du traitement par lots en continu

La technique du traitement par lots en continu permet de traiter plusieurs demandes à la fois afin de renforcer l'efficacité globale du processus.

Prenons l'exemple d'un dialogueur. Chaque minute, des milliers de questions lui sont posées, souvent similaires : « Quelle est la capitale de l'Inde ? » ou « Quelle est la capitale de l'Irlande ? ». Ces deux questions incluent les mots « Quelle est la capitale de », c'est-à-dire une suite de jetons textuels (mots) pour lesquels le LLM doit effectuer plusieurs calculs afin d'en extraire un sens.

Avec le vLLM, le dialogueur peut conserver cette série de jetons textuels (« Quelle est la capitale de ») dans une mémoire à court terme (le cache clé-valeur) et envoyer une seule « demande de traduction » plutôt que deux demandes distinctes.

En d'autres termes, au lieu de générer systématiquement une nouvelle réponse, le vLLM conserve les données dans la mémoire du cache clé-valeur et crée des raccourcis pour répondre aux questions semblables à des demandes déjà traitées et pour lesquelles des calculs ont déjà été effectués. Le traitement par lots des demandes similaires (plutôt que de manière individuelle) permet d'améliorer le débit et l'allocation de la mémoire.

Le vLLM contribue à optimiser la mémoire et la capacité des jetons textuels pour des lots de plus grande taille et des tâches contextuelles longues.

Le vLLM permet aux entreprises d'en faire plus avec moins, malgré les coûts élevés du matériel nécessaire pour exécuter les applications basées sur des LLM.

Pour mettre au point des services de LLM fiables et rentables, il faut une importante puissance de calcul, des ressources énergétiques et des compétences spécialisées. C'est pourquoi de nombreuses entreprises n'ont pas les moyens d'adopter une IA personnalisée, prête pour le déploiement et plus axée sur la sécurité.

Le vLLM et son algorithme PagedAttention visent à éliminer ces obstacles en optimisant l'utilisation du matériel nécessaire aux charges de travail d'IA.

Avantages du vLLM

Utilisé comme serveur d'inférence pour les LLM, le vLLM offre divers avantages :

Accélération du délai de réponse : des calculs ont démontré que le vLLM atteint un débit 24 fois plus élevé (la quantité de données qu'un LLM peut traiter) que Hugging Face Transformers, une bibliothèque Open Source couramment utilisée pour les LLM.

Réduction des coûts de matériel : l'optimisation de l'utilisation des ressources réduit le nombre de processeurs graphiques (GPU) nécessaires au traitement des LLM.

Évolutivité : le vLLM organise la mémoire virtuelle de sorte que le GPU peut traiter davantage de demandes en même temps.

Confidentialité des données : l'autohébergement d'un LLM avec le vLLM permet de mieux contrôler la confidentialité et l'utilisation des données qu'avec un service ou outil tiers comme ChatGPT.

Innovation Open Source : l'engagement de la communauté dans la maintenance et le développement du vLLM favorise l'amélioration continue du code. Et parce que les utilisateurs peuvent accéder au code et le modifier en toute transparence, les équipes de développement sont en mesure d'utiliser le vLLM de la façon qui leur convient. 

Découvrir comment déployer Llama grâce au vLLM

Si la technique PagedAttention est le principal algorithme issu du vLLM, cette bibliothèque de code offre aussi d'autres capacités pour optimiser les performances des LLM :

  • PyTorch Compile/CUDA Graph, pour optimiser la mémoire GPU
  • La quantification, pour réduire l'espace mémoire nécessaire à l'exécution des modèles
  • Le parallélisme des tenseurs, pour diviser le traitement entre plusieurs GPU
  • Le décodage spéculatif, pour accélérer la génération de texte à l'aide d'un petit modèle qui prédit les jetons textuels et d'un grand modèle qui valide cette prédiction
  • Flash Attention, pour améliorer l'efficacité des modèles Transformer

En plus de ses capacités d'optimisation, le vLLM est aussi très flexible : il fonctionne avec de petits et grands modèles de langage, et est compatible avec les modèles et frameworks courants. En outre, sa nature Open Source favorise la transparence du code, les possibilités de personnalisation et la rapidité des correctifs de bogues. 

Les techniques de réglage fin LoRA et QLoRA aident à optimiser l'utilisation du temps et des ressources informatiques.

Découvrir comment le vLLM prend en charge l'inférence pour la communauté Open Source

Red Hat® AI exploite les innovations Open Source majeures telles que le vLLM pour aider les entreprises à relever les défis de l'IA.

La gamme permet d'accéder à la solution Red Hat® AI Inference Server pour optimiser l'inférence des modèles dans le cloud hybride et effectuer des déploiements plus rapides et rentables. Basé sur le vLLM, ce serveur d'inférence optimise l'utilisation de GPU et diminue les délais de réponse.

En savoir plus sur Red Hat AI Inference Server

Red Hat AI Inference Server comprend le référentiel Red Hat AI, une collection de modèles tiers validés et optimisés, qui favorise la flexibilité des modèles et la cohérence entre les équipes. Grâce à ce référentiel de modèles tiers, les entreprises peuvent réduire le délai de mise sur le marché et éliminer les obstacles financiers qui freinent l'adoption de l'IA.   

Découvrir le référentiel Red Hat sur Hugging Face

En savoir plus sur les modèles validés par Red Hat AI

Red Hat AI s'appuie sur des technologies Open Source et un écosystème de partenaires axé sur les performances, la stabilité et la prise en charge des GPU au sein d'infrastructures diverses.

Parcourir l'écosystème de partenaires

Red Hat AI

La gamme Red Hat AI offre des solutions flexibles et économiques pour accélérer le développement et le déploiement de solutions d'intelligence artificielle (IA) dans les environnements de cloud hybride.

En savoir plus

L'apprentissage automatique, ou machine learning, qu'est-ce que c'est ?

Le machine learning est une technique qui consiste à entraîner un ordinateur à identifier des schémas, à établir des prédictions et à apprendre à partir d'expériences passées sans programmation explicite.

Le deep learning, qu'est-ce que c'est ?

Le deep learning est une technique d'intelligence artificielle (IA) qui apprend aux ordinateurs à traiter des données en utilisant un algorithme qui s'inspire du cerveau humain.

L'IA générative, qu'est-ce que c'est ?

L'IA générative est une technologie d'intelligence artificielle capable de créer des contenus à partir de modèles d'apprentissage profond entraînés avec de grands ensembles de données.

IA/ML : ressources recommandées

Produit recommandé

  • Red Hat OpenShift AI

    Plateforme d'intelligence artificielle (IA) dont les outils permettent de développer, d'entraîner, de distribuer et de surveiller rapidement les modèles et les applications basées sur l'IA.

Articles associés