Home
Login

vllm est une bibliothèque rapide et facile à utiliser pour l'inférence rapide de grands modèles de langage.

Apache-2.0Python 49.6kvllm-project Last Updated: 2025-06-14

vLLM : Moteur d'inférence et de service LLM rapide et facile à utiliser

Introduction :

vLLM est une bibliothèque Python à haut débit et efficace pour l'inférence et le service de modèles de langage à grande échelle (LLM). Il est conçu pour simplifier le déploiement des LLM et améliorer considérablement la vitesse d'inférence tout en réduisant les coûts. vLLM se concentre sur l'optimisation de la gestion de la mémoire et de la planification pour obtenir des performances exceptionnelles.

Fonctionnalités clés :

  • PagedAttention : L'innovation centrale de vLLM est l'algorithme PagedAttention. Les mécanismes d'attention traditionnels nécessitent de stocker toutes les clés et valeurs précédentes pour chaque token, ce qui entraîne une empreinte mémoire importante, en particulier dans les longues séquences. PagedAttention divise les clés et les valeurs d'attention en pages, à l'instar de la pagination de la mémoire virtuelle dans les systèmes d'exploitation. Cela permet à vLLM de gérer et de partager dynamiquement la mémoire d'attention, réduisant ainsi considérablement le gaspillage de mémoire et prenant en charge des séquences plus longues et des tailles de lots plus importantes.

  • Traitement par lots continu : vLLM prend en charge le traitement par lots continu, ce qui signifie qu'il peut combiner dynamiquement les tokens provenant de différentes requêtes en un seul lot pour le traitement. Cela maximise l'utilisation des ressources GPU et améliore le débit.

  • Noyaux CUDA efficaces : vLLM utilise des noyaux CUDA hautement optimisés pour implémenter PagedAttention et d'autres opérations. Ces noyaux sont soigneusement conçus pour exploiter pleinement la puissance de traitement parallèle du GPU.

  • Facilité d'utilisation : vLLM fournit une API Python simple et facile à utiliser qui peut être facilement intégrée aux applications LLM existantes. Il prend également en charge plusieurs frameworks LLM populaires, tels que Hugging Face Transformers.

  • Prise en charge de diverses architectures de modèles : vLLM prend en charge plusieurs architectures LLM populaires, notamment :

    • Llama 2
    • Llama
    • Mistral
    • MPT
    • Falcon
    • GPT-2
    • GPT-J
    • GPTNeoX
    • D'autres modèles sont en cours d'ajout.
  • Inférence distribuée : vLLM prend en charge l'inférence distribuée, vous permettant d'étendre l'inférence LLM sur plusieurs GPU.

  • Parallélisme Tensoriel : Prise en charge du parallélisme tensoriel pour améliorer encore les performances de l'inférence distribuée.

  • Sortie en flux continu : vLLM prend en charge la sortie en flux continu, vous permettant de recevoir les tokens dès qu'ils sont générés, sans attendre la fin de la séquence entière.

  • Compatibilité avec l'API OpenAI : vLLM fournit un serveur compatible avec l'API OpenAI, facilitant la migration ou l'intégration depuis OpenAI.

Principaux avantages :

  • Débit plus élevé : vLLM peut considérablement augmenter le débit par rapport aux méthodes d'inférence LLM traditionnelles, souvent d'un facteur 10, voire plus.
  • Latence plus faible : vLLM peut réduire la latence, offrant ainsi des temps de réponse plus rapides.
  • Coûts réduits : En améliorant l'utilisation du GPU, vLLM peut réduire les coûts d'inférence LLM.
  • Prise en charge de séquences plus longues : PagedAttention permet à vLLM de traiter des séquences plus longues sans épuiser la mémoire.
  • Facilité de déploiement : vLLM peut être facilement déployé dans divers environnements, notamment les serveurs cloud, les machines locales et les appareils périphériques.

Installation :

vLLM peut être installé à l'aide de pip :

pip install vllm

Démarrage rapide :

Voici un exemple simple d'utilisation de vLLM pour la génération de texte :

from vllm import LLM, SamplingParams

# Charger le modèle
llm = LLM(model="facebook/opt-125m")

# Définir les paramètres d'échantillonnage
sampling_params = SamplingParams(temperature=0.8, top_p=0.95, max_tokens=256)

# Générer du texte
prompts = ["Hello, my name is", "The capital of France is"]
outputs = llm.generate(prompts, sampling_params)

# Afficher la sortie
for output in outputs:
    print(output.prompt)
    print(output.outputs[0].text)

Cas d'utilisation :

vLLM est adapté à diverses applications LLM, notamment :

  • Chatbots : Créer des chatbots performants capables de gérer des conversations complexes.
  • Génération de texte : Générer du texte de haute qualité à diverses fins, telles que la création de contenu, la génération de code et le résumé.
  • Traduction automatique : Fournir des services de traduction automatique rapides et précis.
  • Question-réponse : Construire des systèmes de question-réponse capables de répondre à des questions complexes.
  • Complétion de code : Fournir des suggestions de complétion de code rapides et précises.

Contribution :

vLLM est un projet open source et les contributions de la communauté sont les bienvenues. Vous pouvez participer en soumettant des problèmes, en proposant des demandes de fonctionnalités ou en soumettant des demandes de tirage.

Résumé :

vLLM est un moteur d'inférence et de service LLM puissant qui offre des performances, une facilité d'utilisation et une flexibilité exceptionnelles. Que vous construisiez des chatbots, génériez du texte ou effectuiez d'autres tâches LLM, vLLM peut vous aider à améliorer votre efficacité et à réduire vos coûts. Son mécanisme PagedAttention est son innovation centrale, lui permettant de traiter de longues séquences et d'atteindre un débit élevé. Il est fortement recommandé d'essayer vLLM et de voir comment il peut améliorer votre flux de travail LLM.

Tous les détails sont sujets à modification et doivent être vérifiés sur le site officiel (https://github.com/vllm-project/vllm)