Comprendre le rôle stratégique du RAG
Les grands modèles de langage accomplissent des prouesses, mais leur connaissance est figée à la date de leur entraînement. Lorsqu’une réponse dépend d’informations internes et changeantes — documentation produit, procédures, contrats, tickets support — il faut relier le modèle à une mémoire externe fiable. C’est précisément ce que propose le Retrieval‑Augmented Generation (RAG) : récupérer à la volée les passages pertinents dans une base documentaire, les injecter dans le prompt, puis générer une réponse fondée et traçable. L’objectif n’est pas seulement d’être “plus juste”, mais d’opérer avec des sources gouvernées par l’entreprise, auditées et mises à jour en continu.
Comprendre le RAG
La Recherche
La question de l’utilisateur est convertie en représentation numérique et comparée à un index de documents pré‑vectorisés pour sélectionner des passages réellement proches par le sens.
L'Augmentation
Ces extraits sont injectés dans un prompt structuré avec des consignes précises (format de sortie, citation des sources, droit de dire “je ne sais pas”).
La Génération
Le modèle produit la réponse en s’appuyant sur ce contexte ciblé. Cette orchestration réduit les hallucinations et rend la réponse vérifiable.
C’est quoi la vectorisation ?
La vectorisation consiste à transformer un texte en un vecteur (embedding), c’est‑à‑dire une suite de nombres qui capture des proximités de sens. Deux textes sémantiquement proches — même lorsqu’ils n’emploient pas les mêmes mots — se retrouvent proches dans l’espace vectoriel.
Exemple : Espace Vectoriel (5 dimensions)
| Texte | Vecteur (Embedding) |
|---|---|
| Le chien aboie. | [0.2, 0.8, 0.1, 0.5, 0.3] |
| L’animal domestique jappe. | [0.3, 0.7, 0.2, 0.4, 0.2] |
| La voiture roule. | [0.8, 0.1, 0.9, 0.2, 0.7] |
sim(A,B) = (A·B) / (‖A‖ × ‖B‖)
sim(« Le chien aboie », « L’animal domestique jappe ») ≈ 0,97 (Sens proche)
sim(« Le chien aboie », « La voiture roule ») ≈ 0,12 (Sujets éloignés)
Quand recourir au RAG — et quand s’en abstenir
Go RAG
Lorsque le service dépend d’informations qui évoluent souvent, lorsque la traçabilité est décisive, ou lorsque le corpus est long et hétérogène (PDF, wikis, tickets, tableaux). On préfère injecter des passages exacts.
Alternatives
Lorsque l’objectif est comportemental (style, format strict), ou quand la latence doit être très basse. Ici, le Fine-tuning ou des requêtes SQL/BI classiques sont plus adaptés.
Les briques techniques qui font la différence
Découpage en segments cohérents (chunking) avec chevauchement pour préserver le contexte.
Langue, version, auteur... essentiels pour filtrer finement avant la recherche.
Doit être adapté à la langue et au domaine pour garantir la pertinence sémantique.
Combinaison Dense (sens) + Sparse (mots-clés précis/acronymes) pour le meilleur des deux mondes.
Reclassement des candidats par un modèle léger pour ne garder que le "top tier" utile.
Rappel des règles, format de sortie, et ordre des extraits pour limiter l'effet "lost-in-the-middle".
Mesurer la qualité d’un système RAG
Mettre en ligne un RAG n’est qu’un début ; la valeur vient de l’évaluation continue.
-
Pertinence de la récupération
Indicateurs : Recall@k, Mean Reciprocal Rank (MRR).
-
Fidélité de la réponse
Frameworks (RAGAS, TruLens) pour vérifier que le modèle n'invente pas.
-
Latence et Coût
Réponse en quelques secondes, maîtrise de la taille du prompt via reranking.
-
Automatisation
Jeu de tests représentatif pour éviter les régressions à chaque mise à jour.
Retours d’expérience : ChromaDB vs Qdrant
ChromaDB
Le Starter Pack
Excelle pour démarrer vite. Simplicité, SDK Python/JS, mode local (SQLite). Idéal pour valider une pipeline, tester des chunks, et faire une démo.
Qdrant
La Production
Tient la charge. Filtrage riche, support hybride (dense/sparse), clustering et snapshots. Permet de déléguer le reranking côté serveur.