GraphRAG为什么让AI告别幻觉?从分块检索到知识图谱的演进

0 阅读5分钟

一、一个被忽视的问题

传统RAG(检索增强生成)已经成了大模型落地的标配方案——把文档切块、向量化、检索、喂给LLM。

但一个普遍存在的现象是:在需要跨文档、多跳推理的场景下,RAG依然会产生幻觉。

比如问一个医疗场景的问题:

“高血压合并糖尿病的患者,首选的ACEI类药物是哪几种?禁忌症分别是什么?”

传统RAG的答案是:拼凑了几个相关的文本块,但把“卡托普利”列到了禁忌症列表里——原文说的是“严重肾功能不全者禁用”,AI把因果关系搞混了。

问题出在哪里?

不是RAG不够好,而是“分块检索”这种方式,天然无法理解实体之间的逻辑关系。


二、传统RAG的局限性:为什么“分块”不够?

传统RAG的核心流程是:分块 → 向量化 → 相似度检索 → 拼接生成。

这套流程的问题在于:

问题说明后果
语义断裂把一个完整概念切到不同块里关键信息丢失
关系丢失实体间的因果关系、时序关系被忽略逻辑错误
无法多跳推理“A影响B,B影响C,A对C的影响?”需要跨越多个块的推理无法完成
检索噪声检索到相似但无关的内容LLM被误导

这些特征在单文档、简单问答场景下问题不大,但在需要理解关系、跨文档推理的场景下,就是硬伤。

因此,一个合理的结论是:

传统RAG解决的是“找相似文本”,企业真正需要的是“理解实体关系”。


三、什么是GraphRAG?

GraphRAG的思路很直观:把知识从“一堆文本块”变成“一张关系网”。

用阿里云技术文档的话说:“GraphRAG通过在传统向量检索的基础上引入知识图谱,将非结构化文本中隐含的实体和关系显式化、结构化”。

类比一下:

  • 传统RAG ≈ 查字典(找到包含关键词的段落)
  • GraphRAG ≈ 看地图(看到实体之间的连接路径)

一个完整的GraphRAG流程,通常包含三个层次:

3.1 知识抽取层

从非结构化文本中提取实体-关系-实体三元组。例如:

  • (高血压,合并,糖尿病)
  • (ACEI类药物,治疗,高血压)
  • (卡托普利,属于,ACEI类药物)

3.2 图谱存储与检索层

把三元组存入图数据库,检索时同时进行:

  • 向量检索:找到相关文本块(保召回)
  • 图检索:找到相关实体和关系子图(保精度)

3.3 增强生成层

把“文本块 + 关系子图”一起喂给LLM,让模型基于结构化的关系信息生成答案。


四、核心区别:一张表说清楚

维度传统RAGGraphRAG
知识表示文本块(Chunk)实体-关系-实体(三元组)
检索方式向量相似度图检索 + 向量检索
推理能力单步匹配多跳路径推理
可解释性黑盒可追溯推理路径
典型失效场景跨文档关系问题关系断裂(正在被解决)

效果差异有多大?

一篇发表在生物医学信息学期刊上的研究显示:

  • 传统ChatGPT-4在临床问答上的准确率:37%
  • DeepSeek-R1:52%
  • 基于知识图谱的GraphRAG框架:98%

幻觉率从63%降至1.7%。


五、GraphRAG的技术演进方向

GraphRAG本身也在快速演进。几个值得关注的方向:

5.1 静态图谱 → 动态图谱

传统GraphRAG依赖预构建的静态知识图谱。最新的Relink框架提出了“边推理边构建”的新范式——根据具体查询动态构建证据图谱,在五个开放域问答基准测试上平均提升了5.4%的EM和5.2%的F1。

5.2 最小充分子图检索

另一个方向是检索最小且充分的推理子图——只提取回答问题必须的证据,剔除冗余信息,提升推理效率。

5.3 混合检索成为主流

学术界的共识是:GraphRAG不是替代向量RAG,而是补充。最佳实践是混合检索——向量检索保召回,图检索保精度。


六、什么时候需要GraphRAG,什么时候传统RAG就够了?

传统RAG足够的情况:

  • 单文档内的简单问答
  • 事实性检索(“什么是XX”)
  • 资源有限的轻量级应用

需要GraphRAG的情况:

  • 跨文档、多跳推理(如“A对C的间接影响”)
  • 实体和关系是关键要素的场景(医疗、金融、法律、制造)
  • 对可解释性有要求的场景

七、一个简化的技术参考

如果你正在考虑引入GraphRAG,以下几个技术方向值得关注:

  • 知识抽取:从非结构化文本中提取三元组(S-P-O)
  • 图数据库选型:Neo4j、NebulaGraph、JanusGraph
  • 混合检索:向量检索 + 图检索的融合策略
  • 动态图谱构建:按需构建证据子图,而非全量图谱

目前开源生态(LlamaIndex、LangChain、RAGFlow)和部分商业产品都在这些方向上探索。


八、延伸阅读

本文讨论的GraphRAG技术演进方向,与[ZGI]项目在“企业级知识图谱+混合检索”上的实现思路基本一致。如果你对该方向的具体落地感兴趣,可以参考ZGI的技术文档或开源仓库。


写在最后

GraphRAG不是万能药,它解决的是传统RAG的一个特定短板:从“查相似文本”到“理解关系”。

这个演进路径很有意思:

  • 第一阶段:纯LLM(靠参数记忆,容易幻觉)
  • 第二阶段:传统RAG(查文本块,但不理解关系)
  • 第三阶段:GraphRAG(理解关系,支持多跳推理)
  • 第四阶段:Agentic RAG(自主规划、调用工具)

希望这篇文章能帮你理清一个关键问题:

你的RAG,是在“匹配文本”,还是在“理解关系”?