GraphRAG est supérieur au RAG pour alimenter les moteurs de réponse IA

Microsoft met à disposition du public une nouvelle technologie appelée GraphRAG, qui permet aux chatbots et aux moteurs de réponse de connecter les points à travers un ensemble de données complet, surpassant largement la génération augmentée par récupération standard (RAG).

Quelle est la différence entre RAG et GraphRAG ? RAG (Retrieval-Augmented Generation) est une technologie qui permet à un LLM d’accéder à une base de données comme un index de recherche et de l’utiliser comme base pour répondre à une question. Il peut être utilisé pour relier un grand modèle de langage et un index de moteur de recherche conventionnel.

Le principal avantage de RAG est qu’il peut utiliser des données fiables et autoritaires pour répondre aux questions. RAG permet également aux chatbots IA génératifs d’utiliser des informations à jour pour répondre à des questions sur des sujets que le LLM n’a pas été formé. C’est une approche utilisée par des moteurs de recherche IA comme Perplexity.

L’avantage de RAG est lié à son utilisation des embeddings. Les embeddings sont une manière de représenter les relations sémantiques entre les mots, les phrases et les documents. Cette représentation permet à la partie récupération de RAG d’associer une requête de recherche à un texte dans une base de données (comme un index de recherche).

Cependant, l’inconvénient de l’utilisation des embeddings est qu’ils limitent le RAG à associer des textes à un niveau granulaire (par opposition à une portée globale à travers les données).

Microsoft explique :

« Comme le RAG naïf ne considère que les k morceaux de texte d’entrée les plus similaires, il échoue. Pire encore, il associera la question à des morceaux de texte qui sont superficiellement similaires à cette question, entraînant des réponses trompeuses. »

L’innovation de GraphRAG est qu’il permet à un LLM de répondre aux questions en se basant sur l’ensemble du jeu de données.

Ce que fait GraphRAG, c’est qu’il crée un graphe de connaissances à partir des documents indexés, également appelés données non structurées. L’exemple évident de données non structurées sont les pages web. Ainsi, lorsque GraphRAG crée un graphe de connaissances, il crée une représentation « structurée » des relations entre diverses « entités » (comme des personnes, des lieux, des concepts et des choses) qui est ensuite plus facilement comprise par les machines.

GraphRAG crée ce que Microsoft appelle des « communautés » de thèmes généraux (niveau élevé) et de sujets plus granulaires (niveau bas). Un LLM crée ensuite une synthèse de chacune de ces communautés, une « synthèse hiérarchique des données » qui est ensuite utilisée pour répondre aux questions. C’est la percée car elle permet à un chatbot de répondre aux questions en se basant davantage sur la connaissance (les synthèses) plutôt qu’en dépendant des embeddings.

Voici comment Microsoft l’explique :

« Utiliser un LLM pour résumer chacune de ces communautés crée une synthèse hiérarchique des données, fournissant une vue d’ensemble d’un jeu de données sans avoir besoin de savoir quelles questions poser à l’avance. Chaque communauté sert de base à une synthèse communautaire qui décrit ses entités et leurs relations.

…Les synthèses communautaires aident à répondre à de telles questions globales car l’index de graphe des descriptions d’entités et de relations a déjà pris en compte tous les textes d’entrée lors de sa construction. Par conséquent, nous pouvons utiliser une approche map-reduce pour répondre aux questions qui conserve tout le contenu pertinent du contexte global des données… »

Exemples de RAG versus GraphRAG Le document de recherche original sur GraphRAG illustrait la supériorité de l’approche GraphRAG pour répondre aux questions pour lesquelles il n’y a pas de données exactes correspondantes dans les documents indexés. L’exemple utilise un jeu de données limité des nouvelles russes et ukrainiennes du mois de juin 2023 (traduit en anglais).

Question de correspondance de texte simple La première question utilisée en exemple était « Qu’est-ce que Novorossiya ? » et RAG et GraphRAG ont tous deux répondu à la question, avec GraphRAG offrant une réponse plus détaillée.

La réponse courte, en passant, est que « Novorossiya » se traduit par Nouvelle Russie et fait référence aux terres ukrainiennes conquises par la Russie au XVIIIe siècle.

La deuxième question d’exemple nécessitait que la machine établisse des connexions entre les concepts au sein des documents indexés, ce que Microsoft appelle une « tâche de synthèse axée sur la requête (QFS) », différente d’une simple tâche de récupération basée sur le texte. Cela nécessite ce que Microsoft appelle, « connecter les points ».

La question posée aux systèmes RAG et GraphRAG était :

« Qu’a fait Novorossiya ? »

Voici la réponse de RAG :

« Le texte ne fournit pas d’informations spécifiques sur ce que Novorossiya a fait. »

GraphRAG a répondu à la question « Qu’a fait Novorossiya ? » avec une réponse de deux paragraphes qui détaille les résultats du mouvement politique Novorossiya.

Voici un court extrait de la réponse de deux paragraphes :

« Novorossiya, un mouvement politique en Ukraine, a été impliqué dans une série d’activités destructrices, ciblant particulièrement diverses entités en Ukraine [Entités (6494, 912)]. Le mouvement a été lié à des plans de destruction de propriétés de plusieurs entités ukrainiennes, y compris Rosen, l’usine de conserves d’Odessa, le centre de transmission radio-télévision régional d’Odessa et la compagnie nationale de télévision d’Ukraine [Relations (15207, 15208, 15209, 15210)]…

…Le bureau du procureur général en Ukraine a rapporté la création de Novorossiya, indiquant la prise de conscience et la préoccupation potentielle du gouvernement concernant les activités de ce mouvement… »

Ce qui précède n’est qu’une partie de la réponse extraite du jeu de données limité d’un mois, illustrant comment GraphRAG est capable de connecter les points à travers tous les documents.

GraphRAG désormais disponible publiquement Microsoft a annoncé que GraphRAG est disponible publiquement pour tout le monde.

« Aujourd’hui, nous sommes heureux d’annoncer que GraphRAG est maintenant disponible sur GitHub, offrant une récupération d’informations plus structurée et une génération de réponses plus complète que les approches RAG naïves. Le référentiel de code GraphRAG est complété par un accélérateur de solution, offrant une expérience API facile à utiliser hébergée sur Azure qui peut être déployée sans code en quelques clics. »

Microsoft a publié GraphRAG afin de rendre les solutions basées sur cette technologie plus accessibles au public et d’encourager les retours pour des améliorations.