Construire un RAG local en 2026 : la stack Ollama + Qdrant + LlamaIndex
Architecture en 4 briques, choix techniques (vLLM, Qdrant, LlamaIndex, Open WebUI), sizing GPU par nombre d'utilisateurs et TCO comparé à GPT-4o sur 24 mois.

Le RAG (Retrieval-Augmented Generation) est devenu le cas d'usage n°1 du LLM local en 2026. La promesse : tes documents, ton LLM, ton serveur — pas d'API tierce, pas de fuite de données, des réponses sourcées. Voici la stack qui marche.
Architecture en 4 briques
Un RAG c'est juste 4 composants qui se passent du texte :
| Brique | Rôle | Choix recommandé 2026 |
|---|---|---|
| Embedder | Transforme un texte en vecteur | BGE-M3, mxbai-embed-large, ou nomic-embed-text |
| Vector DB | Stocke + cherche les vecteurs proches | Qdrant (recommandé) ou Chroma (simple) |
| LLM | Génère la réponse depuis les passages retrouvés | Llama 3.3 70B Q4 ou Qwen 2.5 32B Q5 |
| Orchestrateur | Chaîne le tout, gère prompts, hallucination | LlamaIndex (recommandé) ou Haystack |
La stack LocalIA recommandée
1. Inférence LLM : vLLM + Ollama
Pour servir plusieurs utilisateurs en parallèle, vLLMest imbattable : PagedAttention, continuous batching, serveur OpenAI-compatible. Pour le dev solo ou les tests rapides, Ollama est plus simple à installer (1 ligne).
- vLLM : 5-15× plus de débit que Ollama sur multi-user
- Ollama : gestion modèles + quantization triviale
- llama.cpp : backend bas-niveau, pour edge ou CPU-only
2. Vector DB : Qdrant
Écrit en Rust, scaling horizontal, HNSW + quantization vector, filtrage métadonnées performant. Le choix par défaut chez nous pour les bases qui dépassent 100k documents.
3. Orchestration : LlamaIndex
Plus mûr et plus modulaire que LangChain pour le RAG pur. Tu peux composer une pipeline ingestion → chunking → embedding → query → re-rank → LLM en ~50 lignes Python.
4. UI : Open WebUI
Frontend chat self-hosted, multi-user, support RAG natif, intégration Ollama et vLLM. Tu installes, tes utilisateurs causent à leurs PDF.
Quel GPU pour combien de personnes ?
Il faut bien distinguer 2 chiffres : la taille de l'équipe qui partage le rig (le chiffre commercial qui compte pour ton devis), et les utilisateurs simultanés actifs (chiffre technique, le pic de requêtes traitées en parallèle au même instant). Les deux ne sont pas du tout du même ordre.
| VRAM | LLM réaliste | Équipe typique | Pic simultané |
|---|---|---|---|
| 24 GB (RTX 4090) | Qwen 2.5 32B Q5 ou Llama 70B Q3 | 5-10 pers. | 1-2 actifs |
| 32 GB (RTX 5090) | Llama 70B Q4 ou Qwen 32B Q8 | 10-20 pers. | 2-3 actifs |
| 48 GB (A6000) | Llama 70B Q5 + marge KV cache | 20-35 pers. | 3-5 actifs |
| 64 GB (2× 5090) | Llama 70B Q5 + vLLM batching | 40-80 pers. | 5-10 actifs |
| 96 GB (2× A6000 NVLink) | Llama 70B FP16 ou Mistral Large | 80-150 pers. | 10-20 actifs |
Coût total d'un RAG local (24 mois)
Pour un cabinet ou une PME qui sort 10-20M tokens/mois en production RAG, voici le TCO comparé à OpenAI :
| Poste | Rig Pro local (2× 5090) | OpenAI GPT-4o équivalent |
|---|---|---|
| Matériel | 11 990 € (one-shot) | 0 € |
| Élec 24 mois (~250 W moy) | ≈600 € | 0 € |
| Support 24 mois | 1 580 € (pack Pro) | 0 € |
| API tokens 15M/mois × 24 | 0 € | ≈18 000 € |
| Total 24 mois | ≈14 170 € | ≈18 000 € |
Le RAG local n'est pas un projet d'ingénieur, c'est une décision business. La question n'est plus « ça marche ? » mais « combien de tokens passent par mois ? ».
Erreurs classiques à éviter
- Chunks trop gros : 1500-2000 tokens c'est le plafond. Au-delà, le re-ranking dilue le signal.
- Pas de re-ranker : ajouter Cohere Rerank (ou BGE-Reranker open) double quasi toujours la précision du RAG.
- Embeddings mal choisis : BGE-M3 multilingue écrase les anciens MPNet sur les corpus FR/EN mélangés.
- Pas de filtres métadonnées : dater les chunks, tagger par département, indexer par client = fondamentaux RAG entreprise.
- VRAM tendue : 90 % de la VRAM, c'est la mort dès qu'un user dépasse 8k tokens en context.
Notre recommandation pour démarrer
Si tu démarres un RAG local sans contrainte spécifique, voici la stack qu'on installe sur les rigs LocalIA :
- Ubuntu 24.04 LTS + drivers NVIDIA + CUDA 12.6
- vLLM (server OpenAI-compatible) + Ollama (gestion modèles)
- Qwen 2.5 32B en Q5 par défaut (sweet spot qualité/débit/VRAM)
- Qdrant + LlamaIndex + Open WebUI
- Embeddings BGE-M3 (multilingue, 1024 dims)
- Re-ranker BGE-Reranker-v2-m3
Sur un rig Pro (2× RTX 5090, 64 GB VRAM), cette stack tient 5-10 utilisateurs en RAG concurrent, débit ≈40 tok/s par stream, contexte utile 32k tokens.