La génération augmentée de récupération (RAG) est une technique de conception de systèmes d'IA qui permet à un modèle de langage de consulter des documents externes avant de répondre à une question. Au lieu de s'appuyer uniquement sur ce qui a été appris pendant l'entraînement, un pipeline RAG recherche d'abord dans une base de connaissances les passages pertinents pour la requête de l'utilisateur, puis transmet ces passages au modèle comme contexte. Le résultat est une réponse générée ancrée dans des sources spécifiques et citables, et non uniquement dans les poids internes du modèle.
Comment fonctionne la génération augmentée de récupération
Un système RAG typique comporte deux composants principaux : un récupérateur et un générateur. Le récupérateur est généralement un index de recherche vectorielle construit à partir d'un corpus de documents. Lorsqu'un document est ajouté à l'index, un modèle d'embedding convertit ses segments en vecteurs numériques ; le même modèle encode la requête de l'utilisateur, et une recherche par similarité (le plus souvent une recherche des plus proches voisins basée sur la distance cosinus ou le produit scalaire) renvoie les segments dont les vecteurs sont les plus proches de la requête. Les segments les mieux classés sont ensuite insérés dans le prompt envoyé au grand modèle de langage, souvent accompagnés d'instructions telles que « répondre en utilisant uniquement le contexte fourni ».
Par exemple, si un utilisateur demande à un assistant interne d'entreprise « Quelle est notre politique de congé parental ? », le récupérateur trouve la section pertinente du handbook des employés, et le modèle de langage s'appuie sur ces passages pour composer une réponse précise qui cite la politique. Ce schéma, introduit dans l'article de 2020 par Lewis et al. chez Facebook AI Research, sépare la connaissance (stockée dans l'index) du raisonnement (effectué par le modèle), ce qui explique pourquoi l'approche passe bien à l'échelle à mesure que les sources évoluent.
Pourquoi c'est important
Le RAG répond à trois problèmes persistants des modèles de langage autonomes. Premièrement, il réduit les hallucinations, car le modèle est ancré à du texte récupéré plutôt que d'improviser. Deuxièmement, il permet à un système de refléter des informations qui n'existaient pas, ou qui ont changé, depuis la date limite d'entraînement du modèle, simplement en mettant à jour l'index. Troisièmement, il rend les réponses du modèle plus vérifiables : développeurs et utilisateurs peuvent inspecter les segments récupérés, les citer et remonter chaque affirmation jusqu'à un document source.
Ces propriétés font du RAG le schéma par défaut pour la réponse aux questions en entreprise, les copilotes de support client, la recherche juridique et de conformité, ainsi que les assistants IA qui doivent exploiter des données privées ou propriétaires sans réentraîner le modèle sous-jacent.
Principaux types et schémas
- RAG naïf (ou « Retrieve-and-Read ») : une seule étape de récupération insère directement les k meilleurs segments dans le prompt du générateur.
- RAG avancé : ajoute une réécriture de la requête, un reclassement et un filtrage au niveau des segments avant la génération, afin d'améliorer la précision.
- RAG modulaire : compose le pipeline à partir de composants interchangeables tels que la recherche web, des requêtes SQL ou des appels d'API, et peut alterner entre récupération et génération.
- Graph RAG : construit un graphe de connaissances à partir du corpus et récupère des sous-graphes d'entités liées, ce qui peut produire des réponses plus contextuelles sur des données connectées.
- RAG agentique : laisse le modèle de langage décider quand et quoi récupérer, souvent à travers plusieurs outils, avant de produire une réponse finale.
En découplant le stockage des connaissances du moteur de raisonnement, le RAG est devenu une brique fondamentale pour les applications d'IA en production qui doivent être précises, à jour et auditables. La recherche originale est décrite dans Lewis et al., « Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks » (2020), et les bonnes pratiques actuelles sont documentées dans des frameworks tels que LlamaIndex et LangChain.