Intermédiaire 11 minInférence

vLLM : c'est quoi, pour qui, et quand l'utiliser ?

Réponse directe

vLLM est un moteur d'inférence open source, né en 2023 à Berkeley, qui sert un LLM à plusieurs utilisateurs en même temps sur GPU, derrière une API compatible OpenAI. Grâce à PagedAttention et au batching continu, il fait gagner un débit total plusieurs fois supérieur à un serveur classique dès que les requêtes arrivent en concurrence. Il ne rend pas une seule conversation plus rapide : pour un usage solo sur son poste, Ollama ou LM Studio restent le bon choix.

vLLM est un moteur d'inférence open source conçu pour servir un LLM à plusieurs utilisateurs en même temps, sur GPU, derrière une API compatible OpenAI. Au 20 septembre 2026, c'est la référence pour mettre un modèle open-weights à disposition d'une équipe ou d'une application. Ce n'est pas un concurrent d'Ollama sur votre poste : les deux outils ne répondent pas à la même question. Cette page explique ce que fait vLLM, ce qu'il exige, et comment savoir si vous en avez besoin.

Par Mohamed Meguedmi·Màj 2026-09-28·Testé sur Windows, macOS, Linux

#vLLM en trois phrases

vLLM est une bibliothèque Python et un serveur d'inférence nés en 2023 au Sky Computing Lab de l'université de Berkeley, publiés sous licence Apache 2.0, une licence permissive qui autorise la réutilisation commerciale sans restriction. Il charge un modèle au format Hugging Face, le plus souvent en safetensors, sur un ou plusieurs GPU et l'expose sur une API HTTP compatible OpenAI, ce qui permet de brancher dessus n'importe quel client déjà écrit pour l'API d'OpenAI sans changer une ligne de code applicatif, seulement l'URL de base. Sa raison d'être tient en un mot : le débit, c'est-à-dire le nombre total de tokens produits par seconde par le GPU quand dix, cinquante ou deux cents requêtes différentes arrivent en même temps et doivent toutes obtenir une réponse rapide.

i
À retenir
Ollama et LM Studio optimisent l'expérience d'une personne sur sa machine. vLLM optimise le rendement d'un GPU partagé entre beaucoup de requêtes. Si vous êtes seul devant votre écran, vLLM ne rendra pas vos réponses plus rapides.

#Le problème que vLLM résout

Le kit IA Locale

Ton ChatGPT privé et gratuit sur ta machine en 1 heure — LM Studio, Ollama, Open WebUI, tes documents, sans cloud.

  • Espace en ligne à vie
  • PDF + fichiers
  • Mises à jour à vie

Quand un LLM génère du texte, il garde en mémoire une trace de tout ce qu'il a déjà lu et écrit : le cache KV. Ce cache grossit à chaque token, et sa taille finale est imprévisible puisqu'on ne sait pas à l'avance si la réponse fera vingt mots ou deux mille. Les serveurs d'inférence de première génération réservaient donc, pour chaque requête, un bloc de mémoire contigu dimensionné pour le pire cas.

Le résultat chiffré est décrit noir sur blanc dans l'article fondateur de vLLM (Kwon et al., SOSP 2023) et repris par l'équipe du projet elle-même : dans les systèmes existants, 60 à 80 % de la mémoire réservée au cache KV était purement et simplement gaspillée, entre la réservation excessive par précaution et la fragmentation qui laisse des trous inutilisables entre les blocs alloués. Moins de mémoire réellement utile disponible, c'est mécaniquement moins de requêtes servies en parallèle sur la même carte, donc un GPU à plusieurs milliers d'euros qui tourne, in fine, à une fraction dérisoire de sa capacité théorique alors même que la facture d'électricité et l'amortissement matériel restent identiques.

#PagedAttention et batching continu

vLLM repose sur deux idées. La première, PagedAttention, est empruntée aux systèmes d'exploitation : au lieu d'un grand bloc contigu par requête, le cache KV est découpé en petites pages de taille fixe, allouées à la demande et rangées n'importe où en mémoire. Une table fait le lien entre l'ordre logique des tokens et l'emplacement physique des pages, exactement comme la mémoire virtuelle d'un ordinateur. Le gaspillage tombe sous les 4 % selon les auteurs.

La seconde idée est le batching continu, complémentaire de la première. Un serveur classique groupe les requêtes en lots et attend que toutes celles d'un même lot soient terminées avant d'en démarrer un autre : la requête courte qui aurait pu repartir tout de suite patiente inutilement derrière la longue qui monopolise encore le GPU. vLLM, lui, recompose entièrement le lot à chaque token généré, à chaque étape de décodage. Dès qu'une réponse se termine, sa place dans le lot est immédiatement redonnée à une requête en attente dans la file, et le GPU ne tourne jamais à vide à faire du remplissage inutile. C'est la combinaison de ce recyclage permanent des places et de la mémoire paginée qui produit l'essentiel du gain de débit observé par rapport aux moteurs d'inférence pensés pour un seul utilisateur à la fois.

