01 — Pourquoi le RAG ?

Les modèles de langage ont une propriété fondamentalement limitante : leur connaissance est figée à la date de leur entraînement. Mistral 7B entraîné en 2023 ignore ce qui s'est passé depuis. Mais surtout, il ignore tout de vos données internes — vos contrats, vos procédures, vos bases de connaissance métier. Même le meilleur modèle du monde est aveugle à ce qu'il n'a pas vu.

Deux solutions s'offrent alors. Le fine-tuning consiste à ré-entraîner le modèle sur vos données. Coûteux, complexe, et inadapté aux données qui changent souvent. Le RAG (Retrieval-Augmented Generation) adopte une approche différente : au lieu d'enseigner au modèle, on lui donne les documents pertinents au moment de la question. Le modèle lit, synthétise, répond.

Le RAG ne modifie pas le modèle. Il lui apporte les bonnes informations au bon moment, comme un assistant qui prépare un dossier avant une réunion.
LLM seul « Quel est le CA de notre filiale Bordeaux en 2025 ? » MODÈLE Mistral / Llama Hallucination : invente une réponse plausible LLM + RAG « Quel est le CA de notre filiale Bordeaux en 2025 ? » Base docs MODÈLE + contexte CA filiale Bordeaux 2025 : 4,2 M€ ↗ 12%
Fig. 1 — LLM seul vs LLM + RAG : la différence entre halluciner et répondre avec les données réelles

L'avantage du RAG est sa fraîcheur : on met à jour la base documentaire, pas le modèle. Et sa traçabilité : chaque réponse peut être sourcée vers le document précis dont elle est extraite. Enfin, son coût : il est sans commune mesure avec un fine-tuning pour des cas d'usage documentaires.


02 — Architecture d'un RAG naïf

Un système RAG se décompose en deux grandes phases : une phase offline d'ingestion et d'indexation des documents, et une phase online de récupération et de génération à la demande.

Phase offline — Indexation Docs PDF, DOCX… Chunking Découpage Embedding Vectorisation Index Qdrant… Phase online — Requête Question Utilisateur Retrieval Top-k chunks Génération LLM + contexte Réponse sourcée
Fig. 2 — Pipeline RAG complet : phase offline (indexation) et phase online (requête → réponse)

Ce pipeline paraît simple. Il l'est, jusqu'à ce qu'on l'expose à des données réelles. C'est là que commencent les vrais problèmes — et les vraies optimisations.


03 — Le problème du chunking

Le chunking est l'étape la plus sous-estimée du RAG. Mal fait, il ruine le reste du pipeline, quel que soit la qualité du modèle ou de l'index. Un chunk trop grand noie l'information pertinente dans du bruit. Un chunk trop petit perd le contexte nécessaire à la compréhension.

Fixed-size chunking — le piège du débutant

La stratégie naïve : couper tous les 512 tokens. Simple à implémenter, catastrophique en pratique. Une phrase peut être coupée en plein milieu, un tableau peut être fragmenté de façon incohérente, une définition peut être séparée de l'entité qu'elle décrit.

Recursive character splitting

L'approche de LangChain par défaut. On coupe d'abord sur les sauts de paragraphe (\n\n), puis sur les sauts de ligne, puis sur les phrases, puis sur les mots — en respectant toujours la taille maximale. Meilleur que le fixed-size, mais encore aveugle à la sémantique.

Semantic chunking — l'état de l'art

On encode chaque phrase, puis on compare les embeddings de phrases consécutives. Quand la similarité chute (changement de sujet), on coupe. Cette approche préserve la cohérence thématique des chunks. Le coût est plus élevé (il faut embedder pendant le chunking), mais la qualité de retrieval s'améliore significativement.

Recommandation DEEP-5

Commencez par du recursive splitting avec chunk_size=600 / overlap=80 tokens. Passez au semantic chunking dès que votre corpus dépasse 10 000 documents ou que vos métriques de retrieval stagnent. L'overlap est non-négociable : il préserve le contexte aux frontières.

Fixed-size Recursive Semantic « Le bilan 2025 montre une hausse de 12% du CA. La filiale de Borde- aux a surperformé ses objectifs… » ✗ Phrase coupée ✗ Contexte perdu « Le bilan 2025 montre une hausse de 12% du CA. » « La filiale de Bordeaux a surperformé ses objectifs. » ~ Phrases complètes ✗ Frontières arbitraires « Résultats financiers 2025 : hausse CA de 12%, filiale Bordeaux +18%, objectifs dépassés. » ✓ Cohérence thématique ✓ Contexte préservé Coupure sur chute de similarité cosine
Fig. 3 — Comparaison de 3 stratégies de chunking sur le même texte source

04 — Embeddings & index vectoriel

