Aller au contenu principal
Retour à Technique
ChatbotArticle cluster

GraphRAG : quand le graphe améliore vraiment votre RAG

Guide GraphRAG : cas d'usage multi-hop, construction du knowledge graph, retrieval local/global, évaluation, et pièges de prod.

Pierre Tonon
Senior Tech Writer (IA conversationnelle), Webotit.ai
8 min de lecture
Réservation

Réservez votre diagnostic IA

Un expert Webotit analyse vos flux, identifie les quick-wins et vous propose une feuille de route personnalisée.

45 min · Gratuit · Réponse sous 24h

Voir les disponibilités
En bref

GraphRAG (Graph Retrieval-Augmented Generation) est une manière de faire du RAG quand votre problème n’est plus “retrouver un paragraphe”, mais “naviguer dans des relations”. On combine une base de passages (RAG) avec un graphe de connaissances (entités + relations) pour mieux gérer le multi-hop, les dépendances métier et les synthèses globales.12 En pratique : GraphRAG est excellent quand les relations sont la donnée (client↔contrat↔garantie), mais il demande une vraie discipline d’extraction et de gouvernance. Sinon, c’est un RAG… avec plus d’endroits où ça peut casser.

GraphRAG, c’est quoi (sans le bingo de buzzwords)

Commençons par une phrase honnête :

GraphRAG, ce n’est pas “mettre vos PDF dans Neo4j”.

Un GraphRAG, c’est un système qui sait répondre à deux types de questions difficiles pour un RAG “top-k chunks” :

  1. les questions relationnelles (qui est lié à quoi),
  2. les questions multi-hop (il faut enchaîner plusieurs relations pour répondre).

Le cœur, c’est un graphe de connaissances : des entités et des relations (ex. Client A — “a souscrit” → Contrat B — “inclut” → Garantie C). C’est exactement la définition d’un knowledge graph (voir glossaire : Knowledge Graph).

GraphRAG ajoute deux super-pouvoirs :

  • retrieval “structuré” : récupérer un sous-graphe pertinent (pas juste des paragraphes),
  • raisonnement “contrôlé” : guider le modèle via la structure (plutôt que l’espérer).

Microsoft a popularisé le terme et propose une implémentation open source de GraphRAG.1 La motivation et les patterns (local vs global) sont aussi décrits dans le papier “From Local to Global: A Graph RAG Approach to Query-Focused Summarization”.2

Le signal d’alarme : quand votre RAG commence à “jouer à deviner”

Un RAG classique échoue souvent de manière polie :

  • il récupère des passages presque bons,
  • il les mélange,
  • et le modèle comble les trous.

Le résultat est très “fluide” et très dangereux.

GraphRAG devient pertinent quand vous voyez ces symptômes :

1) Vos questions ne sont pas “une page = une réponse”

Exemples typiques :

  • “Quels contrats sont impactés par la clause X, et quels clients sont en renouvellement ce trimestre ?”
  • “Quelles exceptions s’appliquent à ce produit dans ce pays, et dans quelles conditions ?”
  • “Quels incidents sont liés à cette version, et quelle équipe a déjà corrigé un problème similaire ?”

Ce n’est pas un paragraphe. C’est une navigation.

2) Les entités comptent plus que la prose

Si votre valeur métier se résume à : “trouve le bon document”, le RAG suffit.

Si votre valeur métier se résume à : “trouve la bonne relation entre des objets”, le graphe devient votre ami.

3) Vous avez besoin d’une vue globale (pas seulement d’extraits)

Le graphe permet de faire des synthèses “globales” : tendances, clusters, communautés, dépendances.

Ce point est central dans l’approche local/global de GraphRAG décrite par Microsoft : local retrieval pour répondre à une question centrée sur des entités, et global retrieval pour produire des résumés plus globaux (communautés, thèmes).2

Architecture GraphRAG : la version qui marche (en 8 étapes)

GraphRAG n’est pas “un composant”. C’est une chaîne.

1

Ingestion : collecter et versionner

Comme pour tout RAG : sources, propriétaire métier, versioning, droits. Sans gouvernance, vous allez indexer des contradictions et les rendre “très accessibles”.

2

Extraction d’entités et relations

On extrait les entités (produits, clients, clauses, tickets) et les relations (a souscrit, dépend de, remplace, est couvert par). Cette étape peut être rule-based, ML classique, ou LLM-assisted selon vos contraintes.

3

Entity resolution (le vrai boss final)

“AXA”, “A.X.A.”, “Groupe AXA” : même entité ou pas ? Sans résolution, votre graphe devient une ville avec trois adresses pour la même maison.

4

Schema du graphe : définir les types

Définissez ce qui est une entité, ce qui est une relation, et quelles propriétés sont nécessaires (date, source, confiance).

5

Grounding : rattacher le graphe aux preuves textuelles

Chaque relation importante doit pointer vers une source (doc/page/paragraphe). Sinon, votre graphe est une opinion.

