GraphRAG et Ollama : Optimiser la Génération de Réponses avec les Graphes de Connaissances
Les systèmes RAG (Retrieval-Augmented Generation) modernes en entreprise évoluent constamment, cherchant à dépasser les limites de la recherche vectorielle traditionnelle. Microsoft GraphRAG présente une solution prometteuse qui exploite les graphes de connaissances pour une compréhension plus approfondie du contexte et une meilleure récupération d'informations. Dans cet article, nous explorerons l'expérience pratique avec GraphRAG, son intégration avec des modèles de langage locaux via Ollama, et démontrerons ses capacités à l'aide d'un exemple d'analyse de texte situé dans le monde cyberpunk. L'objectif est de montrer comment les approches basées sur les graphes peuvent améliorer significativement la précision et la pertinence des réponses dans les systèmes d'information complexes, offrant un nouveau niveau de recherche sémantique et d'analyse de données.
De la Recherche Vectorielle aux Graphes de Connaissances
Au cœur de nombreux systèmes RAG se trouve la recherche vectorielle qui, malgré son efficacité, présente plusieurs limites, notamment face aux requêtes complexes et aux entités ambiguës. GraphRAG propose une approche alternative en construisant un graphe de connaissances complet basé sur les documents sources. Ce graphe se compose d'entités (objets, personnes, lieux) et de relations entre elles, permettant au système de capturer non seulement la présence de mots-clés, mais aussi leurs relations sémantiques au sein du contexte. Cette approche améliore considérablement la précision et la profondeur des informations récupérées.
Le processus de construction d'un graphe de connaissances dans GraphRAG implique l'extraction d'entités et de relations à partir du texte. Des outils spécialisés, tels que Gephi avec le plugin Leiden, peuvent être utilisés pour visualiser et analyser la structure d'un tel graphe. Cela permet non seulement de visualiser les interconnexions, mais aussi de découvrir des communautés ou des clusters d'entités cachés que GraphRAG identifie et décrit automatiquement. Il est important de noter que lors de la construction du graphe, des défis peuvent surgir avec la résolution d'entités lorsque des termes similaires mais non identiques (par exemple, « Molly Millions » et « Molly ») ne sont pas fusionnés automatiquement, nécessitant un affinement ultérieur de l'algorithme ou une correction manuelle.
GraphRAG génère également des descriptions de communautés, qui sont stockées dans des fichiers community_reports.parquet. Ces descriptions sont d'une importance capitale pour la recherche globale, car elles permettent aux LLM d'acquérir une compréhension de haut niveau des regroupements thématiques au sein des données. Cette approche surpasse significativement la simple recherche par blocs de texte, fournissant un matériel plus structuré et contextuellement enrichi pour la génération de réponses.
Stratégies de Requête dans GraphRAG
GraphRAG propose plusieurs stratégies de recherche, chacune optimisée pour différents types de requêtes. La flexibilité du système est obtenue grâce à la capacité d'affiner les invites (prompts), par exemple, dans les fichiers local_search_system_prompt.txt et global_search_reduce_system_prompt.txt. Cela permet d'adapter le comportement du système à des tâches et des langues spécifiques, garantissant la pertinence des réponses même lorsque les questions sont formulées dans différentes langues, à condition que le LLM et les embeddings le supportent.
Recherche Globale
La recherche globale est conçue pour répondre à des questions larges nécessitant une compréhension de l'ensemble du jeu de données. Elle fonctionne à la manière d'un MapReduce, en examinant les descriptions de communautés extraites du graphe de connaissances. Cela permet des réponses généralisées, mais profondes et contextuellement complètes.
Exemple de requête :
graphrag query "What are the top cyberpunk elements in this story?"
La réponse d'exemple démontre comment le système agrège les informations de diverses parties du graphe, en référençant des éléments spécifiques à l'aide de human_readable_id. Cela permet à l'utilisateur d'approfondir les données sources si nécessaire, en utilisant ces identifiants :
- Intégration de la Technologie et de la Biologie : L'utilisation du neuroperturbateur de Lewis et du pouce prothétique du Yakuza démontre comment la technologie pénètre le corps et influence le contrôle et l'interaction avec l'environnement. De tels éléments sont une manifestation éclatante du thème cyberpunk, où les frontières entre l'organique et le synthétique s'estompent [Données : Rapports (5, 7, 12, 2, +plus)].
- Paysages Urbains Dystopiques : Le récit décrit des espaces urbains dystopiques, tels que Nighttown et le Drome, qui symbolisent la ruine, l'anarchie et les réseaux criminels souterrains. [Données : Rapports (1, 8, 2, +plus)].
- Compétition Corporative et Accords Illicites : Des éléments d'espionnage corporatif et de transactions technologiques illégales, comme l'accord sur l'équipement micro-ondes entre le groupe de reggae aryen et le programme Yakuza, soulignent le thème du contrôle corporatif et des conflits à enjeux élevés. [Données : Rapports (0, 12, 2, +plus)].
- Contraste entre Basse et Haute Technologie : Le symbolisme de la basse technologie, associée à LO TEK et à leur utilisation de produits comme les filtres Yiheyuan, contraste avec les améliorations cybernétiques avancées. [Données : Rapports (9, 2, +plus)].
- Êtres Cyber-Organiques et Compétences Techniques : Des personnages tels que Jones — un cyber-dauphin au passé militaire — et Molly Millions avec ses compétences de combat dans l'utilisation de modules de contrôle, démontrent la synthèse de l'organique et du synthétique. [Données : Rapports (11, 7, 2, +plus)].
Recherche Locale
La recherche locale, contrairement à la recherche globale, se concentre sur les interrelations spécifiques entre les entités. Elle combine les données pertinentes du graphe de connaissances avec des fragments de documents sources, ce qui la rend idéale pour les questions détaillées sur des objets ou des personnes spécifiques. Ce mode est particulièrement utile lorsqu'une compréhension approfondie des rôles et des relations des éléments individuels au sein du système est requise.
Exemple de requête :
graphrag query "Who is JONES and what are his main relationships?" -m local
La réponse d'exemple montre les relations détaillées :
Jones est un personnage décrit comme un dauphin cybernétique doté de capacités sensorielles avancées, associé à l'objet « Funland ». Ses fonctions principales incluent la gestion d'un réservoir d'eau douce et la collaboration avec « Calm ». Jones joue un rôle clé dans les opérations de récupération de données, notamment en collaboration avec Molly et Johnny, où sa physiologie unique permet d'accéder aux données de la puce de Johnny [Données : Entités (28, 33) ; Relations (44, 51, +plus)].
Les principales relations de Jones incluent :
- Avec Molly Millions : Participation à l'opération d'extraction de données de la puce de Johnny, démontrant ses capacités techniques [Données : Entités (33) ; Relations (44, 51, +plus)].
- Avec Johnny : Interaction au sein de l'opération d'extraction de données, où Jones utilise ses capteurs pour accéder aux informations [Données : Entités (33) ; Relations (44, 51, +plus)].
- Avec « Squid » (Dispositifs Supraconducteurs à Interférence Quantique) : Utilisation du dispositif « Squid » pour lire des traces, ce qui est lié aux technologies militaires [Données : Entités (19) ; Relations (25, +plus)].
- Avec Yakuza : Connexion indirecte via l'inquiétude des Yakuza que « Squid » puisse extraire des traces de leur programme de l'esprit de Johnny [Données : Relations (25) ; Entités (19)].
Le Rôle d'Ollama et des Autres Modes de Recherche
L'utilisation d'Ollama en conjonction avec GraphRAG permet le déploiement local de modèles de langage, ce qui est particulièrement pertinent pour les projets avec des ressources computationnelles limitées ou des exigences strictes en matière de confidentialité des données. Ollama démontre la capacité à fonctionner efficacement même avec des modèles 4B, offrant une fonctionnalité de système RAG sans avoir besoin de LLM coûteux basés sur le cloud. Cela abaisse considérablement la barrière à l'entrée pour l'expérimentation et le déploiement de systèmes RAG basés sur des graphes dans un environnement d'entreprise.
En plus de la recherche globale et locale, GraphRAG propose également les modes BASIC et DRIFT :
- Recherche BASIC : Cela représente une recherche vectorielle standard à travers des blocs de documents. Elle sert de référence pour comparer les performances et la qualité des réponses avec des approches plus complexes basées sur les graphes.
- Recherche DRIFT : Cette fonctionnalité est présentée comme un avantage clé de GraphRAG, ressemblant à l'expansion de requêtes dans les systèmes RAG traditionnels. Cependant, il est important de noter que la recherche DRIFT est gourmande en ressources et prend beaucoup plus de temps à s'exécuter, ce qui peut être critique pour les systèmes ayant des exigences élevées en matière de temps de réponse.
Points Clés à Retenir
- Dépasser les Limites de la Recherche Vectorielle : GraphRAG utilise les graphes de connaissances pour une analyse sémantique approfondie et une récupération d'informations, surpassant les méthodes vectorielles traditionnelles en termes de précision et de contexte.
- Déploiement Local avec Ollama : L'intégration avec Ollama permet à GraphRAG d'utiliser efficacement des modèles de langage locaux, réduisant les coûts de calcul et améliorant la confidentialité des données.
- Diverses Stratégies de Recherche : Le système offre des modes de recherche globale, locale, BASIC et DRIFT, chacun optimisé pour des types de requêtes spécifiques, des plus larges aux plus détaillées.
- Configuration et Adaptation Flexibles : La capacité à modifier les invites (prompts) et à analyser les graphes de connaissances générés (
graph.graphml,community_reports.parquet) offre un degré élevé de contrôle et d'adaptation pour les besoins spécifiques des projets. - Pertinence Améliorée des Réponses : En structurant les connaissances sous forme de graphe et en appliquant des algorithmes de requête avancés, GraphRAG améliore significativement la qualité et la pertinence des réponses générées, les rendant plus informatives et précises.
— Editorial Team
Aucun commentaire pour le moment.