AB
AiBoss
Wiki

什么是图谱增强检索(GraphRAG)?

图谱增强检索(GraphRAG)是一种基于知识图谱的检索增强生成方法,由论文《From Local to Global: A Graph RAG Approach to Query-Focused Summarization》提出。它用大语言模型从源文档中抽取实体知识图谱,并为紧密关联的实体群预生成社区摘要,从而回答针对整个文本语料的全局性问题。

图谱增强检索(GraphRAG)是一种面向私有文本语料问答的、基于图的检索增强生成(retrieval-augmented generation,RAG)方法。按提出该方法的论文《From Local to Global: A Graph RAG Approach to Query-Focused Summarization》的说法,它使用大语言模型(large language model,LLM)分两个阶段构建图索引:先从源文档中导出实体知识图谱,再为所有紧密关联的实体分组预生成社区摘要。它要解决的问题是:常规 RAG 在面向整个文本语料的「全局性问题」上会失效,而这类问题本质上属于查询聚焦摘要(query-focused summarization,QFS)任务,并非显式的检索任务。

为什么重要

论文指出,用检索增强生成从外部知识源中检索相关信息,可以让大语言模型回答关于私有或此前未见过的文档集合的问题。这一路径在「局部」问题上表现良好:问题指向语料中某一段具体内容,检索器可以定位到相关片段,再交给模型作答。

但论文同时指出,RAG 在面对指向整个文本语料的全局性问题时会失败,例如「这个数据集的主要主题是什么?」。这类问题的答案并不存在于某一个可被检索命中的片段里,而是分散在大量文档之间,需要跨文档汇总。论文把这类任务归为查询聚焦摘要,而不是显式检索任务。

另一方面,论文也说明,此前的 QFS 方法无法扩展到典型 RAG 系统所索引的文本规模。也就是说,一边是能扩展但答不了全局问题的 RAG,一边是能答全局问题但扩展性不足的 QFS 方法,两者各有短板。GraphRAG 的提出正是为了结合这两类方法的优势,使问答能力既能覆盖用户问题的普遍程度,也能覆盖源文本的数量。

工作机制

按照论文的描述,GraphRAG 的核心是先用大语言模型构建一个图索引,这个过程分为两个阶段。

  1. 导出实体知识图谱。第一阶段从源文档中派生出一个实体知识图谱,把文本中的实体以及实体之间的关系结构化为图的形式。这一步由大语言模型完成,而不是依赖人工定义的抽取规则。
  2. 预生成社区摘要。第二阶段为所有紧密关联的实体分组预先生成社区摘要。所谓社区,指的是图中彼此关联紧密的实体集合;为每个这样的集合生成摘要,相当于提前把「局部密集区域」的内容压缩成可用的中间表示。

在回答阶段,论文描述的处理方式是:给定一个问题,每个社区摘要各自生成一个部分回答(partial response),随后所有这些部分回答再被汇总,形成最终返回给用户的回答。这种「先分散生成、再集中汇总」的结构,使系统不必先把问题拆成若干可检索的局部查询,而是直接利用预先构建的全局结构。

论文把这一设计概括为「从局部到全局」:索引阶段在局部层面抽取实体与关系,查询阶段则通过社区摘要这一中间层,把局部信息逐级汇聚为面向整个语料的回答。

典型例子

论文中给出的典型场景是「百万 token 量级数据集上的全局性意义建构问题」。论文称,对于这一类问题,GraphRAG 在生成答案的全面性(comprehensiveness)和多样性(diversity)两方面,相对常规 RAG 基线都有显著改进。需要说明的是,这是该论文针对其设定的一类问题与数据规模所报告的结果,属于论文作者的结论。

论文举出的全局性问题示例是「这个数据集的主要主题是什么?」——这类问题无法通过检索单个片段来回答,正是 GraphRAG 试图覆盖的对象。

在工程实现层面,微软的 microsoft/graphrag 仓库把 GraphRAG 描述为一个数据管道与转换套件,用于借助大语言模型从非结构化文本中抽取有意义的结构化数据。该仓库同时给出了若干使用层面的说明:仓库呈现的是一种利用知识图谱记忆结构增强大语言模型输出的方法论,所提供的代码是演示性质的,并非微软官方支持的产品;GraphRAG 的索引操作可能开销较大,官方建议先阅读全部文档以理解流程与成本,并从小规模开始;此外,官方强烈建议不要直接拿现成配置套用自己的数据,而应参照文档中的提示词调优指南对提示词进行微调。

该仓库还说明,GraphRAG 是一个研究项目,自 2024 年 7 月首次发布以来,前沿模型的能力已发生显著变化,其研究项目组合也随之多元化;该项目目前基本处于维护模式,不再接受新的 PR 或实现新功能,仅会酌情进行缺陷修复与依赖更新,尤其是应对新出现的 CVE。

边界与常见误解

第一,GraphRAG 并不否定常规 RAG。论文的出发点恰恰是常规 RAG 在局部检索类问题上有效,只是在全局性、面向整个语料的问题上失效。把 GraphRAG 理解为「RAG 的替代品」并不准确,更贴近论文原意的理解是:它针对的是一类常规 RAG 处理不好的问题。

第二,论文报告的优势有明确适用范围。论文所述「在全面性与多样性上相对常规 RAG 基线有显著改进」,是在百万 token 量级数据集上的一类全局意义建构问题中得出的,不应被推广为在所有问答任务、所有数据规模上都成立。

第三,成本与工程代价是已知问题。microsoft/graphrag 仓库明确警告索引操作可能开销较大,并建议先理解流程与成本、从小规模开始。由于索引阶段需要调用大语言模型完成实体抽取与社区摘要生成,这一环节的代价与源文本规模直接相关。

第四,开箱即用未必最优。该仓库指出,直接把 GraphRAG 用于自己的数据可能不会得到最好的结果,并强烈建议按照提示词调优指南进行微调。这意味着部署方需要投入额外工作来适配自己的语料。

第五,项目状态需要留意。该仓库声明项目基本处于维护模式,不再接受新功能;同时提醒在次版本升级之间运行初始化命令以确保配置格式最新,在主版本升级之间运行迁移笔记本来避免重新索引既有数据集,并注意这会覆盖配置与提示词,需要提前备份。

第六,不要把某一方的表述当成行业共识。GraphRAG 这一名称与两阶段图索引方法来自上述论文;microsoft/graphrag 仓库则是该方法的一个实现与演示载体,其文档中关于项目定位、维护状态、成本与调优的建议,均属于该仓库的官方说明,而非整个检索增强领域的统一结论。

参考资料