Présentation

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érences 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érences

Un serveur d'inférences 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

Le rôle des mathématiques dans les conclusions des LLM

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).

Solutions Red Hat pour l'IA

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 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érences 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. 

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 de grands modèles de langage et est compatible avec les modèles et frameworks courants. C'est pourquoi cette bibliothèque est aujourd'hui de plus en plus utilisée. 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.

La gamme 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 solution Red Hat® OpenShift® AI inclut plusieurs environnements d'exécution pour les inférences d'IA, parmi lesquels figure le vLLM.

Plateforme MLOps flexible et évolutive, la solution OpenShift AI inclut des outils de création, de déploiement et de gestion d'applications basées sur l'IA. Ces outils prennent en charge l'intégralité du cycle de vie des essais et des modèles d'IA/AA, sur site et dans le cloud public.

En savoir plus sur Red Hat OpenShift AI

Solutions Red Hat pour l'IA

Créez, déployez et contrôlez vos modèles et applications d'IA avec nos plateformes Open Source.

En savoir plus

La génération augmentée de récupération, qu'est-ce que c'est ?

La génération augmentée de récupération ou RAG (Retrieval-Augmented Generation) associe des ressources externes à un LLM pour améliorer la précision des sorties d'un modèle d'IA générative.

Mise en œuvre des pratiques MLOps avec Red Hat OpenShift

Red Hat OpenShift accélère les workflows d'IA/ML et la distribution des applications intelligentes basées sur l'IA.

Exemples d'usage de l'IA/ML (intelligence artificielle et machine learning)

Les technologies d'IA/ML comprennent de multiples exemples et cas d'usage. Découvrez-les afin de mieux comprendre leurs avantages et difficultés qu'elles peuvent poser.

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