Skip to main content
Niveau : Avancé · Prérequis : Structurer le contexte · Temps de lecture : ~5 min
Les modèles de langage sont entraînés sur des données figées à une date précise : leur date de coupure. Ils ne connaissent pas vos documents internes, vos bases de données propriétaires, ni les actualités récentes. Le RAG (Retrieval-Augmented Generation) résout ce problème en connectant le modèle à une source de données externe au moment de la génération : plutôt que de demander au modèle de mémoriser toute la connaissance utile, on lui fournit dynamiquement les informations pertinentes dans le contexte. C’est l’une des architectures les plus puissantes et les plus répandues dans les applications IA en production.

Qu’est-ce que le RAG ?

Le RAG est une architecture qui combine deux composants distincts :
  • Un système de retrieval (récupération) : une base vectorielle ou un moteur de recherche qui identifie les documents les plus pertinents pour une requête donnée
  • Un modèle de génération : le LLM qui produit la réponse finale en s’appuyant sur les documents récupérés
Le modèle ne génère pas à partir de sa mémoire interne seule : il lit les documents fournis et synthétise une réponse ancrée dans vos données réelles.

Pourquoi utiliser le RAG ?

Le RAG répond à plusieurs limitations fondamentales des LLMs :
  • Dépasser la date de coupure : vos données sont mises à jour indépendamment du modèle
  • Utiliser des données privées : documentation interne, contrats, bases clients, etc.
  • Réduire les hallucinations : le modèle s’appuie sur des sources vérifiables
  • Citer les sources : vous pouvez tracer d’où vient chaque information
  • Éviter le fine-tuning : pas besoin de ré-entraîner le modèle pour chaque mise à jour de données
Le RAG réduit les hallucinations, il ne les élimine pas. Le modèle peut mal interpréter un document récupéré, mélanger deux sources contradictoires, ou continuer à s’appuyer sur ses propres connaissances internes malgré le contexte fourni. Une réponse “sourcée” n’est pas automatiquement une réponse vérifiée : avant de la considérer comme fiable, vérifiez qu’elle correspond réellement aux documents cités, surtout sur des sujets à enjeu (juridique, médical, financier).

Le pipeline RAG en 3 grandes étapes

1

Indexation (offline)

Préparez et stockez vos documents dans une base vectorielle. Cette étape se fait une fois (puis en incrémental lors des mises à jour).
  • Chargement : importez vos documents (PDF, Word, HTML, base de données, etc.)
  • Chunking : découpez chaque document en segments (chunks) de taille adaptée
  • Embedding : convertissez chaque chunk en vecteur numérique via un modèle d’embedding
  • Stockage : indexez les vecteurs dans une base vectorielle (Pinecone, Weaviate, Chroma, pgvector…)
2

Récupération (retrieval, online)

Lorsqu’une question est posée, retrouvez les chunks les plus pertinents.
  • Embedding de la requête : convertissez la question en vecteur avec le même modèle d’embedding
  • Recherche par similarité : calculez la distance cosinus entre le vecteur requête et tous les vecteurs indexés
  • Sélection : récupérez les k chunks les plus proches (typiquement 3 à 10)
  • Reranking (optionnel) : affinez la sélection avec un modèle de reranking pour améliorer la précision
3

Génération (online)

Construisez le contexte et obtenez la réponse finale.
  • Assemblage du contexte : injectez les chunks récupérés dans le prompt
  • Prompt structuré : encadrez les documents avec des délimiteurs clairs (voir la page sur la structuration)
  • Génération : le LLM produit une réponse en se basant sur les documents fournis
  • Post-traitement : extrayez les sources citées et formatez la réponse
L’ensemble du pipeline, de l’indexation hors ligne à la génération en direct, se visualise ainsi :

Le chunking : découper intelligemment

Le chunking est l’étape la plus sous-estimée du pipeline RAG. Un mauvais découpage dégrade directement la qualité de récupération.
Il n’existe pas de taille de chunk universelle. Un chunk trop petit perd le contexte local (une phrase isolée peut être ambiguë) ; un chunk trop grand dilue le signal de pertinence et consomme beaucoup de tokens. La taille typique se situe entre 256 et 1024 tokens, avec un chevauchement (overlap) de 10 à 20 % pour éviter de couper des idées en deux.
Les principales stratégies de chunking :

Les embeddings pour la recherche sémantique

Un embedding est une représentation numérique dense d’un texte dans un espace vectoriel à haute dimension. Des textes sémantiquement proches ont des vecteurs proches dans cet espace : c’est ce qui permet de retrouver des documents pertinents même si la question n’utilise pas exactement les mêmes mots que le document. Modèles d’embedding populaires :
  • text-embedding-3-large (OpenAI) : haute qualité, 3072 dimensions
  • embed-v3 (Cohere) : excellent pour le multilinguisme
  • all-MiniLM-L6-v2 (open source, via HuggingFace) : léger et rapide
  • multilingual-e5-large (open source) : fort sur le français et les langues européennes

Outils et frameworks RAG

LlamaIndex

Framework spécialisé dans l’ingestion, le chunking et la récupération de données. Idéal pour construire rapidement un pipeline RAG robuste avec de nombreux connecteurs de données natifs.

LangChain

Framework généraliste pour les applications LLM. Propose des composants RAG modulaires (loaders, splitters, retrievers) facilement combinables avec d’autres chaînes.

Haystack

Framework orienté recherche et question-réponse. Particulièrement adapté aux cas d’usage documentaires d’entreprise avec pipeline de retrieval avancé.

Bases vectorielles

Pinecone (managed, scalable), Weaviate (open source, hybride), Chroma (léger, local), pgvector (extension PostgreSQL). Le choix dépend de votre infrastructure existante.

RAG vs Fine-tuning : quand choisir quoi ?

Ces deux approches répondent à des besoins différents et sont souvent complémentaires : En règle générale : utilisez le RAG pour injecter des connaissances, et le fine-tuning pour modifier le comportement du modèle.

Essayez maintenant : ressentez l’effet du RAG en deux prompts

Posez d’abord cette question à votre IA préférée, sans aucun contexte additionnel :
Le modèle va probablement décliner poliment, ou inventer une réponse plausible sur un produit qu’il n’a jamais vu. Reposez ensuite la même question, mais en fournissant le “document” comme le ferait un système RAG :
Comparez les deux réponses. La seconde est ancrée dans un document réel, vérifiable et à jour : c’est exactement ce qu’un pipeline RAG automatise à grande échelle, en remplaçant votre copier-coller manuel par une recherche vectorielle sur des milliers de documents.

Testez vos connaissances

Le RAG. Il permet de mettre à jour les données source (le catalogue) indépendamment du modèle, sans aucun ré-entraînement : la base vectorielle est simplement réindexée. Le fine-tuning, à l’inverse, fige des connaissances dans les poids du modèle et nécessiterait un nouveau cycle d’entraînement à chaque changement de catalogue, ce qui est ni pratique ni économique pour des données qui évoluent quotidiennement.