Retrieval-augmented generation (RAG) (FR)
Retrieval-Augmented Generation (RAG) (fr. Génération augmentée par recherche) est une méthode du domaine de l'intelligence artificielle dans laquelle un grand modèle de langage (LLM) est doté d'un accès à des sources d'information externes pour améliorer la précision et la fiabilité de ses réponses. En d'autres termes, avant de générer une réponse, le modèle effectue une recherche de données pertinentes (par exemple, dans une base de documents, sur un site web ou dans une base de données) et utilise les informations trouvées pour formuler sa réponse[1][2]. Cette approche permet une « augmentation » des connaissances à partir de sources actuelles et aide à surmonter les limitations des LLM eux-mêmes, liées à une « mémoire » limitée et à des informations obsolètes[3]. Un système RAG est capable de citer des documents spécifiques (par exemple, sous forme de notes de bas de page) dans la réponse générée, ce qui augmente la transparence et permet à l'utilisateur de vérifier les faits[1]. En conséquence, le risque d'hallucinations — cas où le modèle présente avec assurance des informations fausses — est réduit[1][3]. Le RAG étend la base de connaissances d'un LLM à une taille presque illimitée et permet aux modèles d'utiliser les données les plus récentes sans nécessiter de réentraînement[4].
Origines et développement de la méthode
L'idée de combiner la recherche d'informations avec la génération automatique de réponses est née bien avant l'avènement des LLM modernes. Dès les années 1970, des tentatives ont été faites pour créer des systèmes de question-answering qui cherchaient des réponses à des questions posées dans des bases de données textuelles[1]. Dans les années 1990, le service web Ask Jeeves a popularisé la recherche de réponses en langage naturel, et en 2011, le système IBM Watson a démontré les capacités de l'IA en remportant le jeu télévisé Jeopardy! face à des participants humains[1].
L'étape actuelle de développement est liée à l'introduction des modèles de langage neuronaux : la Retrieval-Augmented Generation en tant qu'approche distincte a été proposée en 2020 par un groupe de chercheurs de Facebook AI Research, de l'University College London et d'autres, sous la direction de Patrick Lewis[1]. Leur article, accepté à NeurIPS 2020, décrit le modèle RAG — un modèle génératif seq2seq (par exemple, BART) avec un accès différentiable à un stockage de connaissances externe « non paramétrique »[5]. Les auteurs ont utilisé l'intégralité de la Wikipédia anglophone comme base de connaissances externe, la représentant sous la forme d'un index vectoriel (~21 millions de fragments de texte), dans lequel la recherche est effectuée à l'aide de l'algorithme neuronal Dense Passage Retrieval[5]. Pour une requête entrante, le modèle RAG extrait de l'index les fragments les plus pertinents et les ajoute au contexte de génération de la réponse. Ce mécanisme a permis d'atteindre de nouveaux résultats de pointe (state-of-the-art) sur des tâches à base de connaissances ouverte, comme les tests Natural Questions, WebQuestions, etc.[2]. Il a été noté que les réponses du modèle RAG étaient plus spécifiques et factuellement correctes que celles des approches génératives précédentes, grâce à la synthèse d'informations provenant de plusieurs sources à la fois[2]. Peu de temps après, Facebook a publié le code source de RAG : le modèle a été intégré dans la bibliothèque HuggingFace Transformers et son ensemble de données associé, permettant aux développeurs d'appliquer facilement RAG dans leurs projets[2]. Depuis 2020, la méthode RAG a rapidement gagné en popularité — selon l'auteur, malgré un acronyme peu flatteur, l'approche s'est largement répandue, donnant naissance à des centaines de publications scientifiques et devenant la base de nombreux services commerciaux[1].
Principe de fonctionnement du RAG
Schéma de principe de la Retrieval-Augmented Generation : le module de recherche (à gauche) extrait les documents pertinents de la base de connaissances, après quoi le modèle génératif (à droite) formule une réponse à la requête de l'utilisateur en tenant compte des informations trouvées[6]. Cette approche permet au LLM de s'appuyer sur des données externes actuelles lors de la génération de la réponse. Le diagramme montre comment la requête de l'utilisateur est transformée en vecteur et utilisée pour rechercher des fragments de texte similaires ; ceux-ci sont ensuite intégrés au contexte du modèle, « élargissant » ses connaissances et améliorant la précision de la réponse.
Un système RAG se compose généralement de deux composants principaux : un module de recherche (retriever) et un module de génération de réponse (generator)[6]. Lors de la phase de préparation, un index vectoriel de la base de connaissances est construit : tous les documents (textes) sont divisés en fragments et transformés par un modèle d'embedding en vecteurs numériques, qui sont stockés dans une base de données spécialisée pour une recherche ultérieure[6]. Lorsqu'une requête utilisateur est reçue, le même modèle d'embedding encode la requête en un vecteur ; ensuite, une recherche des plus proches voisins dans l'espace vectoriel est effectuée – on sélectionne les K fragments les plus similaires de l'index de connaissances (par exemple, K = 5)[6]. Ces fragments sont considérés comme le contexte externe contenant des faits probables sur le sujet de la requête.
À l'étape suivante, le contexte ainsi formé est utilisé par le modèle génératif. La question initiale, accompagnée des fragments de texte trouvés, est fournie en entrée au LLM (par exemple, un transformeur de type seq2seq ou un modèle orienté instructions) pour la génération de la réponse finale[2]. Le modèle de langage s'appuie ainsi non seulement sur ses connaissances apprises (paramétriques), mais aussi sur les données externes qui lui sont fournies. Dans l'implémentation originale de RAG, le rôle du générateur était tenu par un modèle pré-entraîné BART, et la « mémoire » externe était représentée par la collection de Wikipédia, indexée par la méthode DPR[5].
Approche par fusion pour combiner les connaissances
Une caractéristique importante de RAG est la manière dont le modèle combine les informations de plusieurs documents trouvés. Contrairement à une simple concaténation de tout le texte, RAG utilise une approche connue sous le nom de late fusion (« fusion tardive ») — le modèle génératif traite en parallèle chacun des K fragments obtenus et formule pour chacun une réponse hypothétique avec une note de confiance, puis agrège ces variantes en une conclusion finale[2]. Cette méthode permet à RAG de synthétiser une réponse même dans les cas où aucune source unique ne contient une réponse directe et complète à la question. Par exemple, si les informations nécessaires sont réparties dans différents articles, le modèle peut combiner des « indices » de plusieurs documents en une seule réponse[2]. (Il a été noté que l'augmentation du nombre de documents utilisés améliore généralement la complétude de la réponse au prix d'une légère perte de cohérence du texte[7].)
Variantes de mise en œuvre
Dans l'article original de 2020, deux modifications de l'architecture RAG ont été proposées[6]. En mode RAG-Sequence, le modèle génératif reçoit un ensemble fixe de documents trouvés et les utilise pour produire l'intégralité de la réponse. En mode RAG-Token, au contraire, une mise à jour dynamique est autorisée : à chaque étape de la génération d'un nouveau jeton (token), le modèle peut effectuer une nouvelle recherche et charger un fragment de texte supplémentaire si cela est nécessaire pour affiner la réponse. Les deux approches montrent un niveau de qualité élevé similaire ; RAG-Sequence est plus simple et plus rapide, tandis que RAG-Token permet théoriquement de prendre en compte davantage d'informations diverses dans les réponses longues[6].
Avantages du RAG
- Actualité et précision factuelle. La connexion à des données externes permet aux LLM de donner des réponses plus précises et fondées, en s'appuyant sur des informations réelles plutôt que uniquement sur les paramètres du modèle. Cela réduit considérablement le risque d'informations obsolètes ou simplement inventées dans la réponse du modèle[3][1]. Contrairement aux modèles avec une « base de connaissances » figée, RAG peut répondre même à des questions sur des événements ou des faits apparus après la fin de l'entraînement du modèle — grâce à l'accès à des sources de données récentes[4].
- Transparence et confiance des utilisateurs. Les systèmes RAG sont capables de fournir des liens vers les sources d'information (par exemple, des articles, des rapports ou des bases de données) qui ont servi de base à la réponse[1]. Essentiellement, le modèle structure ses réponses comme un travail de recherche avec des citations, ce qui permet de vérifier la fiabilité de chaque fait. La présence de sources primaires citées augmente la confiance des utilisateurs et facilite la vérification des informations obtenues.
- Spécialisation pour un domaine de connaissance. L'augmentation par recherche permet d'adapter relativement facilement le fonctionnement du modèle à un domaine de connaissance spécifique, sans modifier le modèle de langage lui-même. Pour ce faire, il suffit de fournir au LLM une base de connaissances spécialisée sur le sujet requis — qu'il s'agisse d'articles médicaux, de documents juridiques ou de manuels techniques d'une entreprise. Le modèle, tout en restant général dans ses paramètres, commence à agir comme un expert dans ce domaine, car il puise ses faits dans l'ensemble de données sélectionné[4][8]. Par exemple, un assistant juridique basé sur RAG peut limiter le champ de recherche à un corpus juridictionnel unique (les lois d'un pays spécifique), garantissant que les réponses seront conformes à cette législation précise[8].
- Flexibilité et mise à jour des connaissances. Dans les modèles classiques, pour ajouter de nouvelles connaissances ou corriger des faits erronés, il fallait effectuer un réentraînement (fine-tuning) sur un ensemble de données élargi, ce qui est coûteux en temps et en ressources. RAG résout ce problème : pour mettre à jour les connaissances du modèle, il suffit de mettre à jour la base de données externe ou de connecter des sources supplémentaires, et le modèle commencera immédiatement à utiliser les nouvelles informations[2]. Cela permet de maintenir facilement le système à jour — en fait, les données peuvent être remplacées « à chaud », même en temps réel, sans interrompre le fonctionnement du modèle[1].
- Efficacité et économie de ressources. L'approche RAG s'avère souvent plus pratique que l'entraînement de modèles de très grande taille qui cherchent à englober toutes les informations dans leurs paramètres. En intégrant la recherche, on peut atteindre des résultats comparables avec un modèle de taille modérée, sans essayer de mémoriser absolument tous les faits au sein même du réseau de neurones[6]. De plus, la mise en œuvre d'un pipeline RAG est relativement simple : il existe des outils prêts à l'emploi (frameworks, bibliothèques), et les développeurs montrent qu'un prototype de base de RAG peut être assemblé en quelques lignes de code seulement[1]. Ainsi, RAG réduit les coûts globaux de mise en œuvre de l'IA : au lieu d'entraîner un nouveau modèle pour chaque tâche, il suffit de configurer le mécanisme de recherche et de fournir les données appropriées.
Problèmes et limitations du RAG
Malgré ses avantages évidents, la Retrieval-Augmented Generation hérite des limitations à la fois des composants de recherche et des modèles de langage eux-mêmes[9]. Voici les principaux problèmes inhérents aux systèmes RAG :
- Dépendance de la qualité de la recherche. La réponse obtenue ne sera correcte que dans la mesure où les données extraites sont pertinentes et fiables. Si le module de recherche renvoie des documents non pertinents ou contenant des erreurs, le modèle génératif ne pourra pas « corriger » ces faits — il générera une réponse basée sur eux[8]. Ainsi, la qualité et l'actualité de la base de connaissances externe déterminent directement la précision de RAG. Il est nécessaire de mettre à jour régulièrement l'index et d'ajuster les algorithmes de classement pour que les documents fournis restent pertinents.
- Complexité élevée et consommation de ressources. Pour fonctionner, un système RAG nécessite non seulement le LLM lui-même, mais aussi une infrastructure de recherche : stockage et mise à jour d'une grande base de données, indexation, temps d'exécution des requêtes. Tout cela augmente les coûts de calcul et peut réduire la vitesse de réponse par rapport à un modèle de langage seul[8]. Dans le pire des cas, les latences lors de la recherche ou le traitement d'une très grande quantité de données ralentiront le système. En pratique, il faut trouver un équilibre entre la qualité de la réponse et la performance, en optimisant le pipeline (par exemple, en limitant la taille de la base de connaissances ou la profondeur de la recherche pour maintenir un temps de réponse acceptable).
- Exigences en matière de données et de maintenance. Pour un fonctionnement efficace, RAG nécessite des données externes de qualité, structurées et accessibles. Le modèle de recherche peut avoir du mal à trouver des informations utiles si la base de connaissances externe est mal organisée ou contient du bruit[8]. De plus, les données nécessaires ne sont pas toujours ouvertes ou bon marché : les entreprises doivent créer et maintenir leurs propres bases de connaissances (knowledge bases). Cela engendre des coûts supplémentaires et demande des efforts pour maintenir les données à jour (par exemple, ajouter de nouveaux documents, nettoyer les informations obsolètes). Le point faible de RAG est sa dépendance à la maintenance d'une base de connaissances actualisée.
- Persistance de certaines erreurs des LLM. Bien que RAG réduise considérablement le nombre de confabulations, il n'est pas toujours possible d'éliminer complètement les réponses incorrectes[9]. Le modèle génératif peut toujours commettre une erreur logique ou généraliser incorrectement les informations, surtout si le contexte fourni est incomplet ou contradictoire[9]. En fait, RAG déplace l'accent des erreurs : au lieu de faits purement inventés (« hallucinations »), on rencontre plus souvent des erreurs d'intégration des connaissances — par exemple, le modèle peut omettre un fragment important ou lier incorrectement différentes sources entre elles. Par conséquent, dans les applications critiques (médecine, droit), une intervention humaine reste nécessaire pour la vérification et la correction des réponses du système.
Applications du RAG
La méthode de Retrieval-Augmented Generation a trouvé son application dans de nombreux scénarios liés à l'extraction et à l'utilisation des connaissances. Voici les principaux domaines où RAG démontre sa plus grande utilité :
- Systèmes de question-réponse et chatbots. RAG permet de créer des assistants virtuels et des chatbots qui répondent aux questions des utilisateurs avec une grande précision et peuvent fournir des liens vers des sources. Dans le domaine du support client, ces bots consultent la base de connaissances interne de l'entreprise (FAQ, articles d'aide) et fournissent des réponses instantanées aux demandes des clients, réduisant ainsi la charge de travail des employés[8]. Contrairement aux systèmes de FAQ classiques, les bots RAG formulent la réponse dans un langage naturel, tout en la « soutenant » avec des données actuelles et spécifiques au problème de l'utilisateur.
- Médecine et santé. Un modèle génératif, complété par une base de données médicales spécialisées (articles scientifiques, protocoles cliniques, manuels), peut servir d'assistant intelligent pour un médecin ou un patient. Par exemple, le système peut répondre à une question sur un diagnostic rare en trouvant dans la littérature médicale les recherches les plus récentes sur ce sujet[8]. Un avantage important de RAG en médecine est la possibilité de citer des sources primaires (par exemple, les résultats d'essais cliniques), ce qui est essentiel pour la confiance des médecins. De tels systèmes sont utilisés pour l'aide à la décision, la vérification de symptômes, la formation des étudiants en médecine, etc., en fournissant un accès aux connaissances médicales les plus récentes.
- Droit et finance. Dans la pratique juridique et l'analyse financière, la précision et la vérifiabilité de l'information sont particulièrement critiques. Les systèmes RAG peuvent aider les professionnels à trouver rapidement les données nécessaires : par exemple, un avocat peut, avec l'aide du modèle, trouver et citer une décision de justice précédente ou un article de loi pertinent pour une affaire en cours, tandis qu'un analyste financier peut obtenir rapidement des extraits de rapports économiques récents ou de nouvelles du marché[8]. De plus, chaque réponse du modèle peut contenir des liens vers des documents spécifiques (actes réglementaires, rapports, articles), ce qui est conforme aux normes du secteur et facilite le travail manuel ultérieur du spécialiste.
- Recherche scientifique et création de contenu. Les journalistes, les chercheurs et les écrivains peuvent utiliser RAG pour accélérer la recherche de faits et de sources lors de la préparation de leurs matériaux. Par exemple, le modèle peut, sur demande, « rassembler » des informations à partir de plusieurs publications fiables, réduisant ainsi considérablement le temps consacré à la vérification des faits et à la sélection de citations[8]. Les assistants de recherche basés sur RAG extraient automatiquement des références à des travaux pertinents, des données de bases de données ouvertes (par exemple, des statistiques de rapports internationaux) et même des traductions préliminaires, permettant aux auteurs de se concentrer sur la partie analytique de leur travail. De tels outils trouvent leur application dans les médias, le milieu universitaire, la préparation de revues de littérature, etc.
- Connaissances d'entreprise et recherche de documents. Dans de nombreuses organisations, une quantité importante d'informations précieuses est stockée sous forme de documents textuels : règlements, manuels, rapports, correspondance, fichiers journaux. RAG offre une méthode de recherche interactive dans ces données non structurées en utilisant le langage naturel. Un employé peut poser une question (« Que dit la politique de congés pour les employés à distance ? ») – et le modèle trouvera la section pertinente du document interne, la citera et formulera une réponse synthétique[1]. Cela augmente l'efficacité du travail : les nouveaux employés trouvent plus rapidement des réponses à leurs questions, les services de support disposent d'un outil pour une recherche rapide dans la base d'incidents, et la direction a un moyen d'analyser les données textuelles accumulées. De grandes entreprises informatiques intègrent déjà l'approche RAG dans leurs solutions d'entreprise : les technologies de Microsoft, Google, IBM, AWS, etc., intègrent les LLM à la recherche dans les données de l'organisation[1].
Perspectives et recherches futures
La méthode de Retrieval-Augmented Generation se développe activement, et une expansion de ses capacités est attendue dans les années à venir. L'une des directions est le RAG multimodal, où les informations externes peuvent être non seulement du texte, mais aussi des images, de l'audio/vidéo, ou même des données de capteurs. Les expériences montrent le potentiel de la combinaison de modèles de langage avec la recherche dans des bases de données visuelles, ce qui permettrait, par exemple, de répondre à des questions sur le contenu d'images ou de vidéos en s'appuyant sur des descriptions et des textes associés[2]. Une autre direction importante est l'utilisation simultanée de plusieurs sources de connaissances : les futurs systèmes RAG pourront combiner des données de différentes bases (par exemple, Wikipédia, des encyclopédies spécialisées, des notes personnelles de l'utilisateur) et synthétiser des réponses en tenant compte de toutes ces informations hétérogènes[2].
Les chercheurs sont également confrontés à la tâche d'améliorer la fiabilité et la sécurité de RAG. Il est nécessaire de minimiser le risque de propagation de biais et d'erreurs qui peuvent être présents dans les données externes, ainsi que de garantir la cohérence des réponses. L'équipe de développeurs du RAG original a déjà pris des mesures dans ce sens – par exemple, en limitant la base de connaissances initiale aux seuls articles de Wikipédia, une source relativement vérifiée et neutre[2]. À l'avenir, il est prévu de créer des filtres spéciaux et des méthodes de sélection de documents pour que le modèle reçoive un contexte de qualité garantie. De plus, la recherche se concentre sur l'amélioration du mécanisme de recherche lui-même : de nouveaux algorithmes de classement et d'indexation sémantique sont développés, capables de comprendre plus précisément les requêtes et de trouver des informations pertinentes même pour des formulations complexes ou vagues.
Enfin, une intégration plus profonde de RAG avec le processus d'entraînement des modèles de langage présente un grand intérêt. Des approches émergent où les mécanismes de recherche sont utilisés non seulement à l'étape de l'inférence, mais aussi lors du pré-entraînement ou de l'ajustement fin des LLM[10]. Cela pourrait encore améliorer la factualité des modèles et réduire leur dépendance aux connaissances statiquement encodées dans leurs poids. Selon des revues publiées en 2024, la communauté voit de grandes perspectives dans le développement de l'écosystème RAG : de l'optimisation de l'infrastructure (accélération de la recherche, réduction de la consommation de mémoire) à la création de benchmarks standards pour évaluer la qualité des systèmes RAG[3]. Tout cela vise à rendre les modèles génératifs plus précis, universels et sûrs lorsqu'ils travaillent avec des connaissances externes en constante évolution, ce qui constitue une étape clé vers une intelligence artificielle fiable de nouvelle génération.
Liens externes
- Qu'est-ce que la Retrieval-Augmented Generation (RAG) - Blog NVIDIA
- Retrieval-Augmented Generation for Large Language Models: A Survey - Revue scientifique sur arXiv
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks - L'article original sur le RAG
- Qu'est-ce que le RAG ? Cas d'usage, limitations et défis - Blog Bright Data
Bibliographie
- Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
- Karpukhin, V. et al. (2020). Dense Passage Retrieval for Open-Domain Question Answering. arXiv:2004.04906.
- Guu, K. et al. (2020). REALM: Retrieval-Augmented Language Model Pre-Training. arXiv:2002.08909.
- Qu, Y. et al. (2020). RocketQA: An Optimized Training Approach to Dense Passage Retrieval for Open-Domain Question Answering. arXiv:2010.08191.
- Izacard, G.; Grave, E. (2021). Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering. arXiv:2007.01282.
- Borgeaud, S. et al. (2022). Improving Language Models by Retrieving from Trillions of Tokens. arXiv:2112.04426.
- Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
- Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
- Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
- Yao, S. et al. (2022). ReAct: Synergizing Reasoning and Acting in Language Models. arXiv:2210.03629.
- Mialon, G. et al. (2023). Retrieval-Augmented Generation for Large Language Models: A Survey. arXiv:2312.10997.
- Madaan, A. et al. (2023). Self-Refine: Iterative Refinement with Self-Feedback. arXiv:2303.17651.
- Yang, Z. et al. (2023). Re-ViLM: Retrieval-Augmented Visual Language Model for Zero and Few-Shot Image Captioning. arXiv:2302.04858.
- Barnett, S. et al. (2024). Seven Failure Points When Engineering a Retrieval Augmented Generation System. arXiv:2401.05856.
- Wang, Y. et al. (2024). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
- Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.
Références
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 « What Is Retrieval-Augmented Generation aka RAG ». NVIDIA Blogs. [1]
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 « Facebook open-sources RAG, an AI model that retrieves documents to answer questions ». VentureBeat. [2]
- ↑ 3.0 3.1 3.2 3.3 Mialon, Grégoire et al. « Retrieval-Augmented Generation for Large Language Models: A Survey ». arXiv. [3]
- ↑ 4.0 4.1 4.2 « Applied AI Software Engineering: RAG ». Pragmatic Engineer. [4]
- ↑ 5.0 5.1 5.2 Lewis, Patrick et al. « Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks ». arXiv. [5]
- ↑ 6.0 6.1 6.2 6.3 6.4 6.5 6.6 « How RAG Makes LLMs Smarter ». Exxact Blog. [6]
- ↑ « Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks ». arXiv. [7]
- ↑ 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 « What Is RAG? Use Cases, Limitations, and Challenges ». Bright Data Blog. [8]
- ↑ 9.0 9.1 9.2 Lewis, Patrick et al. « Seven Failure Points When Engineering a Retrieval Augmented Generation System ». arXiv. [9]
- ↑ « Генерация, дополненная поиском ». Википедия. [10]