Le Retrieval Augmented Generation (RAG) est une technique en traitement du langage naturel (NLP) qui combine l’extraction d’informations à partir de sources externes avec la génération de texte, pour produire des réponses plus précises et complètes.
Cet article vise à offrir une vue d’ensemble du processus de RAG, en décrivant en détail la chaîne d’ingestion des documents sources et les différents étages du modèle.
Chaîne d’ingestion du RAG
La première étape du processus de RAG est l’ingestion et le traitement des documents sources. Cette étape consiste à collecter et transformer les données textuelles provenant de diverses sources externes.

Documents sources
Les documents sources représentent l’ensemble des textes, articles, rapports et autres types de documents qui constituent la base de connaissance utilisée dans le processus de RAG. Ils peuvent être dans divers formats, tel que PDF, DOC, Google Docs, et stockés dans des emplacements spécifiques, que ce soit localement sur un fichier ou en ligne via une URL.
Document
Un document désigne le contenu textuel extrait des documents sources, défini et structuré par ces sources. Il est enrichi de métadonnées, qui fournissent des informations supplémentaires et contextuelles sur le texte, facilitant ainsi son traitement et son exploitation par le système de RAG.
Métadonnées
Les métadonnées sont des données associées aux textes, documents et fragments, fournissant des informations contextuelles ou descriptives supplémentaires. Elles incluent des éléments tels que l’URI, URL, SourceId, qui pointent vers la source originale du texte, et d’autres informations contextuelles sous forme de paires clé/valeur.
Fragment
Un fragment est une portion de texte d’un document, pouvant être un paragraphe, une phrase, ou un bloc de mots spécifique. Chaque fragment est associé à des métadonnées et est rendu indexable à l’aide d’embeddings ou de mots-clés, permettant une recherche et une récupération efficaces.
Corpus
Le corpus englobe l’ensemble des documents et de leurs fragments correspondants. C’est la collection complète sur laquelle le modèle de RAG effectue ses recherches pour trouver les informations pertinentes répondant aux questions posées.
Connector
Le connector est un composant conçu pour automatiser la récupération des documents sources à partir de différentes origines. Que les données proviennent de bases de données internes ou de sites web, le connector facilite l’acquisition et l’intégration de ces informations dans le corpus utilisé par le RAG.
Reader
Le reader est le composant chargé de lire les documents sources pour les transformer en documents structurés, comprenant à la fois le texte et les métadonnées associées. Cette transformation est essentielle pour préparer les données à leur exploitation ultérieure dans le processus de RAG.
Splitter
Le splitter est l’outil qui découpe un document en fragments plus petits, facilitant ainsi l’indexation et la recherche d’informations spécifiques au sein du document. Cette étape est cruciale pour améliorer l’efficacité du processus de retrieval.
Overlap
L’overlap désigne le texte redondant ou chevauchant entre deux fragments consécutifs. Identifier et gérer l’overlap est important pour éviter la perte d’information scindée sur deux fragments. Il doit être cohérent avec la taille retenue pour les fragments.
Docstore
Le docstore est le système de stockage qui conserve les textes et les métadonnées des documents et des fragments. Il sert de base de données consultable pour le système de RAG, permettant une récupération rapide des informations nécessaires.
Vectorstore
Le vectorstore stocke les embeddings des fragments de texte. Ces embeddings, représentations vectorielles du texte, permettent de réaliser des opérations de recherche et de comparaison efficaces dans l’espace sémantique, facilitant le processus de matching entre les questions et les contenus des documents.
Etages du RAG
Le RAG est composé de plusieurs étages qui cohabitent de manière modulaire pour générer une réponse finale à partir d’une requête donnée. Chaque étage joue un rôle distinct dans le processus de génération, en transformant et en enrichissant l’information à différents niveaux.

Pre-retrieval
La phase de pre-retrieval constitue la première étape du processus de RAG, où la question posée est normalisée et classifiée pour préparer le terrain à une recherche efficace dans le corpus.
Retrieval
La phase de retrieval est le cœur du processus de RAG, où le système identifie les fragments de texte dans le corpus qui correspondent le mieux à la question posée, en utilisant les informations contenues dans les vectorstores et docstores.
Post-retrieval
Après la récupération des fragments pertinents, la phase de post-retrieval implique le traitement de ces fragments, incluant le filtrage basé sur les métadonnées ou le reranking pour affiner les résultats obtenus.
Reranking
Le reranking est le processus de réévaluation et de réordonnancement des fragments récupérés selon leur pertinence par rapport à la question posée, permettant de sélectionner les informations les plus pertinentes pour la génération de réponse.
Answer Generation
La génération de réponse est l’étape finale du processus de RAG, où le système synthétise et combine les fragments de texte sélectionnés pour produire une réponse cohérente et informative à la question posée.
Evaluation
L’évaluation mesure la performance du système RAG, en examinant la qualité des réponses générées à travers des scores de synthèse et d’analyse des fragments, afin d’assurer l’exactitude et la pertinence des informations fournies.
En conclusion, cet article présente une introduction détaillée au processus de RAG, en soulignant l’importance de la chaîne d’ingestion des documents sources et des différents étages du modèle. La compréhension de ces composants est essentielle pour exploiter pleinement le potentiel du RAG et pour développer des applications NLP plus performantes.