Déployer vLLM en production
vLLM est le moteur d'inférence de référence pour servir des LLM à l'échelle d'une équipe ou d'une entreprise. Là où Ollama excelle en usage personnel, vLLM bat tout le monde dès que plusieurs utilisateurs tapent en parallèle : le PagedAttention rend le batching 5 à 10x plus efficace. Ce guide installe, configure et expose un endpoint OpenAI-compatible prêt pour la prod.
#Qu'est-ce que vLLM ?
Un serveur d'inférence open source développé à Berkeley, optimisé pour servir des LLM à haut débit. Il gère le batching continu (continuous batching), la gestion de la mémoire par pages (PagedAttention), et expose une API OpenAI-compatible. Il est écrit en Python + CUDA, et ne supporte que les GPU NVIDIA (et AMD via ROCm, récent).
#Quand choisir vLLM plutôt qu'Ollama
- Plus de 3 utilisateurs simultanés
- Le throughput écrase Ollama dès que les requêtes se chevauchent.
- Modèle identique servi à tous
- vLLM charge un modèle et le sert à N requêtes. Pas idéal pour switcher entre 5 modèles à la demande.
- Besoin de métriques Prometheus
- Métriques natives : latence, TTFT, requêtes/s, VRAM used.
- Environnement Kubernetes
- Image Docker officielle, helm charts communautaires, observabilité de série.
#1. Installation
#2. Lancer le serveur
Au premier lancement, vLLM télécharge les poids depuis Hugging Face (~15 Go pour un 7B non-quantifié en FP16). Prévoyez du disque.
#3. Via Docker / systemd
#4. Paramètres clés
- --quantization awq / gptq
- Charge un modèle quantifié. -4x VRAM, perte qualité minimale. Modèles disponibles sur TheBloke.
- --gpu-memory-utilization 0.90
- Pourcentage de VRAM réservé. 0.95 en prod, 0.85 en dev pour garder de la marge.
- --max-model-len 8192
- Contexte maximum. Plus c'est haut, plus de VRAM consommée pour le KV cache.
- --tensor-parallel-size 2
- Répartit le modèle sur 2 GPU. Indispensable pour un 70B.
- --enable-prefix-caching
- Cache les préfixes identiques (ex : system prompt commun). +30 % de throughput sur des workloads répétitifs.
#5. Benchmarker
Mesurez : TTFT (time to first token), tokens/s par requête, tokens/s agrégés. Sur une RTX 4090 + Mistral 7B AWQ, attendez 2000+ tokens/s agrégés avec 20 req/s.
#Sécurité et exposition
- Pas d'auth native
- vLLM écoute sans authentification. Mettez une clé API via --api-key, ou mieux, un reverse proxy (Caddy, Traefik) avec JWT.
- Jamais directement sur Internet
- Derrière un VPN ou un WAF. Les LLM servis ouvertement sont scannés et abusés en quelques heures.
- Rate limiting
- À mettre côté proxy. vLLM ne limite pas par utilisateur nativement.
- Logs
- Toujours logguer qui a prompté quoi. Utile pour debug et audit.
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.