Pourquoi ce sujet est important
Un RAG vectoriel retrouve des passages proches d’une question, mais répond moins bien lorsque l’information est répartie entre plusieurs documents ou dépend de relations explicites. GraphRAG ajoute des entités et liens pour naviguer dans cette structure.
Quand le graphe apporte de la valeur
Le graphe est utile pour questions multi-hop, dépendances, réseaux de personnes, composants, événements et chronologies. Pour une FAQ ou des documents indépendants, il peut ajouter une complexité inutile. Commencez par identifier les requêtes ratées par le RAG classique.
Construire le schéma
Définissez types d’entités, relations, propriétés et provenance. Un schéma minimal et stable vaut mieux qu’une ontologie immense. Représentez les relations nécessaires aux questions : “appartient à”, “dépend de”, “a signé”, “précède”.
Extraire entités et relations
Combinez règles, NLP et LLM avec sorties structurées. Chaque fait doit pointer vers le passage source, la date, le modèle et un score ou statut de validation. Dédupliquez les entités et gérez alias avec prudence ; une fusion erronée contamine de nombreuses réponses.
Deux modes de recherche
La recherche locale part d’entités identifiées et explore leurs voisins. La recherche globale peut s’appuyer sur communautés, résumés ou agrégations pour des questions de synthèse. Combinez souvent recherche vectorielle pour trouver les points d’entrée et parcours graphe pour relier les faits.
Générer avec provenance
Transformez les sous-graphes sélectionnés en contexte lisible, avec sources. Limitez profondeur et nombre de chemins. Le modèle doit distinguer faits issus du graphe, inférences et absence d’information. Affichez des citations vers les documents d’origine.
Évaluer le système
Créez des questions mono-hop et multi-hop avec chemins attendus. Mesurez récupération des entités, exactitude des relations, rappel des chemins, qualité de réponse et citations. Comparez avec une baseline vectorielle pour prouver que le graphe justifie son coût.
Maintenir le graphe
Versionnez schéma et extracteur. Prévoyez mises à jour, conflits, suppression et expiration. Une donnée supprimée doit disparaître du texte, des vecteurs, des nœuds, des relations et des résumés.
Exemple concret
Dans une base d’incidents, les documents citent services, versions et dépendances. La recherche vectorielle retrouve un incident similaire, mais GraphRAG relie une bibliothèque vulnérable aux services qui l’utilisent et aux déploiements concernés. La réponse cite chaque incident et manifeste source.
Les erreurs fréquentes
- construire un graphe sans questions multi-hop
- extraire des relations sans provenance
- fusionner des entités sur le seul nom
- explorer trop profondément
- ne pas comparer au RAG classique
- oublier la suppression des relations dérivées
Checklist
- [ ] Requêtes justifiant le graphe
- [ ] Schéma minimal défini
- [ ] Provenance attachée à chaque fait
- [ ] Résolution d’entités évaluée
- [ ] Recherche hybride testée
- [ ] Questions multi-hop annotées
- [ ] Mise à jour et suppression prévues
FAQ
GraphRAG remplace-t-il la base vectorielle ?
Souvent non. Le vecteur trouve des passages ou entités ; le graphe relie les informations.
Faut-il une base graphe dédiée ?
Pas toujours au prototype. Le choix dépend du volume, des parcours et des besoins transactionnels.
Comment éviter les hallucinations du graphe ?
Validez les sorties structurées, conservez la source et séparez faits vérifiés et proposés.
Quel premier cas d’usage ?
Une question importante nécessitant plusieurs documents et mal résolue par votre RAG actuel.
Premier index avec Microsoft GraphRAG
~~~bash python -m venv .venv source .venv/bin/activate pip install graphrag mkdir -p ./graphrag-demo/input cp documents/*.txt ./graphrag-demo/input/ graphrag init --root ./graphrag-demo graphrag index --root ./graphrag-demo ~~~
Comparez ensuite une question locale et une question globale :
~~~bash graphrag query --root ./graphrag-demo --method local "Quels contrats concernent le fournisseur Acme ?" graphrag query --root ./graphrag-demo --method global "Quels sont les principaux risques du portefeuille ?" ~~~
L’indexation extrait entités, relations et communautés avec des appels LLM : testez d’abord un petit corpus et mesurez son coût. Inspectez les tables Parquet et les relations erronées. Appliquez les droits d’accès avant de construire le contexte ; un graphe ne doit jamais relier des informations que l’utilisateur n’est pas autorisé à consulter.