Préfixes partagés
Quand plusieurs requêtes commencent par exactement le même texte (un prompt système, un document commun), les pages correspondantes sont calculées une seule fois et partagées entre elles. C'est le prefix caching.
Parallélisme tensoriel
Un modèle trop volumineux pour tenir sur une seule carte est réparti automatiquement sur plusieurs GPU d'une même machine avec une seule option de démarrage, --tensor-parallel-size.
Quantification côté serveur
vLLM lit les formats AWQ, GPTQ et FP8, pensés pour le calcul GPU par lots. Le GGUF est pris en charge à titre expérimental seulement.
API compatible OpenAI
Les routes /v1/chat/completions et /v1/completions répondent exactement comme celles d'OpenAI : une application déjà existante change simplement d'URL de base, sans réécrire une seule ligne de code métier.

#Ce que vLLM charge en mémoire

C'est la surprise la plus fréquente pour qui arrive d'Ollama et s'attend à réutiliser directement ses habitudes. Ollama télécharge par défaut un GGUF quantifié en 4 bits, pensé pour tenir sur une carte grand public. vLLM, lui, charge par défaut les poids publiés tels quels sur Hugging Face, le plus souvent en BF16 (précision 16 bits), soit environ 2 Go par milliard de paramètres du modèle. Le même modèle pèse donc grossièrement trois fois plus lourd en mémoire sous vLLM que sous Ollama, et ce avant même de compter le cache KV qui grossit avec chaque conversation en cours, ce qui explique pourquoi une carte suffisante pour Ollama peut se révéler bien trop petite pour vLLM sans changer de format de poids.

Poids seuls, hors cache KV · calculé depuis le catalogue QuelLLM · 20/09/2026
ModèleBF16 (défaut vLLM)GGUF Q4_K_M (défaut Ollama)Carte minimale en BF16
Qwen 3 8B16 Go5 GoRTX 4090 ou 5090 (24-32 Go)
Gemma 4 12B24 Go7 GoRTX 5090 (32 Go)
Qwen 3 14B28 Go9 GoRTX 5090 (32 Go), contexte court
Mistral Small 3.2 24B48 Go14 Go2 × RTX 5090 (64 Go)
Qwen 3.8 27B54 Go16 GoCarte 80 Go, ou 2 × RTX 5090 à contexte court
Llama 3.3 70B140 Go40 Go2 × cartes 80 Go

La parade la plus courante consiste à servir une version déjà quantifiée pour GPU plutôt que les poids d'origine complets : un modèle AWQ ou GPTQ en 4 bits occupe à peu près la même place en mémoire qu'un GGUF Q4 équivalent, et le format FP8 divise à peu près par deux la taille du BF16 sur les cartes récentes qui le prennent en charge nativement. La grande majorité des modèles réellement populaires existent déjà publiés dans l'un de ces formats sur Hugging Face, souvent le jour même de leur sortie officielle.

!
« vLLM a pris toute ma VRAM »
C'est parfaitement voulu, pas un bug ni une fuite de mémoire. Au démarrage, vLLM réserve par défaut 90 % de la mémoire totale du GPU, via l'option --gpu-memory-utilization fixée à 0.9 par défaut : les poids du modèle d'abord, puis tout le reste de cet espace pour les pages de cache KV. Plus il y a de pages disponibles, plus vLLM peut servir de requêtes en parallèle sans en refuser. Sur une machine partagée avec d'autres usages, un jeu vidéo, un autre service, baissez cette valeur en conséquence.

#Matériel et systèmes pris en charge

État de la prise en charge au 20/09/2026, d'après la documentation du projet
PlateformeStatutEn pratique
Linux + GPU NVIDIA (CUDA)Cible principaleLe chemin le mieux testé. Capacité de calcul 7.0 minimum, donc à partir des générations Volta et Turing (RTX 20).
Linux + GPU AMD (ROCm)Pris en chargeCartes Instinct et Radeon récentes. Image Docker dédiée conseillée.
WindowsPas de version nativePasser par WSL2 avec un GPU NVIDIA.
Mac Apple SiliconGPU pris en charge depuis le 22/09/2026 (plugin séparé)Le plugin officiel vllm-metal, annoncé le 22 septembre 2026, apporte l'ordonnanceur, la pagination du cache KV et le serveur compatible OpenAI de vLLM sur Apple Silicon, avec MLX et Metal pour l'exécution. Une installation distincte du paquet principal, encore récente : vérifiez la compatibilité de votre puce avant de migrer une charge de production.
CPU seul (x86, ARM)Pris en chargeUtile pour tester une intégration, pas pour servir.

