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

Copier l'URL

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. Ce framework permet aux grands modèles de langage (LLM) d'effectuer des calculs plus efficaces à grande échelle.

vLLM comprend à la fois un serveur d'inférence (pour gérer le trafic réseau) et un moteur d'inférence (pour optimiser la vitesse de calcul). Il accélère les résultats que produisent les applications d'IA générative en optimisant l'utilisation de la mémoire GPU grâce à l'algorithme PagedAttention. 

L'objectif global de vLLM est d'optimiser le débit (nombre de jetons textuels traités par seconde) afin de servir plusieurs utilisateurs à la fois. 

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 de vLLM dans l'amélioration des performances des modèles de langage.

Découvrir les derniers développements de vLLM

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 des indices. Si on aperçoit de la lumière dans le salon d'un ami, mais qu'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 lorsqu'on déduit qu'un ami n'est pas chez lui car la lumière est éteinte.

En savoir plus sur l'inférence d'IA

Utilisation des 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 de vLLM augmentent sans cesse l'efficacité des ressources, notamment en matière de mémoire et de rapidité.

En savoir plus sur l'IA d'entreprise

Red Hat AI

D'après l'étude Efficient Memory Management for Large Language Model Serving with PagedAttention, les systèmes de gestion de la mémoire des LLM existants ne parviennent pas à organiser les calculs de manière efficace. Intégré à vLLM, PagedAttention est un mécanisme 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 cette étude, le cache clé-valeur (mémoire à court terme d'un LLM) change de taille en fonction du débit et permet à vLLM de gérer l'espace et la puissance de calcul de manière plus stable.

Pour résumer, 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 continu.

Définition du cache clé-valeur

Une paire clé-valeur (KV ou Key Value en anglais) 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 continu

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

Prenons l'exemple d'un dialogueur ou chatbot. 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 exemples de 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 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, 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 framework 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 MaaS, qu'est-ce que c'est ?

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

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

Avantages de vLLM

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

Accélération du délai de réponse : des calculs ont démontré que vLLM atteint un débit 24 fois plus élevé (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. Pour les entreprises qui travaillent avec des LLM très volumineux (contenant des centaines de milliards de paramètres), vLLM peut aider à préserver l'efficacité. Plus précisément, il peut être associé à des techniques telles que l'inférence distribuée, afin de tirer le meilleur parti du matériel existant tout en réduisant les coûts. 

Évolutivité : vLLM organise la mémoire virtuelle de sorte que le GPU peut traiter davantage de demandes en même temps. Ce mécanisme est particulièrement important pour les applications d'IA agentique, qui doivent traiter de nombreuses requêtes simultanées pour effectuer une tâche unique en plusieurs étapes.

Confidentialité des données : l'autohébergement d'un LLM avec 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 de vLLM favorisent 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 vLLM de la façon qui leur convient. 

Découvrir comment déployer Llama avec vLLM

Si la technique PagedAttention est le principal algorithme issu de vLLM, cette bibliothèque de code offre aussi d'autres fonctionnalité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
  • L'algorithme FlashAttention, pour améliorer l'efficacité des modèles Transformer

En plus de ses capacités d'optimisation, 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é de correction des bogues. 

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

vLLM et llm-d 

llm-d est un framework Open Source qui intègre et s'appuie sur la puissance de vLLM. Conçu pour prendre en charge les besoins croissants en ressources des LLM, il permet de déployer l'inférence distribuée

Autrement dit, si vLLM améliore la rapidité, llm-d facilite la coordination. vLLM et llm-d s'associent pour acheminer intelligemment le trafic à travers le modèle, ce qui permet un traitement aussi rapide et efficace que possible. 

En savoir plus sur llm-d

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

Elle 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 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

Ressource

Se lancer avec l'IA en entreprise : guide pour les débutants

Consultez ce guide pour les débutants afin de savoir comment les solutions Red Hat OpenShift AI et Red Hat Enterprise Linux AI peuvent accélérer votre parcours d'adoption de l'IA.

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

Les petits modèles de langage, qu'est-ce que c'est ?

Version réduite d'un grand modèle de langage (LLM), le petit modèle de langage (SLM) repose sur des connaissances plus spécialisées et offre aux équipes une personnalisation plus rapide ainsi qu'une efficacité d'exécution accrue.

Les modèles Granite, qu'est-ce que c'est ?

Les modèles Granite d'IBM correspondent à de grands modèles de langage créés pour les applications d'entreprise. Ils peuvent prendre en charge les cas d'utilisation de l'intelligence artificielle générative qui reposent sur un langage spécifique et du code.

L'inférence distribuée, qu'est-ce que c'est ?

L'inférence distribuée est une approche qui permet aux modèles d'IA de traiter les charges de travail plus efficacement en répartissant les tâches liées à l'inférence entre plusieurs équipements interconnectés.

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