Skip to content

GraphRAG 与知识图谱检索

普通 RAG 擅长「局部事实问答」,但面对「总结整个知识库的主题」「梳理实体间的关系链」这类全局性、关系性问题就答不好——因为它只能召回零散的文本块。GraphRAG 用知识图谱重构检索,是微软 2024 年提出后迅速走热的方向。基础对比见 RAG 进阶

一、普通 RAG 答不好什么?

问题类型               普通向量 RAG
"X 的定义是什么"        ✅ 召回相关段落即可
"列出所有与 X 相关的人"  ⚠️ 信息散在多处,召回不全
"总结这批文档的主题"     ❌ 没有任何单一 chunk 含答案
"A 和 B 是怎么联系的"    ❌ 关系跨越多个文档,向量检索抓不到

根因:向量检索是「找最像问题的几个文本块」,它不理解实体之间的关系,也没有全局视角

二、GraphRAG 的核心思路

把「检索文本块」换成「检索知识图谱」:

索引期(离线,贵):
  文档 → LLM 抽取实体 + 关系 → 构建知识图谱 → 社区检测(聚类) → LLM 为每个社区生成摘要

查询期:
  局部问题 → 定位相关实体 → 图遍历取邻域子图 → 生成
  全局问题 → 各社区摘要分别回答 → 汇总成最终答案(map-reduce)

两个关键构造:

  1. 知识图谱:节点是实体(人、组织、概念),边是关系(「任职于」「导致」)。用 LLM 从文本里抽取,比传统 NER 更灵活。
  2. 社区摘要(Community Summaries):用社区检测算法(如 Leiden)把图聚成层次化的「社区」,再让 LLM 给每个社区写摘要。这是 GraphRAG 能回答全局问题的关键——全局问题被分解成「对各社区摘要分别提问再汇总」。

三、局部检索 vs 全局检索

Local Search(局部)Global Search(全局)
适合具体实体相关的问题跨整库的总结/主题问题
做法找到实体 → 取其邻域子图 + 相关文本遍历所有社区摘要 → map-reduce 汇总
例子「张三在哪些项目里出现」「这批合同的主要风险类型有哪些」
成本较低高(要过所有社区摘要)

四、GraphRAG 家族与演进

  • 微软 GraphRAG:开创者,全量 LLM 抽取 + 社区摘要,效果好但索引成本高昂(每个文档都要过 LLM 抽实体关系)。
  • LightRAG:简化图结构 + 增量更新,大幅降低构建和更新成本,支持新文档增量入图。
  • 而后的混合路线:图检索 + 向量检索结合(图管关系/全局,向量管语义/局部),是落地常见形态。
  • HippoRAG:借鉴海马体记忆机制,用个性化 PageRank 在知识图谱上做多跳检索。

五、GraphRAG vs 向量 RAG:怎么选

维度向量 RAGGraphRAG
局部事实问答✅ 强且便宜可以但杀鸡用牛刀
全局总结/多跳关系❌ 弱✅ 强
索引成本低(只需 embedding)(LLM 抽取 + 社区摘要)
增量更新容易较难(图要重算社区,LightRAG 缓解)
可解释性弱(一堆文本块)强(实体关系路径可视化)

务实结论:大多数业务用「向量 RAG + 混合检索 + rerank」就够;只有当关系推理和全局理解确实是核心需求(如尽调、文献综述、复杂知识管理、反欺诈关系网)且能承担索引成本时,GraphRAG 才值得上。常见做法是混合:默认走向量,关系/全局类问题路由到图检索。

六、工程落地挑战

  • 抽取质量:LLM 抽实体关系会有噪声和不一致(同一实体多种叫法 → 需要实体消歧/对齐),图质量直接决定上限。
  • 成本:全量 LLM 抽取对大库是真金白银,要评估值不值;可先抽高价值文档。
  • 增量更新:文档变了,图和社区摘要要不要重算?这是 GraphRAG 落地最大的工程痛点,选 LightRAG 等支持增量的方案缓解。
  • 评估:全局问题没有标准答案,评估更难,常需 LLM-as-a-judge + 人评(见 RAG 评估)。

高频追问

Q:GraphRAG 解决了普通 RAG 的什么问题? 普通向量 RAG 只能召回零散文本块,答不好「全局总结」和「跨文档关系推理」这两类问题。GraphRAG 把文档变成实体-关系知识图谱 + 社区摘要,用图遍历做关系推理、用社区摘要的 map-reduce 做全局总结。

Q:GraphRAG 的索引为什么贵? 要用 LLM 把每个文档里的实体和关系都抽取出来构图,再对图做社区检测并为每个社区生成摘要——这些都是大量 LLM 调用。大知识库的构建成本可能是纯向量方案的几十倍,这是它最大的落地门槛。

Q:Local search 和 Global search 区别? Local 针对具体实体:定位实体→取邻域子图+相关文本→生成,便宜;Global 针对全局问题:遍历所有社区摘要→map-reduce 汇总,贵。系统按问题类型路由到对应模式。

Q:什么时候该用 GraphRAG,什么时候不该? 该用:关系推理/全局总结是核心需求,且能承担索引成本(尽调、文献综述、知识管理、关系网分析)。不该用:以局部事实问答为主、延迟成本敏感——这种场景向量 RAG + rerank 更划算。实践常做混合 + 路由。

Q:GraphRAG 和普通 RAG 能结合吗? 能,且是主流落地方式:向量检索管语义/局部问答,图检索管关系/全局问答,用一个路由层按问题类型分发;或在同一次检索里融合图结构信号和向量相似度。

Q:构建知识图谱时实体重复/歧义怎么办? 需要实体消歧与对齐(entity resolution):把「微软」「Microsoft」「MSFT」归并为同一节点。常用规则 + embedding 相似度 + LLM 判断结合。图质量取决于此,做不好会导致关系断裂、检索失效。

基于 MIT 许可发布