Un diagramme explique l'ensemble de la construction d'un système RAG.
Ce diagramme décrit clairement le plan architectural d'un système moderne et sophistiqué de réponse aux questions (QA) ou de génération assistée par récupération (RAG). Il commence par une question posée par un utilisateur et se poursuit jusqu'à la génération finale d'une réponse, en montrant en détail les étapes clés et les choix technologiques entre les deux. Nous pouvons décomposer l'ensemble du processus en plusieurs étapes fondamentales :

1、Query Construction (Construction de la requête)
C'est la première étape de l'interaction de l'utilisateur avec le système et le point de départ pour que le système comprenne l'intention de l'utilisateur. L'image montre comment les requêtes sont construites pour différents types de bases de données :
a. Bases de données relationnelles : pour les bases de données relationnelles, une manière courante de construire des requêtes est la conversion de texte en SQL, ce qui signifie que le système doit traduire les questions en langage naturel de l'utilisateur en énoncés de requête SQL structurés. Cela implique généralement des techniques de compréhension du langage naturel (NLU) et la capacité de faire correspondre la sémantique du langage naturel à la syntaxe SQL et au schéma de la base de données. La figure mentionne également SQL w/ PGVector, qui peut être utilisé en conjonction avec des bases de données vectorielles (PGVector est une extension vectorielle de PostgreSQL) pour améliorer les requêtes SQL, par exemple pour effectuer des recherches de similarité sémantique, et ainsi être plus flexible dans le traitement des requêtes floues ou sémantisées des utilisateurs.
b. Bases de données graphiques : pour les bases de données graphiques, la méthode de construction de requêtes correspondante est Text-to-Cypher, un langage de requête pour la base de données graphiques Neo4j, similaire à SQL mais mieux adapté aux requêtes structurées en graphe. La conversion de texte en langage cypher nécessite une compréhension de la structure des bases de données de graphes et des propriétés des langages d'interrogation de graphes.
c. base de données vectorielles (Bases de données vectorielles) : Pour les bases de données vectorielles, l'outil Self-query retriever est illustré, ce qui signifie que le système peut générer automatiquement des filtres de métadonnées sur la base de la question de l'utilisateur et interroger directement la base de données vectorielles. Les bases de données vectorielles stockent généralement des représentations vectorielles de textes ou de données, qui sont récupérées par recherche de similarité. La clé de l'outil Self-query retriever est la capacité d'extraire des informations structurées pour le filtrage à partir de questions en langage naturel et de les combiner avec la recherche de similarité vectorielle pour obtenir une récupération plus précise.
Résumé de la phase de construction des requêtes : l'objectif principal de cette phase est de transformer les questions posées par l'utilisateur en langage naturel en énoncés de requête qui peuvent être compris et exécutés par le système, avec différents langages et techniques de requête pour différents types de magasins de données (relationnel, graphes, vecteurs). La prise en charge par le système des données multimodales et des modalités d'interrogation est démontrée.
2、Traduction des requêtes (Query Translation)
Après la construction de la requête, il est parfois nécessaire de traiter et d'optimiser la requête originale de l'utilisateur afin de retrouver et de comprendre l'intention de l'utilisateur de manière plus efficace. Deux stratégies principales de traduction des requêtes sont illustrées à la Fig :
a. Décomposition de la requête : les questions complexes peuvent être décomposées en sous-questions plus petites et plus faciles à gérer (question(s) secondaire(s) ou de retour). Pour ce faire, on peut utiliser des techniques telles que la multi-question, le retour en arrière, le RAG-Fusion. - L'interrogation multiple peut consister à générer plusieurs requêtes différentes afin d'explorer la question sous différents angles. - Le retour en arrière peut consister à répondre d'abord à des questions plus élémentaires et préalables, puis à résoudre progressivement la question complexe finale. - RAG-Fusion peut se référer à la combinaison de la génération améliorée par la recherche avec des techniques de fusion de requêtes pour mieux comprendre l'intention de l'utilisateur par le biais de la recherche et de la fusion multiples. - L'idée centrale est de décomposer ou de reformuler la question d'entrée, c'est-à-dire de décomposer ou de reformuler la question d'entrée pour réduire la difficulté de traiter des problèmes complexes.
b. Pseudo-documents : HyDE (Hypothetical Document Embeddings) est une méthode typique pour générer des pseudo-documents. L'idée est de laisser le modèle générer un "document hypothétique" (pseudo-document) sur la base de la question. Ce pseudo-document n'a pas besoin d'être réel, mais il doit contenir la compréhension initiale du modèle et sa prédiction de la réponse à la question. Le pseudo-document est ensuite représenté sous forme de vecteur avec le document réel, et une recherche de similarité est effectuée. HyDE vise à aider le chercheur de vecteur à mieux trouver le document réel pertinent en introduisant les connaissances a priori du modèle.
Résumé de la phase de traduction de la requête : cette phase vise à optimiser la requête de l'utilisateur afin de la rendre plus adaptée au processus de recherche ultérieur. La complexité peut être gérée par la décomposition de la requête, et la précision de la recherche vectorielle peut être améliorée par la génération de pseudo-documents, reflétant la flexibilité et l'intelligence du système dans la compréhension et le traitement de l'intention de l'utilisateur.
3. le routage
Lorsque le système reçoit une requête traduite, il doit décider vers quelle(s) source(s) de données acheminer la requête pour la retrouver. Deux stratégies de routage sont illustrées à la Fig :
a. Routage logique : laisser le LLM choisir la base de données en fonction de la question, ce qui signifie utiliser le modèle du grand langage (LLM) pour déterminer quelle base de données doit être interrogée en fonction du contenu et des caractéristiques de la question. Par exemple, si la question porte sur des entités et des relations liées à des graphes de connaissances, elle sera acheminée vers une base de données de graphes ; si la question porte sur des requêtes de données structurées, elle sera acheminée vers une base de données relationnelle ; si la question est plus orientée vers la recherche sémantique, elle sera acheminée vers une base de données vectorielle.
b. Routage sémantique : intégration de la question et choix de l'invite en fonction de la similarité. Cette approche intègre d'abord la question, puis choisit une invite différente en fonction de la similarité des vecteurs de question (Invite #1, Invite #2). Prompt #1, Prompt #2). Cela signifie que pour différents types de questions ou d'intentions, le système prédéfinit différentes stratégies d'invite et sélectionne automatiquement l'invite la plus appropriée en fonction de la similarité sémantique pour guider le processus de recherche ou de génération ultérieur.
Résumé de la phase de routage : la phase de routage est une étape clé dans la prise de décision intelligente du système, qui sélectionne la source de données et la stratégie de traitement les plus appropriées en fonction du contenu et des caractéristiques du problème, reflétant l'intelligence du système dans la gestion des ressources et l'ordonnancement des tâches.
4、Indexation (Indexation)
Pour une recherche efficace, les données doivent être pré-indexées. La zone bleue de l'image illustre diverses stratégies d'optimisation de l'indexation :
a. Optimisation des morceaux : lorsqu'il s'agit de longs documents, il est souvent nécessaire de diviser le document en morceaux, puis d'indexer ces derniers. L'optimisation des morceaux se concentre sur la manière de procéder plus efficacement.
- Fractionnement par caractères, sections, délimiteurs sémantiques : différentes stratégies de découpage, par exemple en fonction du nombre de caractères, de sections ou de délimiteurs sémantiques.
- Semantic Splitter : souligne l'importance du découpage sémantique, optimise la taille des morceaux utilisés pour l'intégration, rend chaque morceau plus complet et indépendant sur le plan sémantique et améliore ainsi la qualité des résultats de l'intégration et de la recherche.
b. Indexation multi-représentation : Summary -> {} -> Relational DB / Vectorstore Cela signifie qu'il est possible de créer plusieurs représentations d'un document pour l'indexation, par exemple, en plus du bloc de texte original du document, il est également possible de générer un résumé du document ( Cela signifie qu'il est possible de créer plusieurs représentations du document à des fins d'indexation, par exemple, en plus du bloc de texte original du document, un résumé du document peut être généré et indexé. Cela permet d'utiliser différentes représentations pour répondre à différentes exigences en matière d'interrogation. La figure implique que le résumé peut être stocké dans une base de données relationnelle ou une base de données vectorielle.
- Document parent, Dense X : peut se référer à l'indexation d'un document avec des informations sur son document parent, ainsi qu'à la représentation d'un document à l'aide d'une représentation dense (Dense X), qui peut se référer à une représentation vectorielle dense.
- Convertir des documents en documents compacts récupération (par exemple, un résumé) : l'accent est mis sur la conversion des documents en unités de recherche plus compactes, telles que les résumés, afin d'améliorer l'efficacité de la recherche.
c. Embeddings spécialisés : réglage fin, CoLBERT, [0, 1, ...] -> Vectorstore. Cela signifie que des modèles d'intégration spécialement formés ou affinés, tels que CoLBERT, peuvent être utilisés pour générer des représentations vectorielles de documents et stocker ces vecteurs dans une base de données vectorielle.
- Modèles d'intégration spécifiques à un domaine et/ou avancés : met l'accent sur la possibilité d'utiliser des modèles d'intégration spécifiques à un domaine ou plus avancés afin d'obtenir des représentations sémantiques plus précises et d'améliorer la recherche.
d. Résumés d'indexation hiérarchique : Splits -> cluser -> cluser -> ... -> RAPTOR -> Graph DB. -> RAPTOR (qui peut se référer à une méthode de résumé et d'indexation hiérarchique de documents) construit une structure hiérarchique de résumés de documents au moyen de plusieurs couches de grappes.
- Arbre de résumé de documents à différents niveaux d'abstraction : L'accent est mis sur RAPTOR construit un arbre de résumés de documents à plusieurs niveaux d'abstraction.
- Stockée dans une base de données graphique (Graph DB), la base de données graphique est utilisée pour stocker et gérer cette structure d'index hiérarchique, facilitant ainsi la recherche et la navigation à plusieurs niveaux.
Résumé de la phase d'indexation : la phase d'indexation consiste à organiser et à représenter les données de manière efficace et efficiente en vue d'une recherche rapide et précise. De l'optimisation du découpage, des représentations multiples, de l'intégration dédiée aux résumés d'index hiérarchiques, elle reflète la diversité et la sophistication des stratégies d'indexation.
5. récupération
Sur la base des sources de données et des index acheminés, le système effectue le processus de recherche proprement dit. Les zones vertes de l'image illustrent les deux principaux aspects de la recherche :
a. Classement : Question -> {} -> Pertinence -> Les documents récupérés doivent être classés en fonction de leur pertinence par rapport à la requête.
- Re-Rank, RankGPT, RAG-Fusion : certaines techniques de classement avancées sont mentionnées, telles que Re-Rank (reclassement, qui effectue un classement plus fin au-dessus des résultats de recherche initiaux), RankGPT (classement avec un grand modèle tel que GPT) et RAG-Fusion (qui fusionne le classement avec la génération d'amélioration de la recherche).
- Classer ou filtrer / compresser les documents en fonction de leur pertinence : le but du classement peut être soit de classer directement et de renvoyer les documents les plus pertinents, soit de filtrer ou de compresser les documents en fonction de leur pertinence en vue d'un traitement ultérieur. - CRAG (Context-Relevant Answer Generation) apparaît également dans la session de tri, le processus de tri doit également prendre en compte les informations contextuelles.
b. Récupération active : {} -> CRAG -> Réponse. Récupérer et / ou récupérer à partir de nouvelles sources de données (par exemple, le web) si les documents récupérés ne sont pas pertinents. L'extraction active signifie que le système peut activement récupérer (ré-aborder) ou extraire de nouvelles sources de données (par exemple, le web) si les résultats de l'extraction initiale ne sont pas satisfaisants.
- CRAG apparaît également dans la recherche active, ce qui souligne encore l'importance de la pertinence contextuelle et de la recherche itérative.
- Des techniques telles que Self-RAG, RRR (Retrieval-Rewrite-Read) peuvent également s'appliquer à la recherche active, visant à optimiser en permanence les résultats de la recherche et la qualité des réponses grâce à un processus itératif de recherche et de génération.
Résumé de la phase de recherche : l'objectif principal de la phase de recherche est de trouver le document ou l'information le plus pertinent par rapport à la requête de l'utilisateur. Du tri à la recherche active, le système reflète le raffinement et l'intelligence de la stratégie de recherche et s'efforce de fournir des résultats de recherche de haute qualité.
6. la génération
Enfin, le système doit générer des réponses sur la base des documents récupérés et les présenter à l'utilisateur. La zone violette de l'image montre la technologie de base dans la phase de génération :
a. Recherche active (réapparition) : {} -> Réponse -> Self-RAG, RRR -> Réécriture des questions et/ou récupération des documents. la recherche active joue également un rôle important dans la phase de génération.
- Self-RAG (Self-Retrieval Augmented Generation) est une méthode de génération augmentée par auto-récupération qui permet à un modèle génératif d'effectuer une récupération active si nécessaire au cours du processus de génération d'une réponse et d'ajuster la stratégie de génération en fonction des résultats de la récupération. - RRR (Retrieval-Rewrite-Read) est un processus de génération itératif qui peut inclure des étapes telles que la récupération, la réécriture de la question et la lecture du document afin d'optimiser la qualité de la réponse à travers de multiples itérations.
- Utiliser la qualité de la génération pour guider la réécriture des questions et/ou la récupération des documents : il est souligné que la qualité des réponses générées peut être utilisée pour guider la réécriture des questions et la récupération des documents, formant ainsi un processus d'optimisation en boucle fermée.
Résumé de la phase de génération : la phase de génération est une étape clé dans la production finale des réponses. Les technologies de recherche active et de génération améliorée par la recherche automatique (Self-RAG, RRR) rendent le processus de génération plus intelligent et contrôlable, et peuvent générer des réponses plus précises et plus conviviales.
Résumé général : ce diagramme montre clairement la complexité et la granularité d'un système RAG moderne. Il couvre l'ensemble du processus, depuis la compréhension de la requête, l'acheminement des données, l'optimisation de l'indexation, la recherche efficace jusqu'à la génération de la réponse finale, et montre les nombreuses techniques et stratégies avancées qui peuvent être employées à chaque étape.
Principaux faits marquants et tendances.
- Prise en charge de plusieurs bases de données : le système prend en charge les bases de données relationnelles, les bases de données graphiques et les bases de données vectorielles, ce qui permet de gérer différents types de données et d'exigences en matière d'interrogation.
- Optimisation des requêtes et traduction : améliorer la capacité du système à traiter des requêtes complexes et sémantiques grâce à des techniques telles que la décomposition des requêtes et la génération de pseudo-documents.
- Routage intelligent : décisions de routage utilisant LLM et la similarité sémantique pour la sélection intelligente des sources de données et la programmation des tâches.
- Diversité de l'optimisation de l'indexation : du regroupement, de la représentation multiple, de l'intégration dédiée à l'indexation hiérarchique, reflétant la diversité des stratégies d'indexation et d'optimisation profonde.
- Raffinement de la recherche et proactivité : des algorithmes de tri à la recherche proactive, le système s'efforce de fournir des résultats de recherche pertinents et de haute qualité.
- Intégration profonde de la génération et de la recherche : Self-RAG, RRR et d'autres techniques montrent que la phase de génération n'est plus une simple jonction d'informations, mais une intégration profonde avec le processus de recherche, formant une boucle fermée d'optimisation itérative.
Ce diagramme représente une tendance importante dans le développement des systèmes RAG actuels, c'est-à-dire qu'il met davantage l'accent sur l'intelligence, la modularité et l'évolutivité du système. Le futur système RAG ne se limitera pas à une simple "extraction + génération", mais évoluera dans une direction plus intelligente, capable de mieux comprendre l'intention de l'utilisateur, d'utiliser plus efficacement les données multimodales, d'extraire et de générer avec plus de précision et, en fin de compte, d'offrir à l'utilisateur une expérience meilleure et plus personnalisée. Ce diagramme fournit un cadre de référence très utile pour comprendre et construire la prochaine génération de systèmes RAG.
Références :
[1] GitHub : https://github.com/bRAGAI/bRAG-langchain/
[2] https://bragai.dev/
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...