Principes et pratiques de la Génération Augmentée de Récupération (GAR) Guide de construction de la fondation (Traduction)

Malgré la publication continue de modèles toujours plus grands et plus intelligents, les grands modèles de langage génératifs (LLM) de dernière génération souffrent toujours d'un problème majeur : ils sont peu performants lorsqu'ils traitent des tâches qui requièrent une certaine expertise. Ce manque d'expertise peut conduire à des problèmes tels que les phénomènes fantômes, où les modèles génèrent des informations inexactes ou fabriquées.Génération d'augmentation de la recherche (RAG)Ce problème est atténué en donnant au modèle un accès en temps réel à des données spécifiques au domaine provenant de sources externes, ce qui améliore sa capacité à fournir des réponses précises et détaillées.
Malgré ces limites, les modèles génératifs restent des outils très influents qui peuvent automatiser des tâches quotidiennes, nous assister dans notre travail de tous les jours et nous aider à interagir avec les données d'une nouvelle manière. Comment tirer parti de leurs vastes connaissances tout en les mettant au service de nos scénarios d'utilisation spécifiques ? La réponse réside dans la fourniture de données pertinentes pour la modélisation générative.
Dans cet article, nous examinerons en profondeur la génération augmentée par récupération (RAG), un cadre qui améliore les capacités des modèles en leur permettant de se référer à des données externes. Nous explorerons les limites de la modélisation générative qui contribuent à l'échec de la recherche de données. RAG Nous expliquerons le fonctionnement de RAG et analyserons en détail l'architecture du pipeline RAG. En outre, nous fournirons quelques cas pratiques d'utilisation de RAG, proposerons des méthodes spécifiques de mise en œuvre de RAG, introduirons quelques techniques avancées de RAG et discuterons des méthodes d'évaluation de RAG.
LLM est un terme général pour les modèles de langage formés sur de grands ensembles de données qui sont capables d'effectuer une variété de tâches liées au texte et au langage. Les LLM génératifs sont des modèles capables de générer un nouveau texte en réponse à des invites de l'utilisateur, tels que ceux utilisés dans les chatbots, souvent appelésmodèle génératifLe LLM est appelé LLM pour l'encodage de données textuelles dans l'espace sémantique. Les LLM qui encodent des données textuelles dans l'espace sémantique sont alors appelésIntégration de modèles. Par conséquent, dans le présent document, nous utilisons les termes modèles génératifs et modèles intégrés pour faire la distinction entre ces deux types de modèles.
Limites de la modélisation générative
Les modèles génératifs sont formés pour acquérir des connaissances générales en s'entraînant sur un grand nombre d'ensembles de données, y compris (mais sans s'y limiter) les messages des médias sociaux, les livres, les articles universitaires et les pages web explorées. Par conséquent, ces modèles peuvent générer des textes semblables à ceux des humains, répondre à une variété de questions et contribuer à des tâches telles que la réponse, le résumé et l'écriture créative.
Toutefois, les ensembles de données d'entraînement pour les modèles génératifs sont inévitablement incomplets, car ils manquent d'informations sur les sujets de niche et les nouveaux développements après la date de clôture de l'ensemble de données. Les modèles génératifs n'ont pas non plus accès aux données exclusives contenues dans les bases de données ou les référentiels internes. En outre, lorsque ces modèles ne connaissent pas la réponse à une question, ils ont tendance à deviner, et cette supposition est parfois inexacte. Ce phénomène de génération d'informations incorrectes ou fictives est connu sous le nom d'hallucination et peut conduire à une atteinte réelle à la réputation dans les applications d'IA orientées vers le client.
La clé pour améliorer les performances des modèles génératifs sur des tâches spécialisées et réduire les illusions est de fournir des informations supplémentaires qui ne sont pas présentes dans les données d'apprentissage. C'est là que RAG intervient.
Qu'est-ce que la Génération Augmentée de Récupération (GAR) ?
Génération d'augmentation de la recherche (RAG) est un moyen d'extraire des données supplémentaires pertinentes pour la tâche en cours en les récupérant à partir d'une source de données externe à l'adresserenforcerUn cadre pour la modélisation générative du macrolangage des connaissances généralistes.
Les sources de données externes peuvent inclure des bases de données, des fichiers et des référentiels internes, ainsi que des données accessibles au public telles que des articles de presse, des sites web ou d'autres contenus en ligne. L'accès à ces données permet au modèle de fournir des réponses plus factuelles et de citer des sources dans ses réponses, évitant ainsi les suppositions lorsque l'information ne peut être trouvée dans l'ensemble de données d'apprentissage initial du modèle.
Les cas d'utilisation courants du RAG comprennent la recherche d'informations actualisées, l'accès à des connaissances spécialisées et la réponse à des questions complexes fondées sur des données.
RAG Architecture
Les éléments de base de la canalisation RAG sont les suivantstrois composantesCes composants sont les suivants : sources de connaissances externes, modèles d'invite et modèles génératifs. Grâce à ces composants, les grandes applications basées sur des modèles linguistiques peuvent générer des réponses plus précises en utilisant des données précieuses spécifiques à la tâche.

Sources de connaissances externes
Sans le soutien de connaissances externes, les modèles génératifs ne peuvent être fondés que sur leurs propres connaissances.Connaissances paramétriquesgénérer des réponses, qui sont apprises au cours de la phase d'apprentissage du modèle. Avec RAG, nous pouvons intégrer dans le pipeline les éléments suivantsSources de connaissances externeségalement connu sous le nom deConnaissances non paramétriques.
Les sources de données externes sont généralement spécifiques à une tâche et dépassent souvent la portée des données d'apprentissage originales du modèle ou de ses connaissances paramétrées. En outre, elles sont généralement stockées dans des bases de données vectorielles, dont le sujet et le format peuvent varier.
Les sources de données externes courantes comprennent les bases de données internes des entreprises, les lois, les réglementations et les documents, la littérature médicale et scientifique et les pages web explorées. Les assistants personnels d'IA, tels que Copilot de Microsoft, utilisent un large éventail de sources de données personnelles, y compris les courriels, les documents et les messages instantanés, pour fournir des réponses personnalisées et automatiser les tâches plus efficacement.
Modèles de conseils
Les invites sont les outils que nous utilisons pour communiquer des demandes au modèle de génération. Les invites peuvent contenir plusieurs éléments, mais comprennent généralement des requêtes, des directives et un contexte pour guider le modèle dans la génération de réponses pertinentes.
Modèles de conseils Il s'agit d'une méthode structurée de génération de messages-guides normalisés dans laquelle il est possible d'insérer diverses requêtes et divers contextes. Dans le processus RAG (Retrieval Augmented Generation), des données pertinentes sont extraites de sources de données externes et insérées dans les modèles de messages-guides afin d'enrichir ces derniers. Fondamentalement, le modèle d'invite sert de pont entre les données externes et le modèle, en fournissant des informations contextuelles pertinentes que le modèle peut utiliser dans son raisonnement pour générer des réponses précises.
prompt_template = "上下文信息如下。\n"
"---------------------\n"
"{context_str}\n"
"---------------------\n"
"根据上下文信息而不是先前的知识,回答问题。\n"
"问题: {query_str}\n"
"回答: "
Modélisation générative des grandes langues (LLM)
Le dernier composant du RAG est le modèle génératif à grand langage (LLM), également appelé modèle génératif, qui est utilisé pour générer la réponse finale à la requête de l'utilisateur. Des invites améliorées, enrichies d'informations fournies par une base de connaissances externe, sont ensuite envoyées au modèle, qui génère des réponses combinant les connaissances internes et les données nouvellement extraites.
Maintenant que nous avons discuté de l'architecture de RAG et de ses principaux composants, voyons comment ils s'intègrent dans un flux de travail RAG.
Comment fonctionne le RAG ?
RAG est un cadre à plusieurs étapes comprenant deux phases. Tout d'abord, dans la phase d'ingestion, les connaissances externes sont prétraitées et préparées pour la recherche. Ensuite, dans la phase d'inférence, le modèle extrait les données pertinentes de la base de connaissances externe, les complète avec les invites de l'utilisateur et génère des réponses. Examinons maintenant chaque phase plus en détail.
Étape 1 : Ingestion
Tout d'abord, les sources de connaissances externes doivent être préparées. En d'autres termes, les données externes doivent être nettoyées et transformées dans un format que le modèle peut comprendre. C'est ce qu'on appelle phase d'absorption. Au cours du processus d'ingestion, le texte ou les données d'image passent par un processus connu sous le nom de quantitatif Le processus de conversion du format d'origine en format intégration. Une fois générés, les embeddings doivent être stockés d'une manière qui permette de les retrouver facilement à une date ultérieure. Le plus souvent, ces encastrements sont stockés dans des bases de données vectorielles afin que les informations puissent être récupérées rapidement et efficacement pour les tâches ultérieures.

Étape 2 : Raisonnement
Une fois que les données externes sont encodées et stockées dans la base de données du déduction la phase de récupération, au cours de laquelle le modèle génère des réponses ou répond à des questions. Le raisonnement est divisé en trois étapes : la recherche, l'amélioration et la génération.

récupérer (données)
La phase de raisonnement commence par l'extraction, où les données sont extraites d'une source de connaissances externe en réponse à une requête de l'utilisateur. Les méthodes d'extraction varient en termes de format et de complexité. Toutefois, dans le modèle RAG simple, où les connaissances externes sont intégrées et stockées dans une base de données vectorielle, l'étape de l'extraction est la plus simple.Recherche de similitude est la forme la plus simple de recherche.
Pour effectuer une recherche de similarité, il est tout d'abord nécessaire d'intégrer la requête de l'utilisateur dans le même espace multidimensionnel que les données externes, de sorte que la requête puisse être directement comparée aux données externes intégrées. Dans l'espace Recherche de similitude dans lequel la distance entre la requête et les points de données externes est calculée et le point ayant la distance la plus courte est renvoyé, ce qui complète le processus de recherche.
Augmentation
Une fois que les points de données les plus pertinents ont été extraits des sources de données externes, le processus d'amélioration les intègre en insérant ces informations externes dans des modèles d'invite prédéfinis.
Génération
Une fois que les invites enrichies sont injectées dans la fenêtre contextuelle du modèle, ce dernier génère la réponse finale à l'entrée de l'utilisateur. Dans la phase de génération, le modèle combine sa compréhension linguistique interne avec les données externes améliorées pour générer des réponses cohérentes et contextualisées.
Cette étape consiste à générer des réponses de manière fluide et naturelle, tout en utilisant des informations riches pour s'assurer que le résultat est à la fois précis et pertinent par rapport à la requête de l'utilisateur. L'amélioration vise à intégrer des faits externes, tandis que la génération traduit ces connaissances combinées en un résultat bien structuré, semblable à celui d'un humain, pour une demande spécifique.
Exemples d'applications RAG
Maintenant que nous avons abordé la définition de RAG, son fonctionnement et son architecture, nous allons explorer quelques scénarios d'application pratique pour voir comment ce cadre peut être utilisé dans le monde réel. En enrichissant les modèles linguistiques génératifs à grande échelle de données actualisées et spécifiques à une tâche, il est possible d'améliorer leur précision, leur pertinence et leur capacité à traiter des tâches spécialisées. Par conséquent, RAG est largement utilisé dans la recherche d'informations en temps réel, les systèmes de recommandation de contenu et la construction d'assistants personnels d'intelligence artificielle.
Recherche d'informations en temps réel
Lorsque les modèles génératifs sont utilisés seuls, ils ne peuvent récupérer que les informations qui existent dans leur ensemble de données d'apprentissage. Dans le cadre de RAG, cependant, les modèles sont capables de récupérer des données et des informations à partir de sources externes, garantissant ainsi une réponse plus précise et plus actuelle. La capacité de ChatGPT-4o à accéder à des pages web et à en extraire des informations en temps réel en est un exemple. Il s'agit d'un cas d'utilisation RAG qui fait appel à des sources de données externes qui ne sont pas intégrées dans une base de données vectorielle, et qui est particulièrement utile pour répondre aux demandes des utilisateurs concernant les nouvelles ou d'autres événements sensibles au temps, tels que les cours de la bourse, les conseils de voyage et les mises à jour météorologiques.
Système de recommandation de contenu
Les systèmes de recommandation de contenu analysent les données et les préférences des utilisateurs pour leur recommander des produits ou des contenus pertinents. RAG simplifie la construction des systèmes de recommandation en intégrant directement les données externes et contextuelles des utilisateurs à la connaissance générique du modèle, ce qui leur permet de générer des recommandations personnalisées.
Assistant personnel d'IA
Nos données personnelles, y compris les documents, les courriels, les messages Slack et les notes, constituent une source de données importante pour générer des modèles. En exécutant RAG sur des données personnelles, nous pouvons interagir avec elles de manière conversationnelle, en augmentant l'efficacité et en automatisant les tâches banales. Avec l'aide d'assistants d'IA tels que l'assistant de Microsoft, le Copilote répondre en chantant Notion (Ask AI), nous pouvons utiliser de simples invites pour rechercher des documents pertinents, rédiger des courriels personnalisés, résumer des documents et des procès-verbaux, planifier des réunions, etc.
Comment mettre en œuvre le RAG
RAG peut être mis en œuvre par le biais d'un certain nombre de cadres différents qui simplifient le processus de construction en fournissant des outils et des modules préconstruits qui permettent l'intégration des composants RAG individuels ainsi que des services externes tels que les bases de données vectorielles, les outils de génération d'encastrement et d'autres API.
LangChain, LlamaIndex et DSPy sont toutes de puissantes bibliothèques Python open source avec des communautés actives qui fournissent des outils puissants et des intégrations pour la construction et l'optimisation des pipelines RAG et des applications LLM (Large Language Model).
- LangChain Il fournit des blocs de construction, des composants et des intégrations tierces pour aider à développer des applications basées sur le LLM. Il peut être utilisé en conjonction avec LangGraph sont utilisés ensemble pour construire un pipeline RAG de type proxy, et par l'intermédiaire de l'outil LangSmith Effectuer une évaluation RAG.
- LlamaIndex est un cadre qui fournit des outils pour construire des applications LLM qui intègrent des sources de données externes. LlamaHubIl s'agit d'une riche bibliothèque de chargeurs de données, d'outils proxy, d'ensembles de données et d'autres composants qui simplifient la création de pipelines RAG.
- DSPy est un cadre modulaire pour l'optimisation des pipelines LLM. LLM et RM (Retrieval Model) peuvent être configurés dans DSPy pour une optimisation transparente des pipelines RAG.
Weaviate fournit intégré (comme dans circuit intégré) répondre en chantant formules Weaviate peut être utilisé avec chacun de ces frameworks. Pour des exemples spécifiques, consultez notre notebook montrant comment utiliser Weaviate avec le framework LlamaIndex répondre en chantant DSPy Construire le pipeline RAG.
Si vous souhaitez que le RAG soit rapidement opérationnel, consultez la rubrique VerbaVerba est une application RAG open source prête à l'emploi avec un brillant front-end pré-construit.Verba vous permet d'explorer visuellement des ensembles de données, d'extraire des informations et de construire des pipelines RAG personnalisables en quelques étapes simples sans avoir à apprendre un tout nouveau framework.Verba est un outil polyvalent qui peut être utilisé comme un terrain de jeu pour tester et expérimenter avec des pipelines RAG ainsi que pour des tâches personnelles telles que l'aide à la recherche, l'analyse de documents internes et la rationalisation de diverses tâches liées à RAG. Verba est un outil polyvalent qui peut être utilisé comme terrain de jeu pour tester et expérimenter les pipelines RAG ainsi que pour des tâches personnelles telles que l'aide à la recherche, l'analyse de documents internes et la rationalisation de diverses tâches liées aux RAG.
Mise en œuvre d'un RAG prêt à l'emploi avec Verba
Technologie RAG
Les flux de travail RAG traditionnels se composent généralement d'une source de données externe intégrée dans une base de données vectorielles qui est récupérée par le biais d'une recherche de similarité. Cependant, il existe plusieurs façons d'améliorer le flux de travail RAG pour obtenir des résultats plus précis et plus robustes, collectivement appelés RAG avancés.
La fonctionnalité du pipeline RAG peut être étendue en introduisant des bases de données de graphes et des agents qui permettent un raisonnement plus avancé et une récupération dynamique des données. Dans les sections suivantes, nous présentons quelques techniques avancées courantes de RAG et donnons un aperçu des RAG basés sur des agents et des RAG basés sur des graphes.
RAG avancé
Les techniques avancées de RAG peuvent être déployées à tous les stades de la chaîne de production. Les stratégies de pré-recueil telles que Filtrage des métadonnées et le texte morceau L'efficacité et la pertinence de la recherche peuvent être améliorées en limitant la recherche et en s'assurant que seules les parties les plus pertinentes des données sont prises en compte. L'utilisation de techniques de recherche plus avancées, telles que Recherche hybridequi combine les avantages de la recherche par similarité et de la recherche par mot-clé, peut également produire des résultats de recherche plus robustes. Enfin, l'utilisation d'un modèle de tri pour les résultats de la recherche réorganiser et générés à l'aide d'un grand modèle linguistique (LLM) affiné sur la base de données spécifiques au domaine peut améliorer la qualité des résultats générés.

Si vous souhaitez approfondir ce sujet, consultez notre article sur les Technologie avancée RAG Le billet de blog.
Proxy RAG
Agent AI sont des systèmes autonomes capables d'interpréter des informations, d'élaborer des plans et de prendre des décisions. Lorsqu'ils sont ajoutés à un pipeline de RAG, les agents peuvent reformuler les requêtes des utilisateurs et récupérer des informations plus pertinentes lorsque les résultats initiaux sont inexacts ou non pertinents. Les RAG basés sur des agents peuvent également traiter des requêtes plus complexes qui nécessitent un raisonnement en plusieurs étapes, comme la comparaison d'informations entre plusieurs documents, la pose de questions complémentaires et l'ajustement itératif des stratégies de recherche et de génération.
Si vous souhaitez vous plonger plus profondément dans un pipeline RAG qui inclut des proxies et tire parti de techniques avancées telles que le découpage de texte et le réordonnancement, consultez cet article sur le blog de LlamaIndex. écrits correspondance carnets de notes.
Graphique RAG
Le RAG traditionnel est excellent pour résoudre les tâches de questions-réponses par simple extraction, mais il ne peut pas répondre aux questions qui nécessitent une réponse de la part de l'utilisateur.totalLe problème de la dérivation de conclusions à partir d'une base de connaissances externe. Le RAG graphique vise à résoudre ce problème en utilisant un modèle génératif pour créer un graphe de connaissances qui extrait et stocke les relations entre les entités clés, qui sont ensuite ajoutées en tant que sources de données au processus RAG. Cela permet au système RAG de répondre à des requêtes qui doivent comparer et résumer de multiples documents et sources de données.
Pour plus d'informations sur le processus de construction d'un RAG graphique, voir GraphRAG de Microsoft. progicielrépondre en chantantfichier (informatique).
Comment évaluer le RAG
Le RAG est un cadre multiphase et multi-étape qui nécessite une approche globale et fine de la gestion de l'environnement.évaluation. Cette approche d'évaluation garantit la fiabilité au niveau des composants et la précision globale. Dans cette section, nous explorons ces deux méthodes d'évaluation et présentons RAGAS, un cadre d'évaluation populaire.

Évaluation au niveau des composants
Au niveau des composants, les évaluations RAG se concentrent généralement sur l'évaluation de la qualité des extracteurs et des générateurs, car ils jouent un rôle essentiel dans la production de réponses précises et pertinentes.
L'évaluation des chercheurs est principalement axée sur la précision et la pertinence. Dans ce contexte, lesprécision mesure la précision avec laquelle le chercheur sélectionne les informations qui répondent directement à la requête, et la pertinence Il évalue ensuite dans quelle mesure les données extraites correspondent aux besoins spécifiques et au contexte de la requête.
D'autre part, l'évaluation du générateur porte sur la véracité et l'exactitude.validité Évaluer si la réponse générée par le modèle reflète fidèlement les informations contenues dans les documents pertinents et vérifier la cohérence de la réponse avec la source originale.exactitude La réponse générée est ensuite évaluée pour déterminer si elle est authentique et si elle correspond à la situation réelle ou à la réponse attendue dans le contexte de la requête.
Évaluation de bout en bout
Bien que le récupérateur et le générateur soient deux composants distincts, ils s'appuient l'un sur l'autre pour générer des réponses cohérentes aux requêtes des utilisateurs.
Le calcul de la similarité sémantique des réponses est une méthode simple et efficace pour évaluer la qualité de la collaboration entre les extracteurs et les générateurs.Réponse similarité sémantique La similarité sémantique entre la réponse générée et l'échantillon de réponse réelle est calculée. Une similarité élevée entre la réponse générée et les échantillons de réponses réelles indique que le processus est capable de récupérer des informations pertinentes et de générer une réponse adaptée au contexte.
Le cadre d'évaluation RAG fournit une méthodologie, un outil ou une plateforme structurés pour évaluer les processus RAG.RAGAS(Retrieval Enhanced Generation Evaluation) est un cadre particulièrement populaire qui fournit un ensemble de mesures pour évaluer la pertinence de la recherche, la qualité de la génération et l'authenticité sans qu'il soit nécessaire d'annoter manuellement les données. Écoutez ce podcast de Weaviate pour apprendre directement de l'équipe d'évaluation. RAGAS Fonctionnement de RAGAS du créateur et techniques avancées d'optimisation des scores RAGAS.
RAG ou réglage fin
Le RAG est l'un des moyens d'étendre les capacités et d'atténuer les limites des modèles linguistiques génératifs de grande taille. Le réglage fin des grands modèles linguistiques est une technique particulièrement populaire qui permet aux modèles d'effectuer des tâches hautement spécialisées en les entraînant sur des données spécifiques à un domaine. Si le réglage fin peut être bien adapté à certains cas d'utilisation spécifiques, comme l'entraînement d'un modèle biglang à adopter un ton ou un style d'écriture particulier, le RAG est souvent le moyen le plus simple d'améliorer la précision du modèle, de réduire les illusions et de personnaliser un modèle biglang en vue d'une tâche spécifique.
L'avantage de RAG est qu'il élimine la nécessité de mettre à jour les poids du modèle génératif sous-jacent, ce qui est souvent un processus long et coûteux. RAG permet au modèle d'accéder dynamiquement à des données externes, améliorant ainsi la précision sans recyclage coûteux. Cela en fait une solution pratique pour les applications qui nécessitent des informations en temps réel. Dans la section suivante, nous nous pencherons sur l'architecture de RAG et sur la manière dont ses composants fonctionnent ensemble pour créer un système puissant d'amélioration de la recherche.
résumés
Dans cet article, nous vous avons présenté RAG, un cadre qui exploite les connaissances externes spécifiques à une tâche afin d'améliorer les performances des applications basées sur des modèles génératifs. Nous avons découvert les différents composants du processus RAG, y compris les sources de connaissances externes, les modèles d'indices et les modèles génératifs, et la façon dont ils travaillent ensemble pour permettre la récupération, l'amélioration et la génération. Enfin, nous mentionnons certaines techniques spécialisées pour les RAG, y compris les méthodes RAG de haut niveau, les RAG basées sur des agents et les RAG graphiques, ainsi que les méthodes d'évaluation des processus RAG.
À tout le moins, chaque section de cet article pourrait constituer un article de blog ou même un chapitre d'un livre. C'est pourquoi nous avons élaboré un guide de ressources comprenant des articles universitaires, des articles de blog, des vidéos YouTube, des tutoriels, des carnets de notes et des recettes pour vous aider à en savoir plus sur les sujets, les cadres et les méthodes présentés dans cet article.
Guide de ressources
📄 Génération améliorée par la recherche pour les tâches NLP à forte intensité de connaissances (Document original du GCR)
👩🍳 Démarrer avec RAG dans DSPy(Formulation)
👩🍳 RAG simple dans LlamaIndex(Formulation)
📝 Technologie avancée RAG(blog post)
📒 RAG basé sur des agents avec plusieurs agents documentaires(Carnet de notes)
📝 Aperçu de l'évaluation RAG(blog post)
📄 Évaluation de la génération d'amélioration de la recherche : une vue d'ensemble(Articles académiques)
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...