Un embedding est une représentation numérique d'un texte — un vecteur de 768 à 4096 dimensions selon le modèle. Des textes sémantiquement proches ont des vecteurs proches dans l'espace vectoriel, mesurés par la similarité cosine. C'est ce principe qui permet au retrieval de trouver des chunks pertinents même si les mots exacts de la question ne sont pas dans le document.

Modèle d'embeddingDimensionsLanguesPoints fortsUsage recommandé
Mistral Embed1024FR/EN/multilingualExcellent français, API simpleRAG FR/EU
E5-large-v21024EN principalementMTEB état de l'art, open-sourceEnglish RAG
BGE-M31024100+ languesDense + sparse + multi-vecteurMultilingue
Cohere Embed v31024MultilingualCompression int8, très rapideAPI payante
text-embedding-3-large3072MultilingualHaute précisionOpenAI dépendant

Choisir son index vectoriel

L'index vectoriel stocke les embeddings et répond aux requêtes de similarité. Trois choix dominants en 2026 :

Qdrant est notre recommandation par défaut pour les projets nouveaux. Rust natif, performant, filtrage payload puissant, déploiement Docker simple. pgvector s'intègre dans votre PostgreSQL existant — excellent si vous voulez limiter les dépendances. Weaviate offre des fonctionnalités avancées (multi-tenancy, modules intégrés) mais a une courbe d'apprentissage plus raide.

Dim 1 (simplifié) Dim 2 (simplifié) Finance RH Juridique ← Requête Espace vectoriel — retrieval par similarité cosine
Fig. 4 — Espace vectoriel 2D simplifié : clusters de documents par thème, requête (étoile) et ses k plus proches voisins

05 — Hybrid Search : le vrai game changer

Le retrieval dense (embeddings) excelle sur les questions de sens général — mais échoue sur les recherches exactes. Si un utilisateur cherche « rapport Q3-2025-EMEA-v2.3 », l'embedding ne retrouvera pas ce document aussi bien qu'une recherche BM25 sur le nom exact. C'est le problème du lexical gap.

BM25 (Best Match 25) est un algorithme de recherche full-text probabiliste, héritier de TF-IDF. Il excelle sur les requêtes exactes, les noms propres, les codes et références. Il échoue sur les questions sémantiques où les mots de la requête ne sont pas dans le document.

La solution : fusionner les deux via Reciprocal Rank Fusion (RRF). Chaque résultat reçoit un score combiné basé sur sa position dans les deux classements. Le résultat est un ranking hybride qui capture à la fois la pertinence sémantique et la correspondance lexicale.

En production, le hybrid search améliore systématiquement le Context Recall de 8 à 20 points par rapport au dense seul. C'est non-négociable.
BM25 (Sparse) Recherche exacte #1 Rapport Q3-2025-EMEA #2 Bilan EMEA Q3 #3 Synthèse trimestrielle #4 Revue performance EU Dense (Embeddings) Similarité sémantique #1 Analyse résultats EMEA #2 Rapport Q3-2025-EMEA #3 Indicateurs régionaux #4 Performance 2025 RRF Hybrid (RRF) Meilleur des deux mondes #1 Rapport Q3-2025-EMEA ✓✓ #2 Analyse résultats EMEA #3 Bilan EMEA Q3 #4 Indicateurs régionaux Score = 1/(k+rank_bm25) + 1/(k+rank_dense)
Fig. 5 — Reciprocal Rank Fusion : fusion BM25 + dense pour un classement hybride optimal

06 — Reranking & Query Rewriting

Le retrieval hybride retourne les k chunks les plus probables — mais "les plus proches dans l'espace vectoriel" n'est pas la même chose que "les plus utiles pour répondre". Le reranking est une seconde passe de scoring, plus précise mais plus coûteuse.

Cross-encoder vs Bi-encoder

Les embeddings utilisent un bi-encoder : la question et chaque document sont encodés séparément, puis comparés. C'est rapide, mais cela capture mal les interactions fines entre question et document. Un cross-encoder prend la paire (question, document) en entrée et produit un score de pertinence — bien plus précis, mais impossible à pré-calculer sur un large corpus. D'où l'usage en deux étapes : bi-encoder pour retriever 50-100 candidats, cross-encoder pour les re-ordonner et garder les 5-10 meilleurs.

Query Rewriting : reformuler avant de chercher

Une question utilisateur est souvent ambiguë, mal formulée, ou rédigée dans un style différent de la base documentaire. Le query rewriting fait réécrire la question par un LLM avant de lancer la recherche — en plusieurs variantes parallèles (multi-query), ou sous forme de document hypothétique (HyDE : Hypothetical Document Embeddings).

HyDE — Hypothetical Document Embeddings

Au lieu d'embedder la question, on demande au LLM de générer un document hypothétique qui répondrait à la question. On embedde ce document hypothétique. L'idée : un document (même fictif) est structurellement plus proche des vrais documents du corpus qu'une question courte. Gain mesuré : +5 à +15% de Context Recall.

