Faire progresser les LLM : exploration des approches RAG natives, avancées et modulaires
Imaginez que vous vous appuyiez sur des manuels écrits il y a des années pour répondre aux questions pressantes d’aujourd’hui. Bien que vous puissiez expliquer des concepts établis ou des événements historiques, vous auriez du mal à fournir des informations exactes sur les développements récents. Ce défi reflète les limites des grands modèles de langage (LLMs), qui s’appuient sur des données d’entraînement statiques devenant rapidement obsolètes. La génération augmentée par récupération (RAG), étudiée dans l’article Retrieval-Augmented Generation for Large Language Models: A Survey, répond à ces limites en intégrant des sources de connaissances externes dans le processus de génération.
Contrairement aux LLM traditionnels, qui s’appuient uniquement sur les connaissances encodées dans les paramètres de leur réseau neuronal, les systèmes RAG récupèrent dynamiquement des informations pertinentes pour améliorer leurs réponses. Cette capacité rend RAG utile pour les tâches à forte intensité de connaissances, telles que la recherche juridique, le diagnostic médical et l’assistance technique en temps réel.
Dans cet article, nous explorerons les composants clés de RAG, son évolution, sa mise en œuvre technique, son intégration avec les bases de données vectorielles, les méthodes d’évaluation et son potentiel pour des applications concrètes.
L’architecture et le processus de RAG
RAG, ou génération augmentée par récupération, introduit un processus qui renforce les capacités des LLM en récupérant et en incorporant des connaissances externes lors de la génération de réponses. Ce processus peut être divisé en trois étapes principales : l’indexation, la récupération et la génération, comme le montre l’image ci-dessous :
Figure : Exemple représentatif du processus RAG appliqué à la réponse aux questions
Figure : Exemple représentatif du processus RAG appliqué à la réponse aux questions.
Explorons ce qui se passe à chaque étape clé de RAG.
Étapes clés de RAG
Phase d’indexation : Les documents sont segmentés en blocs gérables, qui sont ensuite encodés en vecteurs numériques, capturant leur signification sémantique. Ces vecteurs sont stockés dans une base de données vectorielle telle que Milvus, optimisée pour des recherches de similarité efficaces.
Phase de récupération : Le système traite la requête de l’utilisateur en la convertissant en vecteur, une représentation numérique des données, et en recherchant des blocs sémantiquement similaires dans la base de données vectorielle. Cela garantit que les informations les plus pertinentes sont récupérées, même lorsque les mots exacts diffèrent.
Phase de génération : Les informations récupérées sont combinées à la requête pour former une requête améliorée avec du contexte, puis le LLM génère une réponse cohérente et contextuellement exacte. Cette intégration contribue à réduire les erreurs et améliore la fiabilité factuelle de la sortie.
En intégrant ces étapes, les systèmes RAG permettent aux LLM de gérer des tâches complexes et à forte intensité de connaissances avec lesquelles les modèles traditionnels ont des difficultés, comme répondre à des questions sur des événements récents ou des domaines spécialisés. Comprendre ces étapes fournit la base nécessaire pour explorer la manière dont les systèmes RAG ont évolué à travers différents paradigmes.
L’évolution de RAG à travers trois paradigmes
Le développement de RAG a progressé à travers trois paradigmes, chacun répondant à des défis spécifiques tout en s’appuyant sur les avancées antérieures : RAG naïf, RAG avancé et RAG modulaire, comme le montre l’image ci-dessous.
Figure : RAG naïf vs RAG avancé vs RAG modulaire
Figure : RAG naïf vs RAG avancé vs RAG modulaire
RAG naïf : les débuts fondamentaux
Naive RAG a posé les bases des systèmes augmentés par récupération en combinant la récupération de documents avec la génération par modèle de langage. Ce paradigme suit un pipeline simple : les documents sont indexés et segmentés en fragments, les fragments pertinents sont récupérés sur la base de scores de similarité au sein d’une base de données vectorielle, et les informations récupérées sont synthétisées avec la requête de l’utilisateur afin que le LLM produise une réponse. Cette approche a introduit le cadre fondamental Retrieve-Read, qui, bien que révolutionnaire à l’époque, a montré plusieurs limites.
Un défi clé du Naive RAG réside dans la précision de la récupération. Le système récupère souvent des fragments non pertinents ou ne parvient pas à capturer un contexte crucial, ce qui entraîne des sorties incomplètes ou bruitées. De plus, la phase de génération peut souffrir d’hallucinations, lorsque le modèle invente des informations non étayées par le contenu récupéré. En outre, la redondance dans les documents récupérés peut diluer la pertinence de la réponse. Malgré ces problèmes, Naive RAG a posé les fondations de paradigmes plus avancés en démontrant les avantages de la combinaison de la récupération et de la génération.
Advanced RAG : Combler les lacunes
Advanced RAG répond à plusieurs limites du Naive RAG en introduisant des optimisations à la fois dans les phases de pré-récupération et de post-récupération. Dans la phase de pré-récupération, des techniques d’optimisation des requêtes, telles que l’expansion et la réécriture de requêtes, sont utilisées pour améliorer la précision de la récupération. Par exemple, une requête utilisateur comme « Quels sont les derniers développements en informatique quantique ?” pourrait être étendue pour inclure des termes techniques connexes et des synonymes, afin de garantir que la récupération couvre un éventail plus large de documents pertinents.
Dans la phase de post-récupération, Advanced RAG intègre des algorithmes de reranking pour affiner l’ensemble des documents récupérés. Ces algorithmes évaluent la similarité sémantique, l’autorité du document et la pertinence de chaque fragment, en priorisant les informations les plus utiles. Par exemple, lorsqu’il répond à une requête médicale, le système pourrait classer les études récentes évaluées par les pairs plus haut que les sources plus anciennes ou moins faisant autorité. Ce processus d’affinement améliore considérablement la qualité du contexte récupéré, permettant à la phase de génération de produire des réponses plus précises et cohérentes.
Advanced RAG bénéficie également d’une intégration plus sophistiquée du contenu récupéré. En gérant stratégiquement la relation entre récupération et génération, il réduit la probabilité d’hallucination et garantit que les réponses générées sont solidement ancrées dans les preuves récupérées.
Modular RAG : Un cadre flexible et adaptatif
L’évolution la plus récente, Modular RAG, introduit un cadre flexible conçu pour gérer un large éventail de tâches et de contextes. Contrairement à l’approche à pipeline fixe de ses prédécesseurs, Modular RAG emploie des modules spécialisés qui peuvent être reconfigurés dynamiquement en fonction des exigences de la requête. Ces modules comprennent :
Search Module : Étend les capacités de récupération à diverses sources de données, telles que les graphes de connaissances, les bases de données structurées et les moteurs de recherche traditionnels. Par exemple, lors d’une requête sur les finances d’une entreprise, le système pourrait récupérer des données à partir d’états financiers, de dépôts réglementaires et d’articles de presse.
Memory Module : Conserve et gère un ensemble croissant de connaissances contextuelles tout au long des interactions à plusieurs tours. Ce module garantit que le système s’appuie sur les requêtes précédentes et maintient un contexte cohérent au fil des interactions.
Routing Module : Agit comme une couche de prise de décision, déterminant dynamiquement si une requête nécessite une récupération, un résumé ou une combinaison d’approches.
Module Fusion : Le module Fusion répond aux limites des stratégies de recherche traditionnelles en employant des techniques multi-requêtes. Il élargit les requêtes des utilisateurs en perspectives diverses, en utilisant des recherches vectorielles parallèles et un reclassement intelligent afin de découvrir un éventail plus large de connaissances. Par exemple, une requête sur le changement climatique pourrait récupérer des documents couvrant la recherche scientifique, les discussions politiques et les impacts réels, puis les synthétiser en une réponse unifiée.
Module Predict : Conçu pour réduire la redondance et le bruit dans les résultats récupérés ; le module Predict utilise le LLM pour générer directement du contexte. Cela garantit que seules les informations pertinentes sont incluses dans la réponse, rationalisant le processus de récupération et améliorant la qualité globale des réponses générées.
Module Demonstrate : Le module Demonstrate joue un rôle crucial dans l’affinement des réponses en incorporant des exemples ou des explications étape par étape. Cela est particulièrement précieux dans les contextes éducatifs ou de support technique, où les utilisateurs bénéficient de démonstrations détaillées de processus ou de concepts.
L’une des principales innovations de Modular RAG est sa prise en charge de techniques avancées d’augmentation de la récupération. Celles-ci incluent la récupération itérative, récursive et adaptative.
Figure : Types de processus avancés d’augmentation de la récupération : récupération itérative, récursive et adaptative
Figure : Types de processus avancés d’augmentation de la récupération : récupération itérative, récursive et adaptative.
Récupération itérative : Permet plusieurs cycles de récupération et de génération, en affinant le contexte à chaque itération. Par exemple, une requête complexe sur les impacts du changement climatique pourrait commencer par un aperçu général, suivie de récupérations plus ciblées portant sur des régions spécifiques ou des stratégies d’atténuation.
Récupération récursive : Cela décompose les requêtes à multiples facettes en composants plus petits et gérables. Lorsqu’il répond à une question sur les impacts économiques d’événements historiques, le système pourrait d’abord récupérer des informations sur les événements eux-mêmes, puis effectuer des récupérations axées sur leurs conséquences économiques.
Récupération adaptative : Introduit un contrôle dynamique du processus de récupération. Le système évalue la complexité et les exigences de la requête, décidant quand et comment récupérer des informations supplémentaires. Cette flexibilité garantit une utilisation efficace des ressources informatiques tout en maintenant la qualité des réponses.
La conception modulaire de ce paradigme prend également en charge des approches hybrides, comme la combinaison de la récupération et de la synthèse au sein d’une même requête, ou le choix sélectif des composants à activer en fonction des exigences de la tâche. Cette adaptabilité rend Modular RAG particulièrement bien adapté aux applications complexes et intensives en connaissances.
Mise en œuvre et cadre technique
La mise en œuvre de RAG comprend une série de composants techniques qui garantissent son efficacité et son évolutivité dans des scénarios pratiques.
Traitement des documents et embedding
La première étape de RAG consiste à traiter et encoder les documents en représentations vectorielles. Ces vecteurs capturent la signification sémantique du texte et sont stockés dans une base de données pour une récupération efficace. Les systèmes modernes utilisent souvent des approches hybrides qui combinent des Dense Embeddings, pour capturer les relations sémantiques et des Sparse Embeddings pour la précision lexicale.
Voici un exemple de pipeline de traitement des documents :
```
class DocumentProcessor:
def __init__(self):
self.chunker = SemanticChunker(
chunk_size=512,
overlap=50,
respect_boundaries=True
)
self.embedder = DualEmbedder(
dense_model='sentence-transformers/all-mpnet-base-v2',
sparse_model='bm25'
)
def process_document(self, document):
chunks = self.chunker.split_document(document)
embeddings = self.embedder.encode_chunks(chunks)
return chunks, embeddings
```
Ce processus garantit que chaque document est encodé dans un format vectoriel qui peut être stocké dans une base de données vectorielle pour une récupération efficace. La combinaison de caractéristiques sémantiques et lexicales améliore la capacité du système à comprendre et à récupérer des informations contextuellement pertinentes.
Récupération et génération
La phase de récupération utilise des algorithmes de recherche approximative du plus proche voisin (ANN) pour identifier efficacement les segments pertinents. La phase de génération combine le contenu récupéré avec la requête à l’aide de prompts structurés afin de guider la réponse du modèle de langage. Par exemple :
def create_generation_prompt(query, contexts):
prompt = f"""
Question: {query}
Retrieved Information:
{format_contexts(contexts)}
Answer:"""
return prompt
Cette entrée structurée garantit que le modèle de langage dispose de tout le contexte nécessaire pour générer une réponse informative.
Cadre d’évaluation et métriques de qualité
L’évaluation des systèmes RAG nécessite une approche multidimensionnelle qui prend en compte à la fois les composants de récupération et de génération. Un cadre d’évaluation complet garantit que ces systèmes fournissent non seulement des informations exactes, mais qu’ils le font aussi de manière efficace et fiable. Voici les principales métriques utilisées pour évaluer les systèmes RAG :
Pertinence du contexte : Cette métrique mesure dans quelle mesure les documents récupérés correspondent à la requête de l’utilisateur. Une forte pertinence indique que le système a récupéré avec succès des informations directement applicables à la question ou à la tâche. Par exemple, lorsqu’un utilisateur demande « Quelles sont les avancées récentes dans les énergies renouvelables ? », la pertinence du contexte garantirait la récupération de documents traitant spécifiquement des innovations dans les technologies solaires, éoliennes ou de batteries, plutôt que de sujets environnementaux sans rapport.
Fidélité de la réponse : La fidélité évalue si la réponse générée reflète fidèlement le contenu récupéré. Le système doit éviter d’introduire des inexactitudes ou des affirmations non étayées tout en synthétisant les informations récupérées en une réponse cohérente. Par exemple, si un document récupéré indique que l’efficacité des panneaux solaires s’améliorera de 20 % en 2024, la réponse générée ne doit pas généraliser cette amélioration à toutes les technologies d’énergie renouvelable.
Efficacité et latence : Ces métriques évaluent la capacité du système à fournir des réponses rapidement tout en maintenant une efficacité computationnelle. Une faible latence est essentielle pour les applications destinées aux utilisateurs, telles que les chatbots ou les systèmes de support client. Les systèmes RAG modernes s’appuient souvent sur des recherches vectorielles optimisées et l’accélération matérielle pour obtenir des temps de récupération et de réponse rapides.
Scalabilité : La scalabilité mesure la capacité du système à maintenir ses performances lorsqu’il traite des données à grande échelle. Cela inclut la capacité à gérer des milliards d’embeddings de documents tout en garantissant une récupération précise et un traitement efficace des requêtes.
Outre ces métriques, il existe des cadres d’évaluation spécialisés qui offrent des méthodes structurées pour évaluer les systèmes RAG selon diverses dimensions :
Retrieval Generation Benchmark (RGB) :
Le Retrieval Generation Benchmark (RGB) évalue à la fois la récupération et la génération des systèmes RAG. Il met l’accent sur la robustesse au bruit, garantissant que le système peut fonctionner efficacement même lorsque les données récupérées contiennent des ambiguïtés ou des incohérences. Il mesure également le rejet négatif, c’est-à-dire la capacité du système à éviter de générer des réponses lorsque des informations fiables ne sont pas disponibles. Parmi les autres critères figurent la robustesse contrefactuelle et l’intégration des informations récupérées dans des réponses cohérentes. RGB utilise des benchmarks tels que la similarité cosinus et le gain cumulatif actualisé normalisé (NDCG) pour évaluer la précision de la récupération et la qualité des sorties.
RECALL (Évaluation du taux de réapparition) :
RECALL se concentre sur la fidélité des connaissances récupérées dans la réponse générée. La métrique R-Rate mesure la fréquence à laquelle les informations critiques issues des documents récupérés réapparaissent avec exactitude dans la sortie finale. Ce cadre met en évidence si la phase de récupération soutient efficacement le processus de génération. Par exemple, dans une tâche de questions-réponses, RECALL garantit qu’un système RAG intègre avec précision tous les points pertinents des documents récupérés dans la réponse générée.
CRUD (Génération créative, robustesse, compréhension et tâches propres à un domaine)
Le cadre CRUD étend l’évaluation à un éventail plus large de capacités. Il teste la génération créative en évaluant l’efficacité avec laquelle le système synthétise de nouvelles idées à partir des informations récupérées. La robustesse mesure les performances du système dans des conditions difficiles, telles que des requêtes bruitées ou incomplètes. La compréhension se concentre sur la capacité du système à interpréter des requêtes complexes et à y répondre avec précision. Les tâches propres à un domaine évaluent l’efficacité du système dans des domaines spécialisés comme la recherche juridique ou l’analyse financière, garantissant son applicabilité dans divers secteurs.
En évaluant systématiquement ces métriques, nous pouvons identifier les domaines à améliorer, affiner les conceptions des systèmes et garantir que les systèmes RAG répondent aux besoins des applications réelles. Mais gardez à l’esprit que l’efficacité de ces métriques d’évaluation dépend souvent de l’infrastructure de récupération sous-jacente, où les bases de données vectorielles jouent un rôle crucial pour garantir la rapidité et la précision.
RAG et bases de données vectorielles : une puissante synergie
Les bases de données vectorielles jouent un rôle crucial dans le fonctionnement des systèmes RAG, en fournissant l’infrastructure nécessaire au stockage et à la récupération des embeddings à haute dimension des informations contextuelles requises pour les LLM. Ces embeddings capturent la signification sémantique et contextuelle des données non structurées, permettant des recherches de similarité précises qui sous-tendent l’efficacité de la génération augmentée par récupération.
Milvus est une base de données vectorielle open-source, capable de gérer des données vectorielles à l’échelle de milliards avec une latence ultra-faible. Ses capacités correspondent étroitement aux besoins des systèmes RAG, ce qui en fait un choix idéal pour les développeurs qui créent des systèmes RAG.
Scalabilité : Milvus est conçu pour gérer des milliards d’embeddings, ce qui le rend adapté aux applications à l’échelle de l’entreprise, comme les systèmes de recommandation e-commerce ou les réseaux mondiaux de support client.
Indexation avancée : Milvus prend en charge plus de 10 techniques d’indexation, notamment IVF et HNSW, permettant aux développeurs de choisir la méthode la plus appropriée en fonction de leurs exigences de performance et de latence.
Recherche hybride : En combinant des embeddings denses et clairsemés, Milvus garantit que les résultats récupérés sont à la fois sémantiquement et lexicalement exacts, améliorant ainsi la pertinence globale des réponses du système.
Intégration transparente : Milvus s’intègre facilement à des frameworks populaires comme LangChain et LlamaIndex, rationalisant le développement de pipelines RAG complexes.
Orientations futures pour les systèmes RAG
Plusieurs pistes de recherche prometteuses ont émergé à mesure que la technologie de génération augmentée par récupération (RAG) évolue. Ces avancées visent à améliorer la précision de la récupération, à renforcer l’adaptabilité et à élargir le champ d’application des systèmes RAG pour diverses applications.
Récupération adaptative contextuelle avancée
Les futurs systèmes RAG emploieront des stratégies de récupération avancées qui s’ajustent dynamiquement en fonction de l’intention de l’utilisateur et de la complexité de la requête. Ces systèmes optimiseront les recherches pour des questions complexes et à plusieurs niveaux en affinant en temps réel la profondeur et l’étendue de la recherche, ce qui permettra d’obtenir des résultats plus précis dans des domaines tels que le dépannage technique ou la conformité réglementaire.
Systèmes itératifs pilotés par le retour d’information
Les systèmes RAG intégreront des boucles de retour d’information qui permettront aux sorties générées de guider les récupérations ultérieures. Cet affinage itératif améliorera la précision, en particulier pour les requêtes à plusieurs étapes ou ambiguës. Par exemple, si une réponse initiale manque de détails, le système ajustera sa requête pour récupérer des informations supplémentaires.
Récupération temporelle et sensible au contexte
La prochaine génération de systèmes RAG intégrera le raisonnement temporel, permettant des réponses qui tiennent compte des changements au fil du temps. Cela sera essentiel pour des applications comme l’analyse financière, où la compréhension des tendances sur plusieurs trimestres ou années offre une vue plus complète que des données ponctuelles.
Adaptabilité interlinguistique et culturelle
Les futurs systèmes RAG traiteront plus efficacement les requêtes multilingues et interculturelles en utilisant des embeddings guidés par le contexte qui reflètent les nuances sémantiques et les différences culturelles. Ces systèmes permettront des applications mondiales fluides, telles que la récupération et la synthèse de connaissances entre langues tout en maintenant l’exactitude et la pertinence.
Conclusion
La génération augmentée par récupération (RAG) combine les forces des grands modèles de langage avec les systèmes de récupération, répondant à des défis tels que les connaissances statiques et les inexactitudes. En intégrant la récupération à la génération, les systèmes RAG fournissent des sorties plus précises et sensibles au contexte, ce qui les rend efficaces pour les applications nécessitant des connaissances actuelles ou spécialisées.
Les développements futurs dans des domaines tels que la récupération dynamique, l’affinage piloté par le retour d’information et les capacités interlinguistiques amélioreront leur fonctionnalité. Avec des outils comme Milvus prenant en charge une intégration efficace des bases de données vectorielles, les systèmes RAG deviennent de plus en plus pratiques pour divers secteurs tels que la santé, le support client et l’éducation.
À mesure que la recherche progresse, les systèmes RAG continueront d’améliorer leur capacité à fournir des connaissances fiables, efficaces et sensibles au contexte, permettant une utilisation plus large dans des scénarios réels.
Ressources complémentaires
Continuer à lire

A Few Notes from Databricks Data + AI Summit 2026: Why the Data Layer Matters Again
James Luan shares notes from Databricks Data + AI Summit 2026 on why production AI is pushing the data layer back to the center of infrastructure.

Zilliz Cloud On-Demand Compute: Pay Only for What You Use
The customer case behind Zilliz Cloud On-Demand: how a $10K vector search bill came down to under $500, and the engineering changes that made it possible.

Optimizing Embedding Model Selection with TDA Clustering: A Strategic Guide for Vector Databases
Discover how Topological Data Analysis (TDA) reveals hidden embedding model weaknesses and helps optimize vector database performance.


