GraphRAG laat een AI-assistent vragen beantwoorden over een grote verzameling eigen documenten, zoals jaren aan klantmails of projectverslagen. Nog voordat iemand iets vraagt, leest een AI-model alle tekst en brengt het de personen, organisaties en plaatsen daarin in kaart, met hun onderlinge verbanden. Die kaart helpt bij vragen waarop geen enkel document los het antwoord geeft, zoals "Waarover klagen klanten het vaakst?"
Waar komt GraphRAG vandaan?
Microsoft Research stelde GraphRAG in februari 2024 voor in een blogpost en beschreef het in een paper van Edge e.a. (april 2024). De code staat sinds juli 2024 op GitHub; de paper noemt ook versies voor LangChain, LlamaIndex, NebulaGraph en Neo4j. In augustus 2026 zette Microsoft de repository grotendeels in onderhoudsmodus en stopte het met nieuwe functies.
Waarom is gewone RAG niet genoeg?
Gewone RAG (retrieval-augmented generation) zet de vraag om in een embedding en haalt de passages op die qua betekenis het dichtst bij liggen. Microsoft noemt twee soorten vragen waarbij dat tekortschiet. Bij de eerste moet je feiten verbinden die in verschillende documenten staan en alleen via een gedeelde naam samenhangen. In de demo van Microsoft op nieuwsartikelen kon gewone RAG niet zeggen wat de beweging Novorossiya had gedaan, omdat geen van de opgehaalde passages haar noemde. GraphRAG vond de naam in zijn graaf en antwoordde met verwijzingen naar de bronnen. De tweede soort gaat over de hele verzameling, zoals de vraag wat de belangrijkste thema's in de dataset zijn. Niets in zo'n vraag wijst naar een bepaalde passage.
Hoe werkt het?
GraphRAG bouwt eerst een index, zoals de documentatie beschrijft:
- Het knipt de documenten in kleine teksteenheden.
- Een groot taalmodel haalt uit elke eenheid de entiteiten (standaard personen, organisaties, plaatsen en gebeurtenissen), hun relaties en de belangrijkste beweringen. Samen vormen die een kennisgraaf.
- Een clusteralgoritme, Leiden, deelt sterk verbonden entiteiten in groepen in (communities), op meerdere niveaus.
- Het model vat elke community samen, van onderop.
Bij een vraag over de hele verzameling laat global search het model uit elke portie samenvattingen een deelantwoord schrijven en die daarna samenvoegen. Local search begint bij de entiteiten die in de vraag voorkomen en volgt hun verbindingen.
Wat liet het onderzoek zien?
Edge e.a. testten GraphRAG op twee verzamelingen van elk ongeveer een miljoen tokens, podcasttranscripten en nieuwsartikelen, met vragen over de verzameling als geheel. Een tweede taalmodel beoordeelde telkens twee antwoorden naast elkaar. Tegenover gewone RAG werden de antwoorden van GraphRAG in 72 tot 79% van de vergelijkingen vollediger bevonden en in 62 tot 81% gevarieerder, afhankelijk van de verzameling en het niveau van de graaf. Gewone RAG gaf de meest directe antwoorden. De auteurs hebben niet gemeten hoe vaak elke methode dingen verzint.
Waar gaat het mis?
- Kosten. Voor de graaf moet een taalmodel alle tekst lezen. De README waarschuwt dat indexeren duur kan uitvallen en raadt aan klein te beginnen; voor de podcastverzameling duurde het 281 minuten met GPT-4 Turbo. LazyGraphRAG van Microsoft (november 2024) slaat de samenvattingen vooraf over en indexeert voor 0,1% van de kosten van volledige GraphRAG.
- Afstemmen. Volgens de README geeft GraphRAG zonder aanpassingen niet per se de beste resultaten op jouw data, en Microsoft raadt sterk aan de prompts af te stemmen.
- Overbodig. Voor wie-, wat-, wanneer- en waar-vragen waarvan het antwoord in één passage staat, doet gewone vector-RAG het volgens Microsoft goed.
Voorbeeld
Stel: een installatiebedrijf heeft vijf jaar aan servicerapporten. "Hoeveel garantie zit er op cv-ketel model X?" is een vraag voor gewone RAG: één passage bevat het antwoord. "Welke storingen komen steeds terug, en bij welke leveranciers?" niet, want het antwoord zit verspreid over honderden rapporten. GraphRAG heeft producten, leveranciers en storingen vooraf over alle rapporten heen aan elkaar gekoppeld, zodat het model uit zijn samenvattingen kan antwoorden en de onderliggende rapporten kan noemen. Nieuwe rapporten moeten ook geïndexeerd worden, wat weer modelaanroepen kost.
Bronnen
- Edge et al. (Microsoft Research): From Local to Global, a Graph RAG Approach to Query-Focused Summarization (2024)arXiv
- Microsoft Research: GraphRAG, Unlocking LLM discovery on narrative private dataRSS
- Microsoft: GraphRAG repository and READMEGitHub
- Microsoft: GraphRAG documentationWeb
- Microsoft Research: LazyGraphRAG, Setting a new standard for quality and costRSS