6

Retrieval : local, global, et hybride

Local : sous-graphe autour d’entités candidates. Global : résumés de communautés/thèmes. Hybride : graphe + passages textuels, pour citer et répondre.

7

Génération : réponse + citations + “je ne sais pas”

Le modèle doit être contraint : répondre à partir des preuves. Si la preuve est absente, il doit le dire et demander un input, pas improviser.

8

Observabilité & évaluation

Logguez : entités détectées, sous-graphe récupéré, passages cités, et résultat. Sans ça, GraphRAG devient impossible à débugger.

Construire le graphe : la partie “data” que tout le monde sous-estime

GraphRAG échoue rarement parce que le modèle “n’est pas assez smart”.

Il échoue parce que le graphe est bancal.

Le schéma minimal viable (MVS) : ce que votre graphe doit contenir pour être utile

Un graphe “enterprise” n’a pas besoin d’être gigantesque. Il a besoin d’être cohérent.

Le schéma minimal viable ressemble souvent à ça :

ÉlémentExemplesPourquoi ça compte
Nœuds (entités)Client, Contrat, Produit, Clause, Ticket, ÉquipeSans entités stables, pas de retrieval structuré
Relations typéesa_souscrit, dépend_de, couvre, remplace, escalade_versLe multi-hop vit (et meurt) ici
Propriétés utilesdate, pays, statut, version, criticitéSans filtres, vous mélangez des vérités
Provenancedoc, url, page, paragraphe, hashSans preuve, pas d'audit ni de correction rapide
Confiance (optionnel)score extraction, validation métierPour router l'incertain vers HITL plutôt que vers l'improvisation

Les trois erreurs classiques

1) L’extraction “one-shot”

Vous extrayez une fois, vous chargez dans le graphe, et vous priez.

En prod, le contenu change. Les termes changent. Les relations changent. Votre extraction doit être itérable (et testée).

2) L’absence de schema (ou le schema “tout est texte”)

Si tout est une string, votre graphe n’est pas un graphe. C’est un JSON qui a pris un abonnement à une base graphe.

3) L’entity resolution au rabais

Sans résolution, vous créez des doublons partout. Puis votre retrieval renvoie un sous-graphe incohérent. Puis le modèle improvise. Puis tout le monde dit : “GraphRAG hallucine”.

Non. GraphRAG révèle votre dette data.

Entity resolution : le playbook “pas glamour, très rentable”

On va le dire simplement : l’entity resolution, c’est la plomberie.

Personne ne vous félicitera. Mais si vous la ratez, tout fuit.

Un playbook réaliste :

1

Privilégier les identifiants canoniques (quand ils existent)

Si votre CRM fournit un ID client, utilisez-le. N’inventez pas une “clé IA”. Les identifiants métiers sont ennuyeux et merveilleux.

2

Normaliser les alias (noms, abréviations, variations)

“AXA”, “A.X.A.”, “Groupe AXA” : gardez des alias, mais mappez vers une entité canonique.

3

Résoudre par règles d'abord, puis par modèle si nécessaire

Beaucoup de cas se règlent avec des règles + tables de correspondance. Gardez le ML/LLM pour les cas ambigus à fort volume.

4

Tracer les décisions de résolution

Stockez la règle appliquée / la source / la confiance. Sinon, vous ne saurez pas pourquoi deux entités ont fusionné… ni comment corriger.

Si vous retenez une règle : le graphe est un produit. Il a une qualité, une dette, des régressions, et un owner. GraphRAG rend ça visible.

Extraction : open source, commercial, ou “LLM-assisted” ?

Vous avez trois grandes voies, chacune avec un coût caché.

ApprocheQuand c'est bienCe que ça coûtePiège typique
Règles / regex / patternsDonnées structurées, conventions stablesTemps d’ingénierie initialFragile aux exceptions (la vraie vie)
ML classique (NER/RE)Volumes de données + annot, domaine stableDataset + entraînement + maintenanceDrift et coûts d’annotation
LLM-assisted extractionDémarrage rapide, schéma évolutifCoût tokens + contrôle qualitéLe modèle “invente” si on ne valide pas

Dans tous les cas, vous avez besoin d’un contrôle qualité (sampling, validation métier) et d’un rattachement aux sources.

Pour le cadre conceptuel “Knowledge Graph”, un bon point d’entrée est la revue “Knowledge Graphs” (survey) qui couvre acquisition, représentation et applications.3

Retrieval GraphRAG : local, global, et surtout hybride

Le débat “graphe vs texte” est un faux débat.

Le graphe vous donne :

  • structure,
  • navigation,
  • contrôle.

Le texte vous donne :

  • preuve,
  • nuance,
  • citations.

Local retrieval : le sous-graphe autour d’une entité

Pattern : on détecte des entités dans la question, on retrouve les nœuds correspondants, puis on récupère le voisinage (1–2 hops), éventuellement filtré (date, type).

