Retrieval-augmented generation (RAG) has a bit of a problem with the relations between the chunks. I’ve thought about a few solutions and the one I think is the most promising involves a series of summarization steps along with some curated context that stitches the ideas in a corpus of material together in a coherent way. That is to say, it’s a manual and brute-force method.
GraphRAG is Microsoft’s answer to that problem and it’s less manual and brute-force. It extracts entities and the relationships between them into a graph, resolves duplicate references down into single nodes, then runs the Leiden algorithm to cluster tightly-connected entities into communities, with a summary pre-written for each one before any querying happens.
And it’s been around a lot longer than I’ve been thinking about the problem, all working and wrapped up with a big bow on it. Thanks you Microsoft!