Question originale Query Rewriter LLM Variante 1 reformulée Variante 2 synonymes Variante 3 HyDE Retrieval Fusion résultats Reranker Cross-encoder Top-5 final Multi-query + HyDE → Fusion → Reranking cross-encoder
Fig. 6 — Pipeline enrichi : query rewriting multi-variantes → retrieval fusionné → reranking cross-encoder

07 — GraphRAG & RAG agentique

Le RAG naïf souffre d'une limite fondamentale : il répond à des questions locales. « Quel est le CA de la filiale Bordeaux ? » — parfait. Mais « Quelle est la relation entre la performance de Bordeaux et la politique tarifaire de Lyon ? » — là, le RAG naïf retourne des chunks épars qui ne se parlent pas.

GraphRAG : raisonner sur les relations

Développé par Microsoft Research (2024), GraphRAG construit un graphe de connaissances à partir du corpus : entités (personnes, lieux, produits, événements) et relations entre elles. À la requête, au lieu de chercher des chunks similaires, on traverse le graphe pour trouver des chemins de sens qui relient les entités pertinentes.

DEEP-5 Organisation Filiale Bordeaux Filiale Lyon Politique tarifaire 2025 Produit Premium possède possède applique applique vend Graphe de connaissances — traversal multi-hop — chemin de requête
Fig. 7 — GraphRAG : traversal multi-hop pour relier Filiale Bordeaux → Politique tarifaire → Filiale Lyon en une seule requête

RAG agentique : le retrieval comme outil

Dans un RAG agentique, le modèle décide lui-même quand et comment retriever. Plutôt qu'un pipeline fixe question → retrieval → génération, l'agent peut : lancer plusieurs requêtes de recherche successives, affiner en fonction des résultats intermédiaires, combiner des sources différentes, ou décider qu'il a assez de contexte et répondre directement.

Attention

GraphRAG et RAG agentique augmentent significativement la complexité et le coût d'inférence. Commencez toujours par un RAG hybride bien évalué. Ne passez à ces approches avancées que si vos métriques montrent que les questions multi-hop ou les raisonnements longs sont la limite principale.


08 — Évaluation avec RAGAS

Sans évaluation rigoureuse, le RAG est une boîte noire. On ne sait pas si les optimisations améliorent vraiment les choses ou si on déplace le problème. RAGAS (Retrieval Augmented Generation Assessment) est le framework de facto pour évaluer les systèmes RAG selon 4 dimensions orthogonales.

MétriqueCe qu'elle mesureCommentSeuil production
Faithfulness La réponse est-elle fidèle au contexte fourni ? LLM-as-judge : les affirmations de la réponse sont-elles supportées par les chunks ? > 0.85
Answer Relevancy La réponse répond-elle à la question ? Génère des questions à partir de la réponse, mesure la similarité avec la question originale > 0.80
Context Recall Le retrieval a-t-il trouvé tous les chunks nécessaires ? Compare les chunks retrievés à la ground truth (référence annotée) > 0.75
Context Precision Les chunks retrievés sont-ils tous utiles ? Proportion de chunks pertinents dans le top-k > 0.70
0.91 FAITHFULNESS Fidélité au contexte ✓ Au-dessus du seuil 0.84 ANSWER REL. Pertinence réponse ✓ Au-dessus du seuil 0.71 CTX RECALL Couverture retrieval ⚠ Améliorer chunking 0.63 CTX PRECISION Chunks utiles / top-k ✗ Reranker requis
Fig. 8 — Dashboard RAGAS typique en début de projet : Faithfulness et Answer Relevancy au-dessus des seuils, Context Recall et Precision à améliorer

Construire un jeu d'évaluation

Le piège classique : évaluer sur des questions générées automatiquement par le LLM depuis les mêmes documents. C'est circulaire. Un bon jeu d'évaluation contient 50 à 200 questions réelles, posées par de vrais utilisateurs métier, avec les réponses de référence validées par des experts du domaine.

Une fois ce jeu en place, chaque modification du pipeline (chunking, embedding, retrieval, prompt) peut être comparée quantitativement. C'est le seul moyen de savoir si une optimisation aide vraiment.

Roadmap recommandée par DEEP-5

1. RAG naïf avec hybrid search → mesurer RAGAS. 2. Optimiser le chunking selon le Context Recall. 3. Ajouter reranker si Context Precision < 0.70. 4. Query rewriting si Answer Relevancy stagne. 5. GraphRAG/agentique seulement si les questions multi-hop dominent les échecs.

Vous construisez un RAG en production ?

DEEP-5 accompagne les équipes de la conception à la mise en service : architecture, évaluation, optimisation. Première analyse de faisabilité offerte.

Discutons de votre projet