Exemple : “garantie annulation Belgique” → entité Garantie annulation + entité Belgique → sous-graphe (produits, clauses, exceptions).

Global retrieval : résumer des communautés (quand l’utilisateur demande “la vue d’ensemble”)

Certaines questions ne veulent pas un fait. Elles veulent une synthèse :

  • “Quels sont les grands types de risques ?”
  • “Quels sujets reviennent le plus dans les incidents ?”
  • “Quelles procédures sont les plus fréquentes ?”

L’approche “local-to-global” décrite par Microsoft formalise cette idée : construire des résumés à différents niveaux pour répondre à des questions “globales”.2

Hybride : graphe + passages (le combo le plus “prod”)

Le pattern qui tient :

  1. le graphe vous dit où regarder,
  2. le retrieval texte vous donne la preuve,
  3. le LLM rédige en citant.

Ce pattern est souvent supérieur à “LLM + graphe” seul, parce qu’il garde une trace auditable.

Évaluation : comment savoir si votre GraphRAG s’améliore (ou se dégrade)

On évalue un GraphRAG à deux niveaux :

1) Qualité graphe (data)

  • taux de doublons (entity resolution),
  • couverture (avez-vous les entités critiques ?),
  • cohérence du schema,
  • provenance (sources attachées).

2) Qualité QA (produit)

  • retrieval : sous-graphe pertinent ?
  • groundedness : réponse alignée avec sources ?
  • utilité : actionnable ?

RAGAS propose une approche et des métriques pour évaluer des systèmes RAG (groundedness, pertinence, etc.).4

Stack 2026 : open source vs commercial (et où ça se joue vraiment)

Base graphe : open source / managed

Le choix “graph DB” dépend de votre infra et de votre compétence interne.

  • Open source / self-host : Neo4j community, solutions graph open-core, etc.
  • Managed : services cloud type Neptune (ou équivalents), pour réduire l’ops.

GraphRAG n’impose pas un fournisseur. Il impose une exigence : requêtes rapides + provenance.

Frameworks / patterns

  • Microsoft GraphRAG (open source).1
  • Frameworks RAG plus généraux (LangChain, LlamaIndex, etc.) qui peuvent intégrer des graph stores (avec des patterns variables selon versions).

Les pièges de prod (et comment ne pas les découvrir en incident)

1) Le graphe devient obsolète (freshness)

Si vos données changent, votre graphe doit suivre : incrémental, versionné, et auditable.

2) La surface d’attaque augmente

Plus de pipelines = plus d’endroits où des données non fiables entrent.

Tout ce qui vient d’un document ou d’un utilisateur doit être traité comme input non fiable (prompt injection, data poisoning).

3) L’UX ment

Un GraphRAG qui ne montre pas ses preuves donne une fausse impression de certitude.

Le bon produit rend l’incertitude visible : “je cite”, “je ne trouve pas”, “voici les passages”.

Conclusion : GraphRAG, c’est un investissement (et ça peut être un cheat code)

GraphRAG n’est pas la voie “facile”. C’est la voie structurée.

Si vos questions sont relationnelles, si vos utilisateurs raisonnent par entités (“ce contrat”, “ce client”, “cette clause”), et si votre entreprise a besoin d’audit, alors GraphRAG peut devenir un cheat code : vous passez d’un chatbot qui “retrouve des phrases” à un système qui navigue dans votre réalité métier.

Mais si vous n’avez pas d’owner data, pas de provenance, pas de tests d’extraction, GraphRAG ne sera pas “un super RAG”. Il sera une façon sophistiquée de rendre vos incohérences plus faciles à consommer.

FAQ

Questions frequentes

GraphRAG remplace-t-il un RAG hybride (BM25 + vecteurs + reranking) ?

Non. Très souvent, le chemin gagnant est : RAG hybride d'abord (précision + filtres + reranking), puis GraphRAG quand les questions sont vraiment relationnelles/multi-hop. GraphRAG est un amplificateur… pas un raccourci magique.

Est-ce que GraphRAG vaut le coût pour une FAQ ?

Rarement. Pour une FAQ, un RAG classique bien fait (chunking, métadonnées, éval, guardrails) est plus simple, plus rapide, et souvent meilleur.

Quelle est la principale cause d'échec d'un GraphRAG ?

L'entity resolution et la gouvernance. Le graphe devient incohérent, le retrieval devient bruyant, et le modèle compense en improvisant. GraphRAG n'est pas fragile : il est exigeant.

Sources et references

  1. [1]Microsoft, GraphRAG (GitHub repo).
  2. [2]Edge et al., “From Local to Global: A Graph RAG Approach to Query-Focused Summarization”.
  3. [3]Hogan et al., “Knowledge Graphs”.
  4. [4]RAGAS, documentation / repo.
GraphRAGKnowledge GraphRAGarchitecturemulti-hop

Solutions associées