Hasina Razafintsalama

Hasina RAZAFINTSALAMA

← Retour au Blog
AI & RAG

Qu'est-ce que le RAG ? Le guide complet du Retrieval-Augmented Generation

Le RAG est devenu le terme à la mode de l'IA appliquée, et l'un des plus mal compris. Voici ce qu'il est réellement, comment le pipeline fonctionne étape par étape, ce qu'il ne corrige pas, et quand il bat les alternatives.

2026-07-24·11 min

Le RAG, ou Retrieval-Augmented Generation, est une technique pour répondre à des questions avec un modèle de langage en récupérant d'abord les documents pertinents et en les donnant au modèle comme contexte, au lieu de se fier uniquement à ce qu'il a appris pendant son entraînement. En une phrase : on cherche d'abord, puis on répond à partir de ce qu'on a trouvé. Ce guide est la porte d'entrée vers les articles plus détaillés de ce blog.

Le problème que le RAG résout

Un LLM entraîné a une connaissance figée à une date de coupure et ne connaît rien de vos données privées : vos documents internes, votre base clients, votre documentation produit. Il y a deux façons de combler ce manque. Le fine-tuning ré-entraîne le modèle sur vos données, ce qui est lent, coûteux, et à refaire à chaque mise à jour. Le RAG donne au modèle les documents pertinents au moment de la question, ce qui est rapide à mettre à jour et ne demande aucun ré-entraînement.

Le RAG face aux alternatives

ApprocheModifie le modèle ?Idéal pourCoût de mise à jour
Prompt engineeringNonFormulation, format, quelques faitsGratuit, on édite le prompt
Grande fenêtre de contexteNonUne poignée de documents par appelPayé à chaque appel
RAGNonConnaissance privée large ou changeanteRé-embedder les documents modifiés
Fine-tuningOuiComportement, style, format constantsUn nouveau run d'entraînement

Ces approches ne s'excluent pas. Un montage de production courant est le RAG pour la connaissance plus un léger fine-tuning pour un style de réponse constant. La comparaison a son propre article détaillé sur ce blog.

Les quatre étapes d'un pipeline RAG

  • ✓Ingestion : découper vos documents en morceaux (chunks) de taille raisonnable et transformer chacun en vecteur numérique (un embedding) qui capture son sens.
  • ✓Stockage : ranger ces vecteurs dans une base vectorielle (Qdrant, Pinecone, pgvector) qui sait retrouver les plus proches d'une requête.
  • ✓Récupération : au moment de la question, embedder la question et retrouver les chunks les plus proches sémantiquement.
  • ✓Génération : mettre ces chunks dans le prompt avec la question et demander au modèle de répondre uniquement à partir de ce contexte.
python
# Un passage dans un pipeline RAG simple
question = "Quelle est la politique de remboursement ?"
question_vector = embed(question)

chunks_pertinents = vector_db.search(question_vector, top_k=4)

prompt = f"""Réponds à la question en utilisant uniquement ce contexte.
Si le contexte ne contient pas la réponse, dis que tu ne sais pas.

Contexte:
{chr(10).join(chunks_pertinents)}

Question: {question}
"""

reponse = llm.generate(prompt)

Un exemple concret

Un utilisateur demande à un bot de support "puis-je être remboursé après 40 jours ?". Le système embedde cette question, cherche dans la base vectorielle, et ramène trois chunks de la politique de retour, dont un qui dit que les remboursements sont acceptés sous 30 jours. Il met ces chunks dans le prompt, et le modèle répond "non, les remboursements sont acceptés sous 30 jours après l'achat" en citant la section concernée. Sans RAG, le modèle devinerait à partir de données d'entraînement génériques.

Ce que le RAG ne résout pas

Le RAG ne rend pas un modèle plus intelligent, il lui donne accès à plus d'informations. Si les chunks récupérés sont hors sujet à cause d'un mauvais découpage ou d'embeddings faibles, le modèle produit une réponse confiante mais fausse : une hallucination construite sur un mauvais contexte reste une hallucination. Le RAG ne change pas non plus la façon dont le modèle raisonne ou rédige, et il n'aide pas sur les tâches qui ne portent pas sur la récupération de faits.

