Maison >Périphériques technologiques >IA >Graphrag de la théorie à la mise en œuvre - Analytics vidhya

Graphrag de la théorie à la mise en œuvre - Analytics vidhya

Christopher Nolan
Christopher Nolanoriginal
2025-03-17 11:17:09729parcourir

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.

Objectifs d'apprentissage

  • Comprenez ce qu'est Graphrag et explorez l'importance du graphrag et comment il améliore les modèles de chiffons naïfs traditionnels.
  • Gardez une compréhension plus approfondie du graphrag de Microsoft, en particulier de son application de graphiques de connaissances, de détection de la communauté et de structures hiérarchiques. Découvrez comment fonctionnent les fonctionnalités de recherche globale et locale dans ce système.
  • Participez à une implémentation pratique Python de la bibliothèque Graphrag de Microsoft pour obtenir une compréhension pratique de son flux de travail et de son intégration.
  • Comparez et contrastez les sorties produites par Graphrag et les méthodes de chiffon traditionnelles pour mettre en évidence les améliorations et les différences.
  • Identifiez les principaux défis rencontrés par Graphrag, y compris les processus à forte intensité de ressources et les besoins d'optimisation dans les applications à grande échelle.

Cet article a été publié dans le cadre du Blogathon de la science des données.

Table des matières

  • Objectifs d'apprentissage
  • Qu'est-ce que Graphrag?
  • Pourquoi graphrag sur un chiffon traditionnel / naïf?
  • Limites du chiffon adressé par Graphrag
  • Comment fonctionne Graphrag de Microsoft?
    • Phase d'indexation
    • Phase de requête
  • Implémentation Python du graphrag de Microsoft
    • Étape 1: Création d'un environnement virtuel Python et d'une installation de bibliothèque
    • Étape2: Génération de Settings.yaml Fichier
    • Étape 3: Exécution du pipeline d'indexation
    • Étape 4: exécuter une requête
    • Recherche locale
  • Défis de Graphrag
  • Conclusion
    • Principaux à retenir
  • Questions fréquemment posées

Qu'est-ce que Graphrag?

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.

Pourquoi graphrag sur un chiffon traditionnel / naïf?

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.

Limites du chiffon adressé par Graphrag

Nous allons maintenant examiner les limites du chiffon abordé par Graphrag:

  • En tirant parti des interconnexions entre les entités, Graphrag affine sa capacité à identifier et à récupérer des données pertinentes avec une précision plus élevée.
  • Grâce à l'utilisation de graphiques de connaissances, Graphrag offre une compréhension plus détaillée et nuancée des requêtes, en aidant à une génération de réponse plus précise.
  • En ancrant ses réponses dans des données factuelles structurées, Graphrag réduit considérablement les chances de produire des informations incorrectes ou fabriquées.

Comment fonctionne Graphrag de Microsoft?

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.

Phase d'indexation

La phase d'indexation comprend les étapes suivantes:

  • Diviser les textes d'entrée en morceaux plus petits et gérables.
  • Extraire des entités et des relations de chaque morceau.
  • Résumez les entités et les relations dans un format structuré.
  • Construisez un graphique de connaissance avec des nœuds comme entités et bords comme relations.
  • Identifiez les communautés dans le graphique de connaissances à l'aide d'algorithmes.
  • Résumez les entités et les relations individuelles au sein de petites communautés.
  • Créez des résumés de niveau supérieur pour les communautés agrégées de manière hiérarchique.

Phase de requête

É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.

Implémentation Python du graphrag de Microsoft

Examinons maintenant la mise en œuvre de Python du graphrag de Microsoft dans les étapes détaillées ci-dessous:

Étape 1: Création d'un environnement virtuel Python et d'une installation de bibliothèque

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

Étape2: Génération de Settings.yaml Fichier

À 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.

Graphrag de la théorie à la mise en œuvre - Analytics vidhya

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.

Graphrag de la théorie à la mise en œuvre - Analytics vidhya

Étape 3: Exécution du pipeline d'indexation

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.

Invite le dossier

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.

Graphrag de la théorie à la mise en œuvre - Analytics vidhya

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.

Intégrés stockés dans LancedB

De plus, LancedB est utilisé pour stocker les données d'incorporation pour chaque morceau de texte.

Fichiers parquet pour les données du graphique

Le dossier de sortie stocke de nombreux fichiers Parquet correspondant au graphique et aux données connexes, comme indiqué dans la figure ci-dessous.

Graphrag de la théorie à la mise en œuvre - Analytics vidhya

Étape 4: exécuter une requête

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.

Recherche globale

 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:

Graphrag de la théorie à la mise en œuvre - Analytics vidhya

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é.

Recherche locale

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

Graphrag de la théorie à la mise en œuvre - Analytics vidhya

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.

Défis de Graphrag

Il y a certains défis que Graphrag lutte, énumérés ci-dessous:

  • Plusieurs appels LLM: en raison des multiples appels LLM effectués dans le processus, Graphrag pourrait être coûteux et lent. L'optimisation des coûts serait donc essentielle pour garantir l'évolutivité.
  • Consommation de ressources élevées: la construction et la question des graphiques de connaissances impliquent des ressources de calcul importantes, en particulier lors de la mise à l'échelle des grands ensembles de données. Le traitement de gros graphiques avec de nombreux nœuds et bords nécessite une optimisation minutieuse pour éviter les goulots d'étranglement des performances.
  • Complexité dans le clustering sémantique: identifier des grappes significatives utilisant des algorithmes comme Leiden peut être difficile, en particulier pour les ensembles de données avec des entités vaguement connectées. Les grappes mal identifiées peuvent conduire à des résumés communautaires fragmentés ou trop larges
  • Gérer divers formats de données: Graphrag repose sur des entrées structurées pour extraire des relations significatives. Les données non structurées, incohérentes ou bruyantes peuvent compliquer le processus d'extraction et de construction de graphiques

Conclusion

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.

Principaux à retenir

  • Graphrag améliore le RAG en organisant du texte brut en graphiques de connaissances hiérarchiques, permettant des réponses précises et consacrées au contexte.
  • Il utilise des résumés communautaires pour une analyse générale et des connexions graphiques pour des requêtes spécifiques et approfondies.
  • Graphrag surmonte les limitations de la compréhension et du raisonnement du contexte en tirant parti des interconnexions d'entités et des données structurées.
  • La bibliothèque Graphrag de Microsoft prend en charge l'application pratique avec des outils pour la création de graphiques de connaissances et la requête.
  • Malgré sa précision, Graphrag fait face à des obstacles tels que l'intensité des ressources, la complexité de regroupement sémantique et la manipulation de données non structurées.
  • En mettant la mise en œuvre des réponses dans les connaissances structurées, Graphrag réduit les inexactitudes communes dans les systèmes de chiffon traditionnels.
  • Idéal pour les requêtes complexes nécessitant un raisonnement interconnecté, tel que l'analyse thématique ou les idées spécifiques à l'entité.

Questions fréquemment posées

Q1. Pourquoi Graphrag est-il préféré au chiffon traditionnel pour 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.

Q4. Quels défis sont confrontés à Graphrag?

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!

Déclaration:
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