#Le lancer en cinq minutes

Sur une machine Linux avec un GPU NVIDIA et des pilotes à jour, l'installation complète tient en quelques lignes dans un environnement Python propre, sans configuration complexe préalable à écrire. La commande vllm serve télécharge le modèle indiqué depuis Hugging Face au tout premier lancement, le charge en mémoire, puis ouvre immédiatement l'API sur le port 8000 par défaut, prête à recevoir des requêtes dans le format OpenAI standard.

Installer et servir un modèle
python -m venv vllm-env && source vllm-env/bin/activate
pip install vllm

vllm serve Qwen/Qwen3-8B --max-model-len 8192
Interroger l'API comme celle d'OpenAI
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "Qwen/Qwen3-8B", "messages": [{"role": "user", "content": "Bonjour"}]}'

L'option --max-model-len mérite d'être fixée explicitement dès le tout premier lancement : sans elle, vLLM dimensionne le cache KV pour la fenêtre de contexte maximale annoncée par le modèle, parfois 128 000 tokens ou davantage sur les modèles récents, et refuse purement et simplement de démarrer si la mémoire disponible sur la carte ne suit pas ce dimensionnement par défaut, une erreur fréquente au tout premier essai. La mise en production proprement dite, avec conteneur Docker, authentification des appels, supervision continue et montée en charge progressive, fait l'objet d'un guide séparé et plus détaillé.

#Pour qui, et pour qui pas

Votre situationvLLM ?Pourquoi
Vous discutez seul avec un modèle sur votre PCNonAucun gain de vitesse pour une seule requête, et trois fois plus de VRAM en BF16.
Vous avez un MacPeut-être, depuis peuLe plugin vllm-metal (22/09/2026) apporte le GPU via MLX/Metal, mais reste très récent. MLX et llama.cpp restent le choix éprouvé au 28/09/2026.
Vous avez 8 à 12 Go de VRAMRarementUn GGUF Q4 avec déport partiel sur le CPU rend plus de services.
Une équipe de 5 à 50 personnes partage un modèleOuiLe batching continu sert tout le monde sur un seul GPU.
Une application appelle le modèle en rafalesOuiFile d'attente, débit élevé, API standard.
Vous traitez 10 000 documents en lotOuiC'est le cas d'usage où l'écart de débit est le plus net.

#FAQ

vLLM est-il plus rapide qu'Ollama ?+
Pour un seul utilisateur, non : la vitesse de génération d'une requête isolée dépend surtout de la bande passante mémoire du GPU, identique dans les deux cas. L'écart apparaît avec la concurrence. Quand plusieurs requêtes arrivent en même temps, vLLM les traite dans le même lot et son débit total dépasse largement celui d'un serveur pensé pour un utilisateur.
vLLM est-il gratuit ?+
Oui, entièrement. Le projet est open source sous licence Apache 2.0, une licence permissive qui autorise l'usage commercial en entreprise sans redevance ni royalties d'aucune sorte, contrairement à certaines licences de modèles. Le seul coût réel est celui du matériel que vous possédez déjà ou celui de la location d'un GPU chez un fournisseur cloud pour faire tourner le serveur.
vLLM fonctionne-t-il sur Windows ou sur Mac ?+
Pas nativement sur Windows : le projet officiel n'a aucune version Windows ni feuille de route publique en ce sens, il faut passer par WSL2 avec un GPU NVIDIA, quelques forks communautaires existent mais restent non officiels. Sur Mac, un plugin officiel nommé vllm-metal, annoncé le 22 septembre 2026, apporte enfin l'accélération GPU via MLX et Metal ; avant cette date, seul le CPU était exploitable, ce qui retirait tout intérêt à vLLM face à Ollama ou MLX sur cette plateforme.
Peut-on utiliser un fichier GGUF avec vLLM ?+
La prise en charge existe techniquement mais reste expérimentale et nettement moins performante que le chemin natif. vLLM est conçu dès l'origine pour les poids Hugging Face au format safetensors et pour les quantifications pensées pour le calcul GPU par lots, AWQ, GPTQ et FP8. Si vous tenez absolument au format GGUF, llama.cpp et son serveur llama-server restent l'outil naturel et le mieux optimisé pour ce format précis.
Combien d'utilisateurs un GPU peut-il servir avec vLLM ?+
Cela dépend de la mémoire laissée au cache KV une fois les poids chargés, et de la longueur des conversations. Avec un modèle 8B quantifié sur une carte de 24 Go, plusieurs dizaines de conversations courtes simultanées sont réalistes. La seule réponse fiable vient d'un test de charge avec vos propres prompts.

Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.