Le RAG n'est pas un substitut universel au fine-tuning. Le RAG injecte des connaissances factuelles à jour ; le fine-tuning change le comportement ou le style du modèle. Beaucoup de systèmes réels utilisent les deux.

Quand utiliser le RAG, et quand ne pas le faire

  • ✓Utilisez-le quand vos données changent souvent : un catalogue produit, de la documentation, une base de connaissances support.
  • ✓Utilisez-le quand vous devez citer la source d'une réponse ; la traçabilité est native au RAG.
  • ✓Utilisez-le pour éviter le coût et la latence d'un ré-entraînement à chaque changement de contenu.
  • ✓Ne l'utilisez pas pour une poignée de documents stables ; mettez-les simplement dans le prompt.
  • ✓Ne l'utilisez pas pour corriger le raisonnement, le ton ou le format ; c'est un problème de prompt ou de fine-tuning.

Ce qu'il faut pour en construire un

BriqueRôleChoix courants
LoaderLire les documents depuis leur sourceLoaders PDF, HTML, base de données, API
SplitterDécouper les documents en chunksRécursif, sémantique, hiérarchique
Modèle d'embeddingTransformer le texte en vecteursOpenAI, Cohere, Voyage, modèles ouverts
Base vectorielleStocker et rechercher les vecteurspgvector, Qdrant, Chroma, Pinecone
LLMGénérer la réponse ancréeN'importe quel modèle de chat, API ou auto-hébergé

Pour aller plus loin

Ce guide couvre les fondations. Pour approfondir, ce blog a des articles dédiés sur le choix du modèle d'embedding, le choix de la base vectorielle, l'architecture RAG moderne, la construction d'un pipeline avec LangChain et FastAPI, le RAG en production, et la comparaison entre RAG, fine-tuning et prompt engineering.

FAQ

Qu'est-ce que le RAG en une phrase ?
Le RAG, ou Retrieval-Augmented Generation, c'est répondre à une question avec un modèle de langage en récupérant d'abord les documents pertinents et en les donnant au modèle comme contexte, pour qu'il réponde à partir de vos données plutôt que seulement de son entraînement.
Quelle différence entre RAG et fine-tuning ?
Le RAG donne de l'information au modèle au moment de la requête sans le modifier ; le fine-tuning change les poids du modèle avant toute requête. Le RAG sert pour une connaissance privée, large ou qui change souvent. Le fine-tuning sert pour un comportement et un style qui doivent être constants. Une réponse RAG peut citer sa source ; une réponse fine-tunée non.
Le RAG empêche-t-il les hallucinations ?
Il les réduit en ancrant la réponse dans du texte récupéré et en laissant le modèle citer ses sources, mais il ne les élimine pas. Si la récupération ramène les mauvais chunks, le modèle peut quand même produire une réponse confiante et fausse. La plupart des hallucinations en RAG viennent d'une récupération faible, pas du modèle.
Faut-il LangChain pour faire du RAG ?
Non. LangChain fournit des loaders, splitters, retrievers et la plomberie des chaînes qui accélèrent la première version, mais vous pouvez construire le même pipeline avec des appels directs à un modèle d'embedding, une base vectorielle et un LLM. À utiliser pour démarrer, pas comme dépendance permanente.
Quand ne pas utiliser le RAG ?
Quand vous n'avez que quelques documents stables, mettez-les directement dans le prompt. Quand le problème est le raisonnement, le ton ou le format de sortie plutôt que des faits manquants, le RAG n'aidera pas ; c'est un problème de prompt engineering ou de fine-tuning.

Le RAG est une idée simple avec beaucoup d'ingénierie derrière le fait de bien le faire : récupérer le bon contexte, y ancrer la réponse, citer les sources, et garder l'index à jour. Réussissez la récupération et le reste du système suit.

Envie d'intégrer l'IA dans votre application ?

Intégration IA & RAG →