K7.1 GraphRAG:回答「拼不出来」的问题
一个普通 RAG 答不出的问题
到现在为止,我们的 RAG 都在做同一件事:拿问题去找和它最像的那几段资料(K1)。这对「答案就写在某一段里」的问题很好用。可有些问题偏偏不是这样:
「张伟的经理的助理是谁?」
翻遍知识库,没有任何一段直接写着这个答案。它藏在三段资料的关系链里:张伟属于技术部、技术部的经理是李娜、李娜的助理是王芳。你得把这三段串起来才能推出「王芳」。这叫多跳推理——A→B、B→C,所以 A→C。
而单段相似检索,恰恰跨不过这个坎。亲眼看一遍:
为什么普通 RAG 会卡壳
玩过实验你会发现:普通 RAG 模式下,检索按「和问题的相似度」排序,可问题「张伟的经理的助理是谁」里压根没提「技术部」「李娜」——于是中间那两跳「技术部的经理是李娜」「李娜的助理是王芳」相似度太低、根本捞不回来。它只拿到了链条的头(张伟属于技术部),然后就卡住了。
根子在于:相似检索找的是「和问题像的段」,可多跳问题的中间环节,字面上和问题一点都不像。这是朴素 RAG 的结构性软肋。
GraphRAG 的思路:先连成图,再顺着走
GraphRAG 换了个存法。它不满足于把资料切成一段段孤立的块,而是先从文档里把实体和关系抽出来,连成一张知识图谱:
张伟 —属于→ 技术部 —经理→ 李娜 —助理→ 王芳
检索时,它不只找相似段,还能顺着关系边一跳跳走。切到实验的 GraphRAG 模式,点「顺着关系走一遍」——它从「张伟」出发,沿「属于→经理→助理」三跳到位,稳稳走到「王芳」。多跳问题,迎刃而解。微软在 2024 年把这套思路做成了开源方案 GraphRAG,带火了这个方向。
但它有代价。 建图谱要先花一大笔力气:用大模型从每篇文档里抽实体、抽关系、去重、连边——又慢又贵。所以 GraphRAG 不是来取代普通 RAG 的,而是专治「关系密集、多跳」的硬骨头:梳理整个组织架构、跨多份文档追一条因果链、回答「把这批文档整体串起来看,讲了什么」这类全局问题。
两个提醒。其一:图谱质量取决于抽取质量——要是大模型把关系抽错了(把「李娜的助理是王芳」抽成「王芳的助理是李娜」),顺着走只会走进沟里,这是垃圾进垃圾出的新版本。其二:现实中很多日常问答是单跳的(「退货政策是什么」),普通 RAG 又快又好,硬上 GraphRAG 纯属杀鸡用牛刀。2024-2026 年 RAG vs GraphRAG 的评测结论也是这样:各有胜场,看问题类型——多跳、全局、关系型问题 GraphRAG 强,简单事实问答普通 RAG 更划算。
小结
- 多跳问题:答案没写在任何单段里,得串起好几段才能推出来(张伟→技术部→李娜→ 王芳)。
- 普通 RAG 卡壳,是因为中间环节字面上和问题不像、相似检索捞不回来。
- GraphRAG 先把资料抽成「实体+关系」图谱,检索时顺着关系边遍历,多跳迎刃而解(微软 2024 开源)。
- 代价是建图又慢又贵;它专治关系密集、多跳、全局型问题,别拿它做简单事实问答。
延伸阅读
- 微软 GraphRAG(2024)——把「图谱 + 社区检测 + 分层摘要」做成开源方案,带火了这个方向。
- RAG vs GraphRAG 系统评测(2025)——两者各自的胜场,帮你判断该用哪个。
- 下一节 K7.2 Agentic RAG:让模型自己决定查什么、查几轮。