GraphRAG 论文解读:从局部到全局的查询聚焦摘要方法
摘要
检索增强生成(RAG)利用大语言模型(LLMs)从外部知识源检索信息,使其能回答私有或未见文档的问题。然而,面对涉及整个文本语料库的全局性问题(如'数据集中的主要主题是什么?'),传统 RAG 往往力不从心,因为这本质上是查询聚焦摘要生成(QFS)任务,而非显式检索。此外,现有 QFS 方法难以扩展到典型 RAG 系统索引的文本规模。
为此,我们提出了 GraphRAG,一种基于图的方法,旨在私有文本语料库上进行可扩展的问答。该方法利用 LLM 分两阶段构建图索引:首先从源文档推导实体知识图谱,随后为紧密相关的实体组预先生成社区摘要。回答问题时,各社区摘要生成部分答案,再汇总为最终结果。在约 100 万标记的数据集上,针对全局意义构建问题,GraphRAG 相比传统 RAG 基线,在答案的全面性和多样性上均有显著提升。
1. 引言
检索增强生成(RAG)是一种成熟范式,它借助 LLMs 处理超出其上下文窗口容量的数据。经典 RAG 中,系统访问大型外部文本语料库,检索与查询相关且适合放入 LLM 上下文的记录子集,进而生成响应。
这种被称为 向量 RAG 的传统方法,对于能通过少量记录内信息回答的查询效果良好。但它不支持 意义构建(Sensemaking)查询,即那些需要对整个数据集有全局理解的查询,例如'过去十年间,跨学科研究如何影响科学发现的关键趋势?'。
意义构建任务需要推理实体间的关联以预测发展轨迹。虽然 GPT、Llama 等 LLMs 在复杂领域的意义构建表现出色,但当数据量庞大需采用 RAG 时,挑战随之而来——向量 RAG 无法支持对整个语料库的意义构建。
本文提出 GraphRAG,一种基于图的 RAG 方法,能在大型文本语料库上执行全局意义构建。GraphRAG 首先使用 LLM 构建知识图谱,节点对应关键实体,边代表关系。接着,它将图分割为层次化的社区结构,并利用 LLM 生成社区层面的摘要。这些摘要自底向上递归融合,提供对语料库的全局洞察。最后,通过映射 - 规约(Map-Reduce)处理社区摘要来回答问题。
作为开源软件,GraphRAG 已发布在 GitHub,并作为扩展集成于 LangChain、LlamaIndex 等多个库中。
2. 背景
2.1 RAG 方法与系统
RAG 泛指利用用户查询从外部数据源检索信息,并将其纳入 LLM 生成响应的系统。当数据源过大无法全部放入单个提示时,RAG 尤为理想。
经典 RAG 检索一组语义相似的固定数量记录,答案仅基于这些记录。常见方法是使用文本嵌入,在向量空间中检索最接近查询的记录。我们将这类传统方法统称为 向量 RAG。GraphRAG 的不同之处在于其能回答需要在全局语料库上进行意义构建的查询。
2.2 知识图谱在 LLMs 和 RAG 中的应用
从自然语言提取知识图谱的方法包括规则匹配、统计模式识别等。GraphRAG 属于利用 LLMs 进行知识图谱提取的新兴领域。一些技术直接在提示中使用子图或动态遍历图,而 GraphRAG 专注于图的 模块性 及其分割成嵌套模块化社区的能力。具体而言,GraphRAG 通过 LLM 创建跨越社区层次结构的摘要,递归地生成越来越全局化的描述。
2.3 用于 RAG 评估的自适应基准测试
现有的开放域问答基准(如 HotPotQA)主要面向向量 RAG 的性能评估。本文提出了一种生成特定语料库问题集的方法,用于评估全局意义构建能力。我们采用 自适应基准测试,利用 LLMs 生成多样化的角色和任务,从而构建能代表现实世界使用情况的查询。
2.4 RAG 评估标准
由于缺乏标准答案,我们依赖 LLM 评判员进行头对头比较。设计了三个目标标准:全面性(覆盖细节)、多样性(观点丰富度)和 赋能性(帮助理解)。此外,还引入了 直接性 作为控制标准,评估答案的具体程度。
3. 方法
3.1 GraphRAG 工作流程


