Points clés
- Niveau 1 (simple) : `ollama run llama3.2` + OpenWebUI. Aucun code requis.
- Niveau 2 (standard) : vLLM + wrapper FastAPI. Python 3.10+, pip install 2 paquets, 30 min de configuration.
- Niveau 3 (production) : vLLM + load balancer nginx + monitoring (Prometheus). Multi-GPU, multi-utilisateurs, tolérant aux pannes.
- Intégration IDE : VS Code Copilot ou Cursor avec l'endpoint OpenAI API de vLLM.
- Traitement par lots : Envoyer 10 prompts simultanément, recevoir 10 réponses en parallèle (non séquentiel).
- Coût : Zéro (open source) vs 20 $/mois (Claude Pro) ou 200 $/mois (grande équipe, cloud).
- Vitesse : Niveau 2 atteint 30-50 tok/s pour le coding. Niveau 3 atteint 200+ tok/s entre utilisateurs.
- Complexité : Niveau 1 (1/10), Niveau 2 (4/10), Niveau 3 (8/10).
Les trois niveaux
Choisir selon le cas d'usage :
- Niveau 1 : Développeur solo, usage occasionnel, pas de serveur API. Ollama + interface de chat.
- Niveau 2 : Développeur seul, intégration IDE, scripts personnalisés. vLLM + FastAPI.
- Niveau 3 : Déploiement équipe, 5+ développeurs, service permanent. vLLM + nginx + monitoring.
Niveau 1 : Démarrage rapide CLI (5 minutes)
Pour le coding : installer l'extension VS Code « Continue » (`continue.dev`), pointer vers l'API Ollama et obtenir des complétions en temps réel.
- 1`brew install ollama` (macOS) ou télécharger l'installateur Windows.
- 2`ollama run llama3.2` (télécharge et lance le modèle 8B).
- 3Ouvrir le navigateur : `http://localhost:11434` (interface web Ollama).
- 4Commencer à chatter. Terminé.
Niveau 2 : Serveur API avec FastAPI (30 minutes)
Pourquoi FastAPI : endpoint compatible OpenAI. Remplacement direct de l'API OpenAI réelle dans votre code.
- 1Installer Python 3.10+ : `python --version`.
- 2Installer vLLM : `pip install vllm torch`.
- 3Démarrer le serveur vLLM : `python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-3.3-8B-Instruct --port 8000`.
- 4Tester l'endpoint : `curl http://localhost:8000/v1/chat/completions -d '{"model": "Llama-3.1-8B-Instruct", "messages": [{"role": "user", "content": "Write Python code for Fibonacci"}]}' -H "Content-Type: application/json"`.
- 5Intégrer dans l'IDE : pointer l'extension Copilot vers `http://localhost:8000`.
- 6Requêtes par lots : envoyer plusieurs prompts en parallèle, vLLM les traite tous simultanément.
Niveau 3 : Production multi-utilisateurs (2 heures)
Passe à 50+ développeurs simultanés (5 tok/s chacun) sur un rig dual-GPU. Coût : électricité uniquement (~100 €/mois en 24/7).
- 1Déployer 2 instances vLLM sur des GPU séparés (GPU 0, GPU 1).
- 2Configurer nginx pour répartir les requêtes entre les deux instances.
- 3Configurer Prometheus pour la collecte de métriques (latence des requêtes, tokens/sec, erreurs).
- 4Ajouter la limitation de débit par utilisateur (algorithme de token bucket).
- 5Déployer sur VM cloud ou serveur on-prem avec réseau 10 Gbps.
- 6Surveiller via tableau de bord Grafana (optionnel).
Intégration IDE (VS Code, Cursor)
Configuration pour les complétions de code en temps réel :
Alternative (support IDE natif) : Cursor Editor intègre nativement le support LLM local (aucune extension requise).
- 1Installer l'extension « Continue » (`continue.dev`).
- 2Ouvrir les paramètres de l'extension, configurer l'API personnalisée : `http://localhost:8000/v1` (endpoint vLLM).
- 3Définir le nom du modèle pour correspondre au serveur vLLM (`meta-llama/Llama-3.3-8B-Instruct`).
- 4Appuyer sur Ctrl+Maj+Espace (ou cmd+shift+space) pour déclencher la complétion.
- 5Les complétions s'affichent en temps réel (10-20 tok/s).
Débogage & Monitoring
- Logs vLLM : Vérifier stdout pour les erreurs (chargement du modèle, OOM, erreurs CUDA).
- Métriques Prometheus : vLLM exporte l'endpoint `/metrics` (nombre de requêtes, histogramme de latence, tokens générés).
- Comptage de tokens : Utiliser la bibliothèque `tiktoken` pour compter les tokens avant l'envoi (éviter les surprises OOM).
- Profilage de latence : Ajouter un logging d'horodatage avant/après l'appel vLLM pour identifier les goulots d'étranglement.
Contexte régional & Conformité
- UE / RGPD (Europe) : L'inférence locale satisfait l'article 28 du RGPD -- aucune donnée ne quitte votre infrastructure. Aucun DPA requis. La CNIL recommande l'IA locale pour le traitement de données professionnelles sensibles (financières, médicales, juridiques). Recommandé pour la santé, le droit et la finance.
- Japon / METI : Les directives de gouvernance de l'IA du METI 2024 recommandent l'inférence on-premise pour les données d'entreprise sensibles. Le setup vLLM + Niveau 3 répond aux exigences d'audit du METI.
- Chine / PIPL : La loi chinoise sur la protection des informations personnelles (2021) impose la résidence des données. Le stack local Niveau 2/3 garde toutes les inférences dans le pays. Compatible avec les instances GPU Alibaba Cloud et Tencent Cloud.
- États-Unis : Aucun mandat fédéral de résidence des données IA en 2026. Les entités soumises à HIPAA doivent s'assurer que les PHI ne quittent pas l'infrastructure contrôlée -- Niveau 2/3 le garantit par défaut.
Erreurs courantes de configuration
- Faire tourner vLLM sur le même GPU qu'un autre processus (Discord, jeux). Provoque des erreurs GPU out-of-memory.
- Envoyer des requêtes sans timeout. Si vLLM se bloque, le client attend indéfiniment. Toujours définir `timeout=60` dans les requêtes.
- Supposer que vLLM s'adapte automatiquement à plusieurs GPU. Nécessite le flag explicite `--tensor-parallel-size`.
- Oublier de définir CUDA_VISIBLE_DEVICES en multi-GPU. vLLM utilise tous les GPU par défaut.
- Utiliser des modèles Llama 2 en 2026. Meta a déprécié Llama 2 pour usage commercial en janvier 2026. Utiliser Llama 3.1 8B Instruct (licence Apache 2.0, aucune restriction).
FAQ
Quel niveau dois-je utiliser ?
Niveau 1 pour usage solo (occasionnel). Niveau 2 pour un développeur seul avec intégration IDE. Niveau 3 pour une équipe avec service 24/7.
Puis-je utiliser vLLM à la place d'Ollama ?
Oui, mais avec plus de configuration. vLLM est plus rapide (batching) et plus flexible (API Python).
Comment répartir les modèles sur plusieurs GPU ?
vLLM : `--tensor-parallel-size 2`. Répartit le modèle sur 2 GPU pour doubler le débit.
Puis-je fine-tuner par-dessus l'inférence vLLM ?
Non. Fine-tuner séparément (HuggingFace Transformers), puis charger le modèle fine-tuné dans vLLM.
Que faire si vLLM provoque un OOM ?
Utiliser une quantification plus petite (Q4 vs Q8), réduire la taille du batch ou allouer moins de VRAM par modèle. Vérifier `nvidia-smi`.
Le Niveau 3 est-il prêt pour la production ?
Oui, avec monitoring. Ajouter Prometheus, Grafana et les alertes (Alertmanager). Schémas d'infrastructure standard.
Lectures complémentaires
Sources
- vLLM OpenAI-Compatible Server Documentation -- Guide officiel de configuration du serveur API vLLM
- Continue.dev Configuration Documentation -- Configuration de l'extension IDE pour les endpoints OpenAI personnalisés
- Meta Llama 3.1 Model Card -- Licence officielle et spécifications de Llama 3.1