Maison > Périphériques technologiques > IA > Récupération récursive pour le chiffon: mise en œuvre avec Llamaindex

Récupération récursive pour le chiffon: mise en œuvre avec Llamaindex

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2025-03-02 09:22:11
original
220 Les gens l'ont consulté

Recursive Retrieval for RAG: Implementation With LlamaIndex

De nombreuses applications RAG utilisent un processus de récupération simplifié: les documents sont segmentés en morceaux, convertis en intégres et stockés dans une base de données vectorielle. Les requêtes déclenchent la récupération des documents les plus similaires du Top-K en fonction de la similitude de l'intégration. Cependant, cette approche souffre de limitations, en particulier avec des ensembles de données approfondis. L'ambiguïté des morceaux et la récupération des informations sous-optimales peuvent compromettre la précision.

La récupération récursive améliore la précision de la récupération en tirant parti de la structure des documents. Au lieu de récupérer directement des morceaux, il privilégie les résumés pertinents, par la suite en descendant vers des morceaux associés pour des résultats plus ciblés.

Cet article détaille la récupération récursive et vous guide tout au long de sa mise en œuvre à l'aide de Llamaindex.

Rag et Langchain

Langchain facilite l'intégration des données externes avec les LLM via la génération augmentée (RAG).

Recursive Retrieval a expliqué

Contrairement aux méthodes qui reposaient uniquement sur des intérêts bruts de morceaux, les résumés de documents de récupération récursifs, les reliant à leurs morceaux correspondants. Les requêtes récupèrent initialement des résumés pertinents, puis identifient les informations connexes dans les morceaux associés de ces résumés. Cette approche contextuelle améliore la pertinence des informations.

Mise en œuvre de la récupération récursive avec Llamaindex

Cette section vous guide à travers une implémentation étape par étape de la récupération récursive à l'aide de Llamaindex, du chargement de documents à l'exécution de la requête.

Étape 1: Chargement et préparation des documents

Les documents sont chargés à l'aide de

. Chaque document reçoit un titre et des métadonnées (par exemple, catégorie) pour un filtrage amélioré. Les documents chargés sont stockés dans un dictionnaire pour un accès facile. SimpleDirectoryReader

from llama_index.core import SimpleDirectoryReader

# ... (Code for loading documents remains the same) ...
Copier après la connexion
Copier après la connexion

Étape 2: LLM et CHUNKING SETUP

Un LLM (par exemple, le GPT-4O Mini) d'Openai) est initialisé, ainsi qu'un séparateur de phrase pour la création de morceaux et un gestionnaire de rappel pour la surveillance des processus.

from llama_index.llms.openai import OpenAI
from llama_index.core.callbacks import LlamaDebugHandler, CallbackManager
from llama_index.core.node_parser import SentenceSplitter

# ... (Code for LLM and chunking setup remains the same) ...
Copier après la connexion

Étape 3: Création d'index vectorielle et génération de résumé

Un indice vectoriel est créé pour chaque document pour permettre une récupération basée sur la similitude. Les résumés générés par LLM sont stockés sous forme

objets. IndexNode

from llama_index.core import VectorStoreIndex, SummaryIndex
from llama_index.core.schema import IndexNode

# ... (Code for building vector indices and generating summaries remains the same) ...
Copier après la connexion

Étape 4: Construction d'index de vecteur de niveau supérieur

Un indice de vecteur de haut niveau est construit à partir des résumés générés, permettant la récupération initiale des résumés pertinents avant d'accéder à des morceaux détaillés.

# ... (Code for building the top-level vector index remains the same) ...
Copier après la connexion

Étape 5: Configuration de la récupération récursive

Le retriever récursif est configuré, combinant le Retriever de niveau supérieur avec des retrievers de documents individuels pour faciliter le processus de récupération hiérarchique.

from llama_index.core.retrievers import RecursiveRetriever

# ... (Code for setting up the recursive retriever remains the same) ...
Copier après la connexion

Étape 6: requêtes de récupération récursive

Les exemples de requêtes sont exécutées à l'aide du Recursive Retriever configuré.

from llama_index.core import SimpleDirectoryReader

# ... (Code for loading documents remains the same) ...
Copier après la connexion
Copier après la connexion

Conclusion

La récupération récursive, tirant parti des résumés de documents et des hiérarchies, améliore la pertinence des morceaux récupérés, en particulier avec de grands ensembles de données. Il offre une solution robuste pour créer des systèmes de récupération précis dans des environnements riches en données. Une exploration plus approfondie des techniques de chiffon peut être trouvée dans les articles de blog liés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal