GraphRAG

一句话定义

GraphRAG 是 Microsoft 提出的对 Naive RAG 的结构化升级——先构建知识图谱,再通过 Leiden 算法社区聚类生成分层社区摘要,查询时结合图结构和社区摘要回答,解决了传统 RAG “无法连点成线”和”无法全局理解”两大痛点。

摘要

GraphRAG 的核心流程:源文档 → 实体/关系提取 → 构建知识图谱 → Leiden 算法社区聚类 → 分层社区摘要 → 查询时通过 Global Search(社区摘要做全局推理)或 Local Search(从特定实体出发沿图谱边扩展)回答。

与 Naive RAG 相比,GraphRAG 通过图结构实现”连点成线”,通过社区摘要实现”全局理解”。但构建成本高(需要大量 LLM 调用做实体提取),增量更新困难,对源文档质量敏感。

核心机制

  • Global Search:利用社区摘要做全局推理,如”整个代码库的设计模式有哪些?”
  • Local Search:从特定实体出发,沿图谱边扩展到邻域,如”UserService 关联了哪些组件?“

应用 / 使用场景

  • 全局性问题:需要跨整个语料归纳的问题,如”这个代码库整体采用了哪些设计模式""这批文档反复强调的主题是什么”,靠 Global Search 基于社区摘要做自上而下的推理
  • 关系密集型领域:实体之间存在大量显式关联的场景(组织架构、依赖图、知识网络),靠 Local Search 沿图谱边扩展邻域逐步取证
  • 知识工程基座:作为更上层范式(如 Pyramid-KB)的图谱关联层,为分层检索补充跨实体的连接能力

局限与争议

  • 构建成本高:实体与关系提取依赖大量 LLM 调用,首次索引一个中等规模语料的开销显著高于 Naive RAG
  • 增量更新困难:新增文档往往要重算受影响社区的聚类与摘要,难以做到低成本的实时增量更新
  • 对源文档质量敏感:实体识别错误会沿图谱被放大,“垃圾进垃圾出”在图结构里更难被发现和纠正
  • 并非银弹:对简单的事实型检索,平铺向量检索反而更快更省,GraphRAG 的收益集中在需要”连点成线”和”全局理解”的复杂问题上

与其他实体的关系

  • RAG —— GraphRAG 是 RAG 的结构化升级
  • LightRAG —— 轻量级图 RAG 实现
  • Pyramid-KB —— 金字塔知识库在 GraphRAG 基础上增加了层次感知和角色适配