Débloquer la puissance des graphes de connaissances : explorer Graph RAG pour une génération améliorée avec augmentation de la recherche

Débloquez la puissance des graphes de connaissances avec Graph RAG, un système révolutionnaire qui combine les graphes de connaissances et la génération augmentée par la recherche (RAG) pour une meilleure récupération et génération. Explorez les détails techniques, configurez-le localement et évaluez les implications financières. Découvrez comment Graph RAG s'attaque aux limites des approches RAG traditionnelles.

24 février 2025

party-gif

Débloquez la puissance des graphes de connaissances avec Graph RAG, un système révolutionnaire qui combine les avantages de la génération augmentée par la recherche (RAG) avec la compréhension contextuelle des graphes de connaissances. Découvrez comment cette approche innovante peut améliorer votre génération de contenu et la pertinence de vos réponses, tout en vous donnant un aperçu des implications en termes de coûts de l'utilisation de Graph RAG.

Découvrez la puissance de Graph RAG : Améliorer la génération augmentée de la recherche avec les graphes de connaissances

Le système Graph RAG est une innovation révolutionnaire qui combine les graphes de connaissances avec la génération augmentée par la recherche (RAG) pour s'attaquer aux limites des approches RAG traditionnelles. En tirant parti des graphes de connaissances, Graph RAG offre une compréhension plus holistique du corpus sous-jacent, permettant des réponses plus précises et pertinentes dans leur contexte.

Les principaux aspects de Graph RAG comprennent :

  1. Phase d'indexation : Au cours de cette phase, les documents sources sont traités, les entités sont extraites et utilisées pour créer un graphe de connaissances. Le graphe de connaissances représente les relations entre les différentes entités, qui sont ensuite utilisées pour créer des résumés à différents niveaux de granularité.

  2. Phase de requête : Lorsqu'une requête d'utilisateur est fournie, Graph RAG sélectionne le niveau de communauté (résumé) approprié en fonction de la requête et récupère les informations pertinentes. Les réponses de plusieurs communautés sont ensuite combinées pour générer la réponse finale.

Cette approche s'attaque aux limites de la RAG traditionnelle, comme la compréhension contextuelle limitée et les problèmes de mise à l'échelle. En intégrant les graphes de connaissances, Graph RAG peut fournir une compréhension plus approfondie des données sous-jacentes, conduisant à des réponses plus précises et cohérentes.

Comprendre le RAG traditionnel : Limites et motivations

La génération augmentée par la recherche (RAG) traditionnelle est une méthode où le modèle de langage récupère les documents pertinents dans un large corpus pour générer des réponses plus précises et pertinentes dans leur contexte. Cette approche implique trois étapes principales :

  1. Traitement et intégration des documents : Les documents d'origine sont divisés en plus petits fragments à l'aide d'une stratégie de fragmentation. Des intégrations sont ensuite calculées pour chaque fragment et stockées dans un magasin de vecteurs, qui devient la base de connaissances.

  2. Phase de requête : Lorsqu'un utilisateur pose une question, des intégrations sont calculées pour la requête, et une recherche de similarité est effectuée sur le magasin de vecteurs pour récupérer les fragments ou sous-documents les plus pertinents.

  3. Génération de la réponse : Le contexte récupéré est combiné avec la requête d'origine et fourni à un grand modèle de langage pour générer la réponse finale.

Cependant, cette approche RAG traditionnelle présente plusieurs limites :

  1. Compréhension contextuelle limitée : La RAG peut parfois manquer les nuances des données en raison de sa dépendance aux documents récupérés seuls. Elle n'a pas de vue d'ensemble holistique du document, donc elle ne comprend pas complètement l'image globale.

  2. Problèmes de mise à l'échelle : À mesure que le corpus grandit, le processus de récupération peut devenir moins efficace.

  3. Complexité de l'intégration de sources de connaissances externes : L'intégration de sources de connaissances externes de manière significative peut être complexe et fastidieuse.

Explorer les détails techniques de Graph RAG

