Maison >Périphériques technologiques >IA >Graphrag de la théorie à la mise en œuvre - Analytics vidhya
Graphrag adopte une méthode plus structurée et hiérarchique pour récupérer la génération augmentée (RAG), se distinguant des approches traditionnelles de chiffon qui reposent sur les recherches sémantiques de base des extraits de texte non organisés. Le processus commence par convertir du texte brut en un graphique de connaissances, organisant les données en structure communautaire et résumant ces groupes. Cette approche structurée permet à Graphrag de tirer parti de ces informations organisées, d'améliorer son efficacité dans les tâches basées sur des chiffons et de fournir des résultats plus précis et au contexte.
Cet article a été publié dans le cadre du Blogathon de la science des données.
La génération (RAG) de la récupération (RAG) est une nouvelle méthodologie qui intègre la puissance des modèles de grand langage pré-formés (LLM) avec des sources de données externes pour créer des sorties plus précises et plus riches.
Graphrag (génération augmentée de récupération basée sur des graphiques) est une méthode avancée de chiffon standard ou traditionnel qui les améliore en tirant parti des graphiques de connaissances pour améliorer la récupération des informations et la génération de réponse. Contrairement à Standard RAG, qui repose sur une recherche sémantique simple et des extraits de texte brut, Graphrag organise et traite les informations dans un format structuré et hiérarchique.
Lutte avec des informations dispersées sur différentes sources. La génération traditionnelle de la récupération (RAG) est confrontée à des défis lorsqu'il s'agit de synthétiser des informations dispersées sur plusieurs sources. Il a du mal à identifier et à combiner des informations liées par des relations subtiles ou indirectes, ce qui le rend moins efficace pour les questions nécessitant un raisonnement interconnecté.
Manque à capturer un contexte plus large. Les méthodes de chiffon traditionnelles échouent souvent à capturer le contexte plus large ou à résumer des ensembles de données complexes. Cette limitation découle d'un manque de compréhension sémantique plus profonde nécessaire pour extraire des thèmes globaux ou distiller avec précision les points clés des documents complexes. Lorsque nous exécutons une requête comme «Quels sont les principaux thèmes de l'ensemble de données?», Il devient difficile pour le chiffon traditionnel d'identifier des morceaux de texte pertinents à moins que l'ensemble de données ne définit explicitement ces thèmes. En substance, il s'agit d'une tâche de résumé axée sur la requête plutôt qu'une tâche de récupération explicite dans laquelle le chiffon traditionnel se débat.
Nous allons maintenant examiner les limites du chiffon abordé par Graphrag:
Graphrag étend les capacités de la génération traditionnelle de la récupération (RAG) en incorporant une conception opérationnelle en deux phases: une phase d'indexation et une phase de requête. Pendant la phase d'indexation, il construit un graphique de connaissances, organisant hiérarchiquement les informations extraites. Dans la phase de requête, il exploite cette représentation structurée pour fournir des réponses hautement contextuelles et précises aux requêtes utilisateur.
La phase d'indexation comprend les étapes suivantes:
Équipé d'un graphique de connaissances et de résumés détaillés de la communauté, Graphrag peut ensuite répondre aux requêtes utilisateur avec une bonne précision en tirant parti des différentes étapes présentes dans la phase de requête.
Recherche mondiale - Demandes de renseignements qui exigent une analyse large de l'ensemble de données, telles que «Quels sont les principaux thèmes discutés?», Graphrag utilise les résumés de la communauté compilés. Cette approche permet au système d'intégrer des informations sur l'ensemble de données, offrant des réponses approfondies et bien équilibrées.
Recherche locale - Les requêtes ciblant une entité spécifique, Graphrag exploite la structure interconnectée du graphique de connaissances. En naviguant sur les connexions immédiates de l'entité et en examinant les affirmations connexes, il rassemble des détails pertinents, permettant au système de fournir des réponses précises et sensibles au contexte.
Examinons maintenant la mise en œuvre de Python du graphrag de Microsoft dans les étapes détaillées ci-dessous:
Faites un dossier et créez un environnement virtuel Python. Nous créons le dossier GraphRag comme indiqué ci-dessous. Dans le dossier créé, nous installons ensuite la bibliothèque Graphrag à l'aide de la commande - «PIP install graphrag».
pip install graphrag
À l'intérieur du dossier Graphrag, nous créons un dossier d'entrée et y mettons des fichiers texte dans le dossier. Nous avons utilisé ce fichier txt et l'avons conservé dans le dossier d'entrée. Le texte de l'article a été tiré de ce site Web d'informations.
Dans le dossier qui contient le dossier d'entrée, exécutez la commande suivante:
python -m graphrag.index --it --root
Cette commande conduit à la création d'un fichier .env et d'un fichier Settings.yaml.
Dans le.envfile, entrez votre touche Openai en l'attribuant au graphrag_api_key. Ceci est ensuite utilisé par le fichier Settings.yaml sous les champs «LLM». D'autres paramètres comme le nom du modèle, Max_Tokens, la taille de morceaux entre autres peuvent être définis dans le fichier Settings.yaml. Nous avons utilisé le modèle «GPT-4O» et l'avons défini dans le fichier Settings.yaml.
Nous exécutons le pipeline d'indexation à l'aide de la commande suivante de l'intérieur du dossier «Graphrag».
Python -M Graphrag.index --root.
Toutes les étapes définies dans la section précédente dans la phase d'indexation se déroulent dans le backend dès que nous exécutons la commande ci-dessus.
Pour exécuter toutes les étapes de la phase d'indexation, telles que la détection des entités et des relations, la création de graphiques de connaissances, la détection de la communauté et la génération de résumé de différentes communautés, le système passe plusieurs appels LLM à l'aide d'invites définies dans le dossier «Invites». Le système génère automatiquement ce dossier lorsque vous exécutez la commande d'indexation.
Il est essentiel d'adapter les invites à s'aligner sur le domaine spécifique de vos documents pour améliorer les résultats. Par exemple, dans le fichier entity_extraction.txt, vous pouvez conserver des exemples d'entités pertinentes du domaine que votre corpus de texte est sur pour obtenir des résultats plus précis de RAG.
De plus, LancedB est utilisé pour stocker les données d'incorporation pour chaque morceau de texte.
Le dossier de sortie stocke de nombreux fichiers Parquet correspondant au graphique et aux données connexes, comme indiqué dans la figure ci-dessous.
Afin d'exécuter une requête globale comme «thèmes supérieurs du document», nous pouvons exécuter la commande suivante à partir du terminal du dossier Graphrag.
Python -M Graphrag.Query --Root. - Méthod Global "Quels sont les meilleurs thèmes du document?"
Une requête mondiale utilise les résumés communautaires générés pour répondre à la question. Les réponses intermédiaires sont utilisées pour générer la réponse finale.
La sortie de notre fichier TXT est la suivante:
Comparaison avec la production de chiffon naïf:
Le code pour le chiffon naïf se trouve dans mon github .
1. L'intégration des applications SAP et Microsoft 365 2. Le potentiel d'une expérience utilisateur sans couture 3. La collaboration entre SAP et Microsoft 4. Le but de maximiser la productivité 5. L'aperçu de Microsoft Ignite 6. L'annonce de prévisualisation limitée 7. La possibilité de s'inscrire à l'aperçu limité.
Afin d'exécuter une requête locale pertinente pour notre document comme «À quoi ressemble Microsoft et SAP en collaboration?», Nous pouvons exécuter la commande suivante à partir du terminal dans le dossier Graphrag. La commande ci-dessous désigne spécifiquement la requête en tant que requête locale, garantissant que l'exécution approfondit le graphique de connaissances au lieu de s'appuyer sur les résumés communautaires utilisés dans les requêtes mondiales.
Python -M Graphrag.Query --Root. - Méthode local "À quoi ressemble SAP et Microsoft en collaboration?
Sortie de Graphrag
Comparaison avec la production de chiffon naïf :
Le code pour le chiffon naïf se trouve dans mon github .
Microsoft et SAP travaillent à une intégration transparente de leurs copilotes AI, Joule et Microsoft 365 Copilot, pour redéfinir la productivité du lieu de travail et permettre aux utilisateurs d'effectuer des tâches et d'accès aux données des deux systèmes sans basculer entre les applications.
Comme observé à la fois des sorties globales et locales, les réponses de Graphrag sont beaucoup plus complètes et explicables par rapport aux réponses de RAG naïf.
Il y a certains défis que Graphrag lutte, énumérés ci-dessous:
Graphrag démontre des progrès importants sur le RAG traditionnel en abordant ses limites de raisonnement, de compréhension du contexte et de fiabilité. Il excelle dans la synthèse des informations dispersées entre les ensembles de données en tirant parti des graphiques de connaissances et des relations d'entité structurées, permettant une compréhension sémantique plus profonde.
Graphrag de Microsoft améliore le chiffon traditionnel en combinant une approche biphasée: indexation et interrogatoire. La phase d'indexation construit un graphique de connaissances hiérarchiques des entités et des relations extraites, organisant des données en résumés structurés. Dans la phase de requête, Graphrag exploite cette structure pour des réponses précises et riches en contexte, s'adressant à la fois à l'analyse de l'ensemble de données global et à des requêtes spécifiques basées sur les entités.
Cependant, les avantages de Graphrag s'accompagnent de défis, notamment des demandes élevées de ressources, de la dépendance aux données structurées et de la complexité du regroupement sémantique. Malgré ces obstacles, sa capacité à fournir des réponses holistiques précises le fait comme une alternative puissante aux systèmes de chiffon naïfs pour gérer les requêtes complexes.
A. Graphrag excelle dans la synthèse des informations à travers des sources dispersées en tirant parti des interconnexions entre les entités, contrairement à RAG traditionnel, qui a du mal à identifier des relations subtiles.
Q2. Comment GraphRag crée-t-il un graphique de connaissances pendant la phase d'indexation?A. Il traite des morceaux de texte pour extraire les entités et les relations, les organise hiérarchiquement à l'aide d'algorithmes comme Leiden, et construit un graphique de connaissances où les nœuds représentent les entités et les bords indiquent les relations.
Q3. Quelles sont les deux méthodes de recherche de clés dans la phase de requête de Graphrag? Recherche mondiale: utilise des résumés de la communauté pour une analyse générale, répondant aux requêtes comme «Quels sont les principaux thèmes discutés?».
Recherche locale: se concentre sur des entités spécifiques en explorant leurs connexions directes dans le graphique de connaissances.
A. Graphrag rencontre des problèmes tels que des coûts de calcul élevés en raison de plusieurs appels LLM, des difficultés de clustering sémantique et des complications avec le traitement des données non structurées ou bruyantes.
Q5. Comment Graphrag améliore-t-il la compréhension du contexte dans la génération de réponse?A. En ancrant ses réponses dans les graphiques de connaissances hiérarchiques et les résumés communautaires, Graphrag fournit une compréhension sémantique plus profonde et des réponses contextuellement riches.
Les médias présentés dans cet article ne sont pas détenus par l'analytique vidhya et sont utilisés à la discrétion de l'auteur.
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!