GraphRAG 是什么:知识图谱增强 RAG 入门

GraphRAG 是结合 RAG 与知识图谱的检索增强生成方法。它用图结构组织实体关系和问答上下文,适合理解 GraphRAG 与 RAG 的区别、复杂数据问答和主题发现。

GraphRAG 是什么:知识图谱增强 RAG 入门

什么是 GraphRAG?

GraphRAG 是一种将 RAG 与知识图谱结合的检索增强生成方法,可以理解为“使用图结构组织知识和关系的 RAG”。它不是一个单独的基础模型,也不只是普通的向量相似性检索,而是把 LLM、外部知识与图关系结合起来,为问答生成更有针对性的上下文。

GraphRAG 通常被介绍为由微软研究院开发。它的核心思路是:面对复杂信息或大型数据集时,先把文本中的知识组织成图,再围绕用户问题从图中形成上下文,最后交给 LLM 生成回答。

一个简单类比是:普通 RAG 更像在资料库里寻找相似段落,GraphRAG 更像在一张关系地图上查找相关节点、路径和主题区域。前者关注“哪些文本片段相似”,后者更强调“信息之间如何连接”。

要点: GraphRAG 的关键不在于替换 LLM,而在于改进 LLM 获取和组织上下文的方式。它更适合信息关系复杂、跨文档线索较多的问答任务。

从 RAG 到 GraphRAG 的演进逻辑

RAG,即检索增强生成,通常会先从外部知识源、内部知识库或向量数据库中检索相关信息,再把检索到的内容与 LLM 结合,用于生成具备上下文感知能力的回答。

传统 RAG 的常见流程可以概括为三步:

  1. 用户提出问题。
  2. 系统通过相似性搜索找到相关文本片段或知识内容。
  3. LLM 基于检索结果生成回答。

这种方式适合很多知识问答场景。但当问题依赖多个实体、关系、层级或跨文档线索时,仅靠相似文本片段,可能难以组织出足够完整的上下文。

GraphRAG 的改进方向,是在 RAG 中加入图或知识图谱。它不只判断哪些文本片段和问题相似,也关注资料中的实体、关系和结构,从而帮助系统形成更有针对性的问答上下文。

GraphRAG 的核心原理

GraphRAG 的核心原理可以概括为:从原始文本中提取知识图谱,再利用图结构围绕问题组织上下文,最后由 LLM 基于这些上下文生成回答。

由于公开资料不足以支撑具体算法参数、索引细节或 API 调用方式,这里只介绍通用工作思路。

输入原始文本

GraphRAG 首先需要处理一批文本资料,例如文档、知识库内容、报告或其他非结构化文本。与普通 RAG 一样,这些文本提供了回答问题所需的外部知识。

构建知识图谱

接下来,系统会从原始文本中提取知识,形成知识图谱。知识图谱通常用于表达实体、概念以及它们之间的关系,因此比单独的文本片段更容易承载结构化信息。

在这个阶段,GraphRAG 关注的不只是某段文字本身,还包括文字中提到的对象、对象之间的关系,以及这些关系在整体资料中的位置。

基于图形成问答上下文

当用户提出问题后,GraphRAG 会利用图结构来帮助判断哪些知识、关系或主题区域与问题相关。与只返回若干相似文本片段相比,图结构可以帮助系统围绕问题组织更有针对性的上下文。

这些上下文可能来自多个节点、关系或相关文本区域,因此更适合处理跨文档、多关系、多主题的问题。

交给 LLM 生成回答

最后,LLM 会基于 GraphRAG 组织出的上下文生成自然语言回答。LLM 仍然负责语言理解和生成,图结构主要帮助它获得更合适的背景信息。

环节作用关注重点
输入文本提供外部知识来源文档、知识库、报告等原始资料
知识图谱构建把文本知识结构化实体、概念、关系和层级
图上上下文组织为问题形成目标上下文相关节点、关系、主题线索
LLM 生成输出自然语言回答基于上下文进行回答生成

GraphRAG 与传统 RAG 有什么区别?

GraphRAG 与传统 RAG 不是简单的替代关系。更准确地说,GraphRAG 是 RAG 在复杂关系和大规模信息场景下的一种扩展思路。

传统 RAG 更常见的是基于相似性搜索检索文本片段,然后把这些片段提供给 LLM。GraphRAG 则更强调图和知识图谱中的关系信息,用结构化方式组织上下文。

对比维度传统 RAGGraphRAG
检索对象常见为文本片段、向量数据库中的相似内容、外部知识源或内部知识库图或知识图谱中的知识、关系及相关上下文
上下文组织方式主要依赖检索出的相关文本片段利用图结构围绕问题组织更有针对性的上下文
信息结构化程度通常以文本片段为主,结构化程度相对有限更强调实体、关系、层级等结构化信息
适合问题简单事实查询、知识库问答、文本匹配类问题复杂数据问答、跨文档关系理解、主题发现
与 LLM 的关系把检索结果交给 LLM 生成回答把基于图组织出的上下文交给 LLM 生成回答

需要注意的是,GraphRAG 并不意味着普通 RAG 失效。对于许多简单问答任务,传统 RAG 已经足够直接;只有当问题需要理解复杂关系或跨文档结构时,GraphRAG 的价值才更容易体现。

GraphRAG 适合解决哪些问题?

GraphRAG 适合用于复杂信息和大型数据集上的问答,也可用于主题发现。它的价值主要来自图结构对关系和上下文的组织能力,而不是来自某个固定的性能承诺。

用户需求解决方式可能带来的效果
在大量资料中回答复杂问题利用知识图谱组织相关实体、关系和上下文帮助 LLM 获得更有针对性的背景信息
理解跨文档关系将分散文本中的相关知识连接到图结构中更容易发现不同资料之间的关联线索
进行主题发现从大型数据集中识别主题、关系和上下文线索帮助用户理解资料中的主要主题结构
处理多实体、多关系问题围绕问题在图中定位相关知识区域有助于缓解只依赖相似文本片段时的上下文不足

例如,当用户的问题不是询问某个孤立事实,而是需要理解多个概念之间的关系、某个主题在多份文档中的展开方式,或大量资料中的主要主题线索时,GraphRAG 通常比单纯的文本片段检索更贴近任务需求。

使用 GraphRAG 前如何判断是否合适?

在引入 GraphRAG 前,首先要判断问题是否真的需要图结构。如果任务只是简单事实查询、短文本匹配或少量文档问答,普通 RAG 可能已经足够。

GraphRAG 更适合以下数据和问题特征:

  • 数据中存在明显的实体、关系、层级或跨文档关联。
  • 用户问题经常需要综合多个来源的信息。
  • 回答质量依赖对关系和上下文结构的理解。
  • 需要从大量资料中进行主题发现或关系梳理。
  • 团队能够接受知识图谱构建和维护带来的额外复杂度。

可以用下面的检查清单做初步判断:

判断问题如果答案是“是”如果答案是“否”
数据中是否有清晰的实体和关系?可以考虑 GraphRAG普通 RAG 可能更合适
问题是否依赖跨文档关联?GraphRAG 可能更有价值文本片段检索可能已足够
是否需要主题发现?GraphRAG 的图结构可能有帮助不一定需要构建图
是否能承担知识图谱构建成本?可进一步评估方案应谨慎引入 GraphRAG
是否有明确的复杂问答需求?适合继续验证不建议只为技术新颖性引入

要点: GraphRAG 的价值来自结构化关系和目标上下文。如果数据关系并不复杂,或者问题不依赖关系理解,优先选择更简单的 RAG 方案通常更稳妥。