Graph RAG est une approche novatrice qui combine les graphes de connaissances avec la génération augmentée par la recherche (RAG) pour s'attaquer aux limites des systèmes RAG traditionnels. Les principales étapes du processus Graph RAG sont les suivantes :

  1. Phase d'indexation :

    • Les documents sources sont fragmentés en plus petits sous-documents.
    • Dans chaque fragment, les entités (telles que les personnes, les lieux, les entreprises) sont identifiées, et les relations entre ces entités sont extraites.
    • Ces informations sont utilisées pour créer un graphe de connaissances, où les entités sont représentées sous forme de nœuds et les relations entre elles sont représentées sous forme d'arêtes.
    • Le graphe de connaissances est ensuite utilisé pour détecter des communautés, qui sont des groupes d'entités étroitement liées.
    • Des résumés sont créés pour chaque communauté à différents niveaux de détail, allant du global (haut niveau) au local (plus granulaire).
  2. Phase de requête :

    • Lorsqu'une requête d'utilisateur est reçue, le niveau de communauté approprié (global, intermédiaire ou local) est sélectionné en fonction du niveau de détail requis.
    • Les résumés des communautés pertinentes sont récupérés, et ces réponses partielles sont combinées pour générer la réponse finale.

Configurer Graph RAG sur votre machine locale

Pour configurer Graph RAG sur votre machine locale, suivez ces étapes :

  1. Créez un environnement virtuel Conda :

    conda create -n graphrag python=3.9
    conda activate graphrag
    
  2. Installez le package Graph RAG :

    pip install graphrag
    
  3. Créez un répertoire pour vos données de test :

    mkdir -p rag_test/input
    
  4. Téléchargez un jeu de données d'exemple, comme le texte de "A Christmas Carol" de Charles Dickens :

    python -m graphrag.index --root_dir rag_test/input --download_sample_data
    
  5. Configurez vos variables d'espace de travail et vos paramètres :

    python -m graphrag.index --root_dir rag_test/input --init_config
    

    Cela créera un fichier settings.yml où vous pourrez configurer votre clé API, votre modèle et d'autres paramètres.

  6. Exécutez le processus d'indexation pour créer le graphe de connaissances :

    python -m graphrag.index --root_dir rag_test/input
    

    Cette étape peut prendre un certain temps, car elle implique l'extraction d'entités, l'identification des relations et la création de résumés de communautés.

  7. Exécutez des requêtes d'exemple :

    python -m graphrag.query --root_dir rag_test --method global --prompt "Quels sont les thèmes principaux de cette histoire ?"
    python -m graphrag.query --root_dir rag_test --method local --prompt "Quelle est la relation entre Scrooge et Bob Cratchit ?"
    

    La méthode global récupère des informations au plus haut niveau, tandis que la méthode local se concentre sur des entités spécifiques et leurs relations.

Comparer les implications de coût de Graph RAG et du RAG traditionnel

Dans l'exemple fourni, les implications en termes de coûts de l'utilisation de Graph RAG étaient importantes. Le coût total du traitement du livre et de la création de Graph RAG s'est élevé à environ 7 $, ce qui pourrait être prohibitif pour de grands corpus de données.

Les principaux facteurs contribuant au coût élevé étaient :

  1. Requêtes API : L'approche Graph RAG a effectué un total de 570 requêtes via l'API, principalement pour le modèle GPT-4. En comparaison, l'approche RAG traditionnelle aurait probablement un nombre inférieur de requêtes API.

  2. Traitement des jetons : Le processus Graph RAG a impliqué le traitement de plus d'un million de jetons, ce qui a contribué au coût global.

En comparaison, un système RAG traditionnel aurait probablement un coût inférieur, car il ne nécessite pas les étapes supplémentaires d'extraction d'entités, d'identification des relations et de résumé des communautés qui font partie de l'approche Graph RAG.

Explorer d'autres solutions Graph RAG : Un aperçu plus approfondi

Bien que le système GraphRAG de Microsoft soit une innovation révolutionnaire, il n'est pas la seule implémentation de l'approche Graph RAG. Il existe d'autres solutions notables qui méritent d'être explorées :

Le moteur de requête Graph RAG de Lama Index

Lama Index, une plateforme populaire de gestion des connaissances open source, a développé sa propre implémentation d'un moteur de requête Graph RAG. Cette solution tire parti de la puissance des graphes de connaissances pour améliorer les capacités de récupération et de génération des grands modèles de langage.

Le package Graph RAG de Neo4j

Neo4j, un fournisseur de base de données de graphes de premier plan, a également introduit un package Graph RAG. Cette solution intègre les capacités de base de données de graphes de Neo4j avec la technique de génération augmentée par la recherche (RAG).

En comparant ces implémentations, chacune peut avoir ses propres caractéristiques uniques, ses forces et ses compromis. Des facteurs tels que les performances, la facilité d'intégration, le support pour différents modèles de langage et les implications en termes de coûts peuvent varier entre les différentes solutions Graph RAG.

FAQ