GraphRAG : quand le graphe améliore vraiment votre RAG
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.
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ésGraphRAG (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” :
- les questions relationnelles (qui est lié à quoi),
- 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.
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”.
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.
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.
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).
Grounding : rattacher le graphe aux preuves textuelles
Chaque relation importante doit pointer vers une source (doc/page/paragraphe). Sinon, votre graphe est une opinion.
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.
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.
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ément | Exemples | Pourquoi ça compte |
|---|---|---|
| Nœuds (entités) | Client, Contrat, Produit, Clause, Ticket, Équipe | Sans entités stables, pas de retrieval structuré |
| Relations typées | a_souscrit, dépend_de, couvre, remplace, escalade_vers | Le multi-hop vit (et meurt) ici |
| Propriétés utiles | date, pays, statut, version, criticité | Sans filtres, vous mélangez des vérités |
| Provenance | doc, url, page, paragraphe, hash | Sans preuve, pas d'audit ni de correction rapide |
| Confiance (optionnel) | score extraction, validation métier | Pour 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 :
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.
Normaliser les alias (noms, abréviations, variations)
“AXA”, “A.X.A.”, “Groupe AXA” : gardez des alias, mais mappez vers une entité canonique.
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.
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é.
| Approche | Quand c'est bien | Ce que ça coûte | Piège typique |
|---|---|---|---|
| Règles / regex / patterns | Données structurées, conventions stables | Temps d’ingénierie initial | Fragile aux exceptions (la vraie vie) |
| ML classique (NER/RE) | Volumes de données + annot, domaine stable | Dataset + entraînement + maintenance | Drift et coûts d’annotation |
| LLM-assisted extraction | Démarrage rapide, schéma évolutif | Coû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 :
- le graphe vous dit où regarder,
- le retrieval texte vous donne la preuve,
- 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
Articles associés
RAG pour chatbot : guide 2026 (anti-hallucination)
Le RAG (Retrieval-Augmented Generation) est la technique qui permet à un chatbot IA de répondre à partir de vos documents (contrats, FAQ, procédures) au lieu d'improviser. On récupère d'abord des passages pertinents via une recherche (souvent vectorielle), pu
LireComparatif RAG 2026 : vanilla, hybride, GraphRAG, Visual RAG, Web
Si vous n’avez qu’une minute : un RAG est une recette “retrieve + generate” (on récupère des passages, puis le LLM répond à partir d’eux). En 2026, la question n’est plus “faut-il un RAG ?” mais “quel RAG, exactement ?”. Vanilla RAG suffit pour une base docum
LireEmbeddings & vector DB : base d'un chatbot RAG (2026)
Les embeddings transforment un texte (ou une image) en vecteur numérique afin de faire de la recherche sémantique. Dans un chatbot RAG, on stocke les embeddings des documents dans une vector database; à chaque question, on embed la requête et on récupère les
Lire