Points clés
- Rédaction/création de contenu : Ollama + OpenWebUI. Aucune configuration, interface chat intuitive, fenêtre de contexte ajustable.
- Coding/revue de code : vLLM + FastAPI + extension VS Code. Traitement par lots, inférence parallèle, streaming.
- RAG local : LlamaIndex + Ollama/vLLM + base vectorielle Qdrant. Découpage, embedding et récupération intégrés.
- Agents IA : LangGraph + backend vLLM. Utilisation d'outils, mémoire, boucle de planification. Courbe d'apprentissage plus élevée.
- API multi-utilisateur : vLLM derrière un répartiteur de charge nginx. Gère 10+ requêtes simultanées. Plus scalable.
- Fine-tuning : HuggingFace Transformers + LoRA + Ollama pour l'inférence. Entraînement séparé du serving.
- Streaming temps réel : Ollama (streaming natif) ou vLLM + endpoint de streaming de tokens. Meilleure UX pour les chatbots.
Décision rapide : stack par niveau matériel (avril 2026)
Associez votre GPU/VRAM au stack optimal. Chaque combinaison est testée sur des benchmarks réels. Les workflows de coding et d'agents bénéficient davantage de modèles plus grands que la rédaction ; le RAG dépend plus de la qualité des embeddings que de la taille du LLM.
| Votre matériel | Rédaction | Coding | RAG | Agents |
|---|---|---|---|---|
| 4–8 Go VRAM (GTX 1660, RTX 3050) | Ollama + Phi-4 Mini | Ollama + Qwen2.5-Coder-1.5B | LlamaIndex + Phi-4 Mini | Non recommandé |
| 12 Go VRAM (RTX 3060, RTX 4070) | Ollama + Llama 3.2 8B | vLLM + Qwen2.5-Coder-7B | LlamaIndex + Llama 3.2 8B | LangGraph + Ollama (plus lent) |
| 16 Go VRAM (RTX 4070 Ti, RTX 4080) | Ollama + Mistral Small 3.1 | vLLM + Qwen2.5-Coder-14B | LlamaIndex + Mistral 3.1 | LangGraph + vLLM |
| 24 Go VRAM (RTX 3090, RTX 4090) | Ollama + Llama 3.3 70B Q4 | vLLM + Qwen2.5-Coder-32B | LlamaIndex + Llama 3.3 70B | LangGraph + vLLM (le plus rapide) |
**Stack recommandé : Ollama + OpenWebUI + éditeur Markdown**
Pourquoi ce stack : OpenWebUI offre la meilleure UX de chat. Aucun code requis. La flexibilité de la fenêtre de contexte (4K–32K) surpasse LM Studio pour la rédaction longue. Moins coûteux que les API cloud pour les rédacteurs.
- 1Pour 24 Go VRAM : `ollama pull llama3.3:70b` — qualité maximale, équivalent GPT-4 (2023) sur les benchmarks de rédaction.
- 2Pour 16 Go VRAM : `ollama pull mistral-small3.1` — contexte 128K, meilleure qualité sous 24 Go.
- 3Pour 8 Go VRAM : `ollama pull llama3.2:8b` — bonne qualité de rédaction, rapide sur matériel grand public.
- 4Installez OpenWebUI via Docker : `docker run -d -p 3000:8080 ghcr.io/open-webui/open-webui:latest`.
- 5Configurez la fenêtre de contexte (8K–32K tokens) dans les paramètres OpenWebUI selon la longueur du document.
**Stack recommandé : vLLM + Qwen2.5-Coder + extension IDE**
Pourquoi ce stack : Qwen2.5-Coder obtient 82 % sur HumanEval (meilleur modèle de coding open-source, avril 2026). vLLM est 3–5× plus rapide qu'Ollama pour l'inférence par lots. Compatibilité OpenAI API native avec les outils IDE existants. Streaming activé pour les suggestions en temps réel.
Revue de code IA sur plusieurs fichiers
Pour la revue automatisée sur plusieurs fichiers, utilisez le traitement par lots de vLLM :
- 1Installez vLLM : `pip install vllm`.
- 2Démarrez le serveur vLLM avec Qwen2.5-Coder-7B : `python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen2.5-Coder-7B-Instruct --port 8000`.
- 3Pour 16+ Go VRAM, utilisez 14B : `--model Qwen/Qwen2.5-Coder-14B-Instruct`.
- 4Connectez l'extension IDE (VS Code Continue.dev, Cursor, etc.) à `http://localhost:8000/v1`.
- 5Activez le traitement par lots pour la revue de code : traitez 10 fichiers en parallèle via un appel API unique (`vllm` supporte batch=10 par défaut).
# Review 10 files in parallel using vLLM batch processing
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
code_files = [
("utils.py", open("utils.py").read()),
("models.py", open("models.py").read()),
# ... up to 10 files
]
# vLLM processes all 10 in parallel (1 batch request)
reviews = []
for filename, code in code_files:
prompt = f"Review this code for bugs, style, and performance:
{code}"
response = client.chat.completions.create(
model="Qwen2.5-Coder-7B-Instruct",
messages=[{"role": "user", "content": prompt}],
temperature=0.2, # Deterministic for review tasks
)
reviews.append((filename, response.choices[0].message.content))
for filename, review in reviews:
print(f"=== {filename} ===
{review}
")Stack recommandé : LlamaIndex + Ollama/vLLM + Qdrant + FastAPI UI
Pourquoi ce stack : LlamaIndex gère le découpage et la récupération. Qdrant est rapide, local et privé. Ollama fournit les embeddings (gratuit) ou utilisez vLLM pour l'inférence LLM.
- 1Installez LlamaIndex (`pip install llama-index`).
- 2Chargez les documents (PDF, TXT, markdown) dans LlamaIndex.
- 3Découpez les documents (1024 tokens par défaut), créez des embeddings avec un modèle local ou OpenAI (secours).
- 4Stockez les embeddings dans la base vectorielle Qdrant (fonctionne localement via Docker).
- 5Interrogez via LlamaIndex : récupérez les K documents les plus similaires, soumettez le contexte au LLM.
- 6Encapsulez dans un endpoint FastAPI pour une interface web ou une intégration IDE.
Stack recommandé : LangGraph + vLLM + définitions d'outils
Pourquoi ce stack : LangGraph fournit un flux d'agent structuré. vLLM est suffisamment rapide pour 10+ appels LLM séquentiels. L'utilisation des outils est explicite et déboguable.
- 1Installez LangGraph (`pip install langchain langgraph`).
- 2Définissez les outils (recherche web, calculatrice, E/S fichiers) comme signatures de fonctions.
- 3Créez le graphe d'agent avec le LLM comme nœud de décision et les outils comme nœuds d'action.
- 4Utilisez le backend vLLM pour des appels LLM à faible latence dans des boucles serrées.
- 5Exécutez la boucle d'agent : LLM → sélection d'outil → exécution → répétition jusqu'à complétion.
Stack recommandé : vLLM + répartiteur de charge nginx + monitoring
Pourquoi ce stack : vLLM supporte le serving distribué. Nginx multiplexe les requêtes. Passe à l'échelle pour 10+ utilisateurs simultanés sur une configuration bi-GPU. Surveillez le débit en tokens par utilisateur.
Pour le traitement de données professionnelles sensibles (financières, médicales, juridiques), la CNIL recommande le recours à des solutions d'inférence locale afin de garantir la maîtrise des données personnelles. Un serveur vLLM auto-hébergé avec nginx remplit cette exigence sans transfert de données vers des tiers.
- 1Déployez vLLM avec `--served-model-name model-name` sur un port fixe.
- 2Configurez nginx pour répartir la charge entre 2+ instances vLLM (une par GPU si multi-GPU).
- 3Utilisez l'endpoint `/v1/chat/completions` compatible OpenAI pour la compatibilité client.
- 4Surveillez via l'endpoint scrape Prometheus (vLLM exporte latence des requêtes, métriques de débit).
- 5Définissez une limite de débit par utilisateur (algorithme token bucket).
Stack recommandé : HuggingFace Transformers + LoRA + Ollama (inférence)
Pourquoi ce stack : LoRA réduit la VRAM de fine-tuning par 10×. Ollama charge facilement les modèles affinés. Modulaire : entraînez sur une machine, servez sur une autre.
Note (avril 2026) : Meta a déprécié Llama 2 pour le fine-tuning commercial. Affinez sur Llama 3.2 (`meta-llama/Llama-3.2-1B` ou plus grand) ou Qwen2.5 (`Qwen/Qwen2.5-7B`) pour les termes de licence Apache 2.0 / open-source. Les deux supportent LoRA et se chargent facilement dans Ollama.
- 1Affinez avec la bibliothèque `peft` (LoRA) pour réduire l'empreinte VRAM.
- 2Entraînement : 4× la VRAM du modèle nécessaire (état optimiseur, gradients). Exécutez séparément de l'inférence.
- 3Exportez l'adaptateur LoRA vers HuggingFace Hub ou le système de fichiers local.
- 4Chargez le modèle affiné dans Ollama : `ollama create monmodele -f Modelfile`.
- 5Ou utilisez HuggingFace TRL (Transformers Reinforcement Learning) pour le RLHF.
Stack recommandé : Ollama (streaming natif) ou vLLM + Server-Sent Events (SSE)
Pourquoi ce stack : Le streaming améliore la performance perçue (l'utilisateur voit les tokens apparaître). Ollama est le plus simple. vLLM offre le débit de tokens le plus élevé.
- 1Ollama : appelez `/api/generate` avec `stream: true`. Les tokens arrivent en JSON délimité par des sauts de ligne.
- 2vLLM : utilisez `/v1/chat/completions` avec `stream: true`. Retourne un flux SSE compatible OpenAI.
- 3Frontend : utilisez l'API EventSource (JavaScript) pour consommer le flux et mettre à jour l'interface par token.
- 4Désactivez le traitement par lots (batch=1) pour la latence minimale.
Dois-je utiliser Ollama ou vLLM ?
Ollama pour l'interface chat + simplicité. vLLM pour le serveur API + traitement par lots + performance. Pas mutuellement exclusifs ; les deux peuvent fonctionner simultanément.
Puis-je utiliser Ollama pour une API de production ?
Oui, mais vLLM est plus rapide (débit 3–5× supérieur). Ollama convient pour <10 req/s. vLLM pour 10+ req/s.
Quel est le meilleur LLM local pour la revue de code ?
vLLM + Qwen2.5-Coder-7B-Instruct. Qwen2.5-Coder obtient 82 % sur HumanEval. vLLM traite 10 fichiers en parallèle. ~30–50 tok/s sur RTX 3060 12 Go.
Ai-je besoin d'une base vectorielle pour un RAG simple ?
Pour <100 documents : embeddings en mémoire (np.ndarray) suffisants. Pour >100 : utilisez Qdrant ou Weaviate.
LangGraph est-il excessif pour de simples chatbots ?
Oui. Utilisez Ollama ou vLLM seuls. LangGraph est conçu pour les workflows multi-étapes (boucles d'agents, planification).
Puis-je combiner les backends Ollama et vLLM ?
Oui. Par exemple, Ollama pour l'interface chat, vLLM pour l'API par lots. Ils peuvent tourner sur la même machine sur des ports différents.
Pour aller plus loin
- Meilleurs LLM locaux pour le coding 2026 — Classements HumanEval : Qwen2.5-Coder vs DeepSeek-Coder.
- Configuration RAG local 2026 — Guide complet LlamaIndex + Qdrant + Ollama.
- Agents LLM locaux avec LangGraph — Framework de workflows agents avec exemples étape par étape.
- Ollama vs LM Studio — Comparaison des backends : CLI vs GUI, vitesse, traitement par lots.
- Open WebUI vs SillyTavern — Comparaison d'interfaces : professionnel vs roleplay.
- Quelle VRAM pour les LLM locaux ? — Exigences matérielles par taille de modèle et cas d'usage.
Erreurs fréquentes lors du choix d'un stack LLM
- Utiliser Ollama pour une API de production sans vLLM : Ollama plafonne à <10 req/s. Pour servir 10+ utilisateurs simultanés en production, vLLM est indispensable. Testez le débit sous charge avant de déployer.
- Faire tourner LangGraph sans backend vLLM : Les agents LangGraph effectuent 10+ appels LLM séquentiels. Ollama introduit un goulot d'étranglement de latence. Associez toujours LangGraph à vLLM pour des temps d'aller-retour inférieurs à la seconde.
- Mélanger Ollama + vLLM sur le même GPU sans gestion mémoire : Les deux outils chargent les poids en VRAM. Deux instances d'un modèle 70B consomment 32 Go. Utilisez des GPU séparés ou quantifiez fortement (Q2) pour faire tenir les deux.
- Choisir une fenêtre de contexte inadaptée pour la rédaction : Le contexte par défaut de 4K limite les sessions de brainstorming. Pour la rédaction longue, définissez une fenêtre de 16K–32K tokens dans OpenWebUI. Contrepartie : inférence plus lente (2–3× par token).
- Supposer que tous les backends sont également rapides : vLLM + Ollama utilisent des noyaux différents. Sur le même matériel, vLLM est 2–3× plus rapide pour l'inférence. La différence de vitesse vient du backend, pas du frontend (OpenWebUI, LM Studio ne sont que des interfaces).
Sources
- GitHub Ollama — Documentation officielle, spécification de l'API streaming et bibliothèque de modèles.
- GitHub vLLM — Compatibilité API OpenAI, traitement par lots et documentation sur le batching continu.
- Rapport technique Qwen2.5-Coder — Alibaba Qwen. Score HumanEval 82 %, spécialisé pour le coding. Licence Apache 2.0.
- Documentation LlamaIndex — Framework d'indexation de documents, découpage et récupération RAG.
- Documentation LangGraph — Framework de workflows agents, machines d'état, patterns d'utilisation des outils.
- Documentation Qdrant — Base de données vectorielle pour le stockage local d'embeddings, Docker-ready, Apache 2.0.
- Documentation Continue.dev — Extension IDE pour VS Code et JetBrains utilisant des backends LLM locaux.