从局部到全局:一种用于查询导向型摘要生成的 GraphRAG 方法
摘要
利用检索增强生成(Retrieval-Augmented Generation,RAG)技术从外部知识源检索相关信息,能够让大型语言模型(Large Language Models,LLMs)对私有和 / 或此前未见过的文档集合进行问答。然而,对于针对整个文本语料库的全局性问题(例如 “该数据集中的核心主题是什么?”),RAG 技术会失效。这是因为此类问题本质上属于查询导向型摘要生成(Query-Focused Summarization,QFS)任务,而非明确的检索任务。与此同时,现有的 QFS 方法无法处理典型 RAG 系统所索引的海量文本数据。
为融合这两类方法的优势,我们提出了 GraphRAG(基于图结构的检索增强生成) 技术 —— 这是一种基于图结构的私有文本语料库问答方法,既能适配用户问题的通用性,又能应对海量源文本数据的处理需求。我们的方法通过大型语言模型分两个阶段构建图索引:
首先,从源文档中提取信息并构建实体知识图谱;
其次,为所有紧密关联的实体组预生成 “社区摘要”。
在接收用户问题后,系统会利用每个 “社区摘要” 生成部分回答,随后对所有部分回答进行再次汇总,最终形成完整的用户问题回复。针对 “处理百万词元级数据集的全局性理解类问题” 这一场景,我们的实验结果表明:相较于传统 RAG 基准模型,GraphRAG 生成的回答在全面性和多样性两方面均实现了显著提升。
1.介绍
检索增强生成(Retrieval-Augmented Generation,RAG)(Lewis 等人,2020)是一种成熟的技术方法,可借助大型语言模型(LLMs)基于海量数据回答查询 —— 这类数据规模过大,无法容纳在语言模型的上下文窗口中(上下文窗口即大型语言模型可一次性处理的最大词元(文本单位)数量)(Kuratov 等人,2024;Liu 等人,2023)。
在标准的 RAG 架构中,系统可访问大型外部文本记录语料库,并检索出一个记录子集:这些记录既要各自与查询相关,整体规模又要足够小,能够适配大型语言模型的上下文窗口。随后,大型语言模型会结合查询内容与检索到的记录生成回答(Baumel 等人,2018;Dang,2006;Laskar 等人,2020;Yao 等人,2017)。我们将这种传统方法统称为 “向量 RAG”,它适用于可通过少量记录中的局部信息回答的查询,但无法支持 “理解型查询”—— 即需要对整个数据集形成全局认知才能回答的查询,例如 “过去十年间,跨学科研究对科学发现的影响存在哪些关键趋势?”。
理解型任务需要对 “(人与人、地点与地点、事件与事件之间的)关联关系进行推理,以预测其发展轨迹并有效采取行动”(Klein 等人,2006)。像 GPT(Achiam 等人,2023;Brown 等人,2020)、Llama(Touvron 等人,2023)和 Gemini(Anil 等人,2023)这类大型语言模型,在科学发现(Microsoft,2023)、情报分析(Ranade 与 Joshi,2023)等复杂领域的理解任务中表现出色:若给定理解型查询,且提供包含隐性、互联概念集合的文本,大型语言模型就能生成回答该查询的摘要。
然而,当数据量达到需要采用 RAG 方法处理的规模时,问题便会出现 —— 向量 RAG 无法支持对整个语料库的理解任务。为此,本文提出 GraphRAG(基于图结构的检索增强生成):这是一种基于图结构的 RAG 方法,能够实现对大型文本语料库的全局理解。
GraphRAG 的工作流程如下:
- 构建知识图谱:首先利用大型语言模型构建知识图谱,其中图的节点对应语料库中的关键实体,边则代表这些实体之间的关联关系;
- 划分实体社区并生成摘要:将知识图谱划分为具有层级结构的 “实体社区”(由关联紧密的实体组成),再通过大型语言模型生成 “社区级摘要”。摘要生成遵循实体社区的层级结构,采用自下而上的方式 —— 层级较高的摘要会递归整合层级较低的摘要,最终形成的所有社区摘要共同构成对语料库的全局描述与深度洞察;
- 通过 “映射 - 归约” 生成最终回答:GraphRAG 采用 “映射 - 归约”(map-reduce)机制处理社区摘要以回答查询:在 “映射” 阶段,各社区摘要独立且并行地为查询生成部分回答;在 “归约” 阶段,系统整合所有部分回答,生成最终的全局回答。
GraphRAG 方法及其对整个语料库的全局理解能力,是本研究的核心贡献。为验证这一能力,我们提出了 “大型语言模型作为评判者”(LLM-as-a-judge)技术的创新应用(Zheng 等人,2024)—— 该应用适用于针对广泛议题与主题、且无 “标准答案” 的查询。具体流程为:首先利用一个大型语言模型,基于语料库特定的应用场景生成一系列多样化的全局理解型查询;随后利用另一个大型语言模型,依据预定义标准(详见 3.3 节)对两种不同 RAG 系统的回答进行评判。
我们通过两个具有代表性的真实文本数据集,将 GraphRAG 与向量 RAG 进行对比实验。结果表明,当使用 GPT-4 作为基础大型语言模型时,GraphRAG 的性能显著优于向量 RAG。
目前,GraphRAG 已作为开源软件发布,地址为:https://github.com/microsoft/graphrag。此外,GraphRAG 方法的多个版本还作为扩展插件,集成到多个开源库中,包括 LangChain(LangChain,2024)、LlamaIndex(LlamaIndex,2024)、NebulaGraph(NebulaGraph,2024)和 Neo4J(Neo4J,2024)。
2.背景
2.1 RAG 方法与系统
检索增强生成(Retrieval-Augmented Generation,简称 RAG)通常指这样一类系统:先根据用户查询从外部数据源中检索相关信息,再将这些信息整合到大型语言模型(LLM)(或其他生成式人工智能模型,如多媒体模型)针对该查询生成的回答中。查询内容与检索到的记录会填充到一个提示词模板中,随后该模板会被传入大型语言模型进行处理(Ram 等人,2023)。当数据源中的记录总数过大,无法全部包含在给大型语言模型的单个提示词中时(即数据源中的文本量超出了大型语言模型的上下文窗口容量),RAG 便成为了理想的解决方案。
在标准的 RAG 方法中,检索过程会返回固定数量、与查询在语义上相似的记录,且生成的回答仅会使用这些检索到的记录中的信息。传统 RAG 的一种常用实现方式是借助文本嵌入技术:在向量空间中检索与查询最接近的记录,这里的 “接近度” 对应着语义相似度(Gao 等人,2023)。尽管部分 RAG 方法可能会采用其他检索机制,但我们将这类传统方法统称为 “向量 RAG”。而 GraphRAG 与向量 RAG 的核心区别在于,GraphRAG 能够回答那些需要对整个数据集进行全局理解才能解决的查询。
GraphRAG 以先进的 RAG 策略相关前期研究为基础。GraphRAG 将数据源中大幅内容的摘要作为一种 “自我记忆”(Cheng 等人 2024 年的研究对此有描述),之后会像 Mao 等人 2020 年的研究那样,利用这些摘要来回答查询。这些摘要通过并行方式生成,并迭代汇总为全局摘要,这与以往的一些技术类似(Feng 等人,2023;Gao 等人,2023;Khattab 等人,2022;Shao 等人,2023;Su 等人,2020;Trivedi 等人,2022;Wang 等人,2024)。具体而言,GraphRAG 与其他采用分层索引来创建摘要的方法有相似之处(类似 Kim 等人 2023 年、Sarthi 等人 2024 年的研究)。不过,GraphRAG 与这些方法的不同之处在于,它会从源数据生成图索引,然后应用基于图的社区检测来对数据进行主题划分。
2.2 知识图谱与大语言模型(LLMs)及检索增强生成(RAG)的结合应用
从自然语言文本语料库中提取知识图谱的方法包括规则匹配、统计模式识别、聚类和嵌入技术等(Etzioni 等人,2004;Kim 等人,2016;Mooney 与 Bunescu,2005;Yates 等人,2007)。GraphRAG 属于较新的研究范畴,该范畴的研究特点是利用大型语言模型提取知识图谱(Ban 等人,2023;Melnyk 等人,2022;OpenAI,2023;Tan 等人,2017;Trajanoska 等人,2023;Yao 等人,2023;Yates 等人,2007;Zhang 等人,2024a)。同时,GraphRAG 也为 “将知识图谱用作索引的 RAG 方法” 这一不断发展的研究领域增添了新成果(Gao 等人,2023)。
部分相关技术会在提示词中直接使用子图、图谱元素或图谱结构属性(Baek 等人,2023;He 等人,2024;Zhang,2023),或将其作为生成结果的事实依据(Kang 等人,2023;Ranade 与 Joshi,2023)。另有一些技术(Wang 等人,2023b)则利用知识图谱优化检索过程:在查询阶段,基于大型语言模型的智能体(agent)会动态遍历图谱 —— 其中节点代表文档元素(如段落、表格),边则编码了词汇相似度、语义相似度或结构关系。
GraphRAG 与上述方法的核心区别在于,它聚焦于该场景下此前未被探索的图谱特性:图谱固有的模块化特征(Newman,2006),以及将图谱划分为 “由关联紧密的节点构成的嵌套式模块化社区” 的能力(例如 Louvain 算法,Blondel 等人,2008;Leiden 算法,Traag 等人,2019)。具体而言,GraphRAG 会利用大型语言模型生成覆盖整个社区层级的摘要,通过这种方式递归生成全局性不断增强的摘要。
2.3 用于 RAG 评估的自适应基准测试
现有许多面向开放域问答的基准数据集,包括 HotPotQA(Yang 等人,2018)、MultiHop-RAG(Tang 与 Yang,2024)以及 MT-Bench(Zheng 等人,2024)。然而,这些基准数据集均以向量 RAG 性能为导向,即它们主要评估 “明确事实检索” 任务的性能。在本研究中,我们提出一种生成 “评估语料库全局理解能力的问题集合” 的方法。该方法与 “利用语料库生成以语料摘要为答案的问题” 这类 LLM 方法相关(例如 Xu 与 Lapata,2021 的研究)。但为确保评估的公平性,我们的方法避免直接从语料库本身生成问题(作为替代方案,可使用语料库的一个子集 —— 该子集需从后续的图提取和答案评估步骤中留出,不参与模型训练或处理)。
“自适应基准测试” 指的是 “动态生成针对特定领域或应用场景的定制化评估基准” 的过程。近期研究已将 LLM 用于自适应基准测试,以确保评估基准的相关性、多样性,并与目标应用或任务保持一致(Yuan 等人,2024;Zhang 等人,2024b)。本研究中,我们提出一种用于为 LLM 生成 “全局理解型查询” 的自适应基准测试方法。该方法基于 “基于 LLM 的角色生成” 相关前期研究 —— 这类研究利用 LLM 生成多样化、真实的角色集合(Kosinski,2024;Salminen 等人,2024;Shin 等人,2024)。
具体而言,我们的自适应基准测试流程通过 “角色生成” 来创建 “代表真实世界 RAG 系统使用场景的查询”:利用 LLM 推断可能使用该 RAG 系统的潜在用户及其应用场景,再以这些用户和场景为指导,生成 “针对特定语料库的理解型查询”。
2.4 检索增强生成(RAG)的评估标准
本研究的评估过程依赖大型语言模型(LLM)来判断 RAG 系统对所生成问题的回答质量。已有研究表明,大型语言模型是优秀的自然语言生成评估工具,部分研究甚至证实,其评估结果可与人类评估结果相媲美(Wang 等人,2023a;Zheng 等人,2024)。
此前有研究提出了让大型语言模型量化生成文本质量的评估标准,例如 “流畅性”(Wang 等人,2023a)。但其中部分标准是向量 RAG 系统的通用标准,与全局理解任务无关,例如 “上下文相关性”“事实一致性” 和 “答案相关性”(RAGAS,Es 等人,2023)。
由于缺乏评估 “标准答案”(gold standard),我们可通过提示大型语言模型对两个不同竞争模型的生成结果进行比较,从而量化特定标准下的相对性能(即 “大型语言模型作为评判者” 方法,Zheng 等人,2024)。
在本研究中,我们设计了一套用于评估 RAG 系统针对 “全局理解型问题” 所生成答案的标准,并采用上述比较方法对研究结果进行评估。同时,我们还利用从大型语言模型提取的 “可验证事实陈述”(即 “声明”,claims)所衍生的统计数据,对评估结果进行验证。
3 方法
3.1 GraphRAG 的工作流程
图 1 展示了 GraphRAG 方法及流程的高层级数据流。在本节中,我们将阐述每个步骤的关键设计参数、技术手段与实现细节。

该图索引包含节点(如实体)、边(如关系)和协变量(如声明),这些元素均由 “针对数据集领域定制的 LLM 提示词” 通过检测、提取与汇总得到。通过社区检测算法(如 Leiden 算法,Traag 等人,2019)将图索引划分为多个元素组(含节点、边、协变量),大型语言模型可在索引构建阶段与查询阶段,对这些元素组并行生成摘要。对于特定查询,需对所有 “与该查询相关的社区摘要” 执行最后一轮查询导向型摘要生成,最终得到该查询的 “全局回答”。
3.1.1 源文档 → 文本块
首先,语料库中的文档被分割成文本块。大型语言模型(LLM)会从每个文本块中提取信息用于后续处理。选择文本块的大小是一个基本的设计决策;较长的文本块需要较少的 LLM 调用来进行信息提取(从而降低成本),但可能会导致文本块开头部分的信息回忆率下降(Kuratov 等,2024;Liu 等,2023)。有关提示和回忆-精度权衡的示例,请参见附录 A.1。
3.1.2 文本块 → 实体与关系
在这一步中,通过提示词引导大型语言模型(LLM)从给定的文本块中提取重要实体实例及实体间的关系。此外,大型语言模型还会为这些实体和关系生成简短描述。
举例来说,假设某文本块包含以下内容:“NeoChip(简称 NC)的股票在 NewTech 交易所上市交易的第一周便大幅上涨。不过,市场分析师提醒,这家芯片制造商的公开上市(首次公开募股)表现可能无法反映其他科技公司首次公开募股(IPO)的趋势。NeoChip 此前为私营企业,于 2016 年被 Quantum Systems 收购。这家具有创新性的半导体公司专注于研发可穿戴设备和物联网(IoT)设备所用的低功耗处理器。”
通过提示词引导大型语言模型(LLM)提取以下信息:
- 实体 “NeoChip”,描述为 “NeoChip 是一家上市公司,专注于研发可穿戴设备和物联网(IoT)设备所用的低功耗处理器”。
- 实体 “Quantum Systems”,描述为 “Quantum Systems 是一家曾拥有 NeoChip 的公司”。
- NeoChip 与 Quantum Systems 之间的关系,描述为 “Quantum Systems 在 2016 年至 NeoChip 上市前期间拥有 NeoChip”。
这些提示词可通过选择 “符合领域需求的少样本示例” 用于上下文学习(Brown 等人,2020),从而适配文档语料的特定领域。例如,我们的默认提示词会提取 “人物、地点、组织” 等宽泛类别的 “命名实体”,具有普遍适用性;而对于包含专业知识的领域(如科学、医学、法律),则可借助针对这些领域定制的少样本示例,进一步提升提取效果。
此外,还可通过提示词引导大型语言模型提取与已检测实体相关的 “声明”(claims)。“声明” 指关于实体的重要事实陈述,例如日期、事件以及实体与其他实体的互动信息。与实体和关系的提取类似,上下文学习示例也可为 “声明” 提取提供领域专属指导。
从上述示例文本块中提取的 “声明” 描述如下:
- NeoChip 的股票在 NewTech 交易所上市交易的第一周大幅上涨。
- NeoChip 在 NewTech 交易所作为上市公司首次亮相(即首次公开募股)。
- Quantum Systems 于 2016 年收购 NeoChip,并持有其所有权直至 NeoChip 上市。
有关实体与声明提取的提示词及具体实现细节,详见附录 A。
3.1.3 实体与关系→知识图谱
利用大型语言模型(LLM)提取实体、关系及声明,本质上是一种抽象式摘要生成过程 —— 这些提取结果是对概念的有意义概括,其中,关系与声明类信息在原文中可能并未被明确表述。
在实体 / 关系 / 声明的提取过程中,同一元素(如某一实体)会生成多个实例,这是因为该元素通常会在多个文档中被多次检测和提取。
在知识图谱提取流程的最后一步中,这些实体实例与关系实例将分别转化为图谱中的单个节点与边:
- 每个节点(对应实体)和边(对应关系)的描述会被整合并汇总;
- 关系实例会聚合为图谱的边,某一特定关系的重复次数会成为该边的权重;
- 声明的聚合方式与关系类似。
在本文中,我们的分析采用精确字符串匹配方法进行实体匹配 —— 该任务旨在统一同一实体的不同提取名称(Barlaug 与 Gulla,2021;Christen 与 Christen,2012;Elmagarmid 等人,2006)。不过,只需对提示词或代码进行小幅调整,也可采用更灵活的 “软匹配” 方法。此外,GraphRAG 对实体重复问题具有较强的容错性,因为在后续步骤中,重复实体通常会被聚类到一起进行摘要生成。
3.1.4 知识图谱→图社区
基于前一步构建的图索引,可采用多种社区检测算法将图谱划分为由强连接节点组成的社区(相关综述可参见 Fortunato(2010)及 Jin 等人(2021)的研究)。在本研究的流程中,我们以层级化方式使用 Leiden 社区检测算法(Traag 等人,2019):在每个已检测出的社区内递归检测子社区,直至得到无法进一步划分的叶节点社区。
该层级结构的每一层都对应一种社区划分方式,这种划分能以互斥且完全穷尽的形式覆盖图谱中的所有节点,从而为 “分而治之” 的全局摘要生成提供可能。关于此类层级划分在示例数据集上的具体展示,可参见附录 B。
3.1.5 图社区→社区摘要
下一步将采用一种适用于超大规模数据集的方法,为社区层级结构中的每个社区生成报告式摘要。这类摘要本身就具有独立价值:可用于理解数据集的全局结构与语义,即便在没有特定查询的情况下,也能帮助用户梳理语料库的核心信息。例如,用户可先浏览某一层级的社区摘要,定位感兴趣的通用主题,再查看更低层级的关联报告,获取各子主题的详细信息。不过,本文将重点探讨其作为 “基于图结构的索引组成部分” 在回答全局查询时的作用。
GraphRAG 通过以下方式生成社区摘要:将各类元素摘要(涵盖节点、边及相关声明)填入社区摘要模板。低层级社区的摘要会用于生成高层级社区的摘要,具体流程如下:
- 叶节点层级社区:优先处理叶节点社区的元素摘要,并将其迭代加入大型语言模型(LLM)的上下文窗口,直至达到词元上限。优先级排序规则为:对社区内的每条边,按 “源节点与目标节点的度数之和”(即节点的整体重要性)从高到低排序,依次添加源节点描述、目标节点描述、边的描述及相关声明。
- 高层级社区:若所有元素摘要可完全容纳在上下文窗口的词元限制内,则参照叶节点社区的处理方式,对社区内所有元素摘要进行汇总;若无法完全容纳,则按 “元素摘要词元数量” 从高到低对子社区排序,迭代地用 “子社区摘要(较短)” 替换其对应的 “元素摘要(较长)”,直至整体内容符合上下文窗口的词元限制。
3.1.6 社区摘要→社区回答→全局回答
针对用户查询,可通过多阶段流程利用前一步生成的社区摘要得到最终回答。社区结构的层级特性还意味着,可借助不同层级的社区摘要回答问题 —— 这引出一个关键问题:在层级化社区结构中,哪一特定层级能为通用理解型问题实现 “摘要细节丰富度” 与 “覆盖范围” 的最佳平衡(相关评估见第 4 节)。
对于某一特定社区层级,任意用户查询的全局回答生成流程如下:
- 准备社区摘要:将社区摘要随机打乱,并划分为预定义词元规模的文本块。此举可确保相关信息分散在各个文本块中,而非集中于单个上下文窗口(避免因窗口容量限制导致信息丢失)。
- 生成社区回答(映射阶段):并行生成中间回答。同时,需引导大型语言模型(LLM)为每个中间回答生成 0-100 分的评分,以表示该回答对解决目标查询的帮助程度。最终过滤掉评分为 0 的回答。
- 生成全局回答(归约阶段):将中间社区回答按帮助程度评分从高到低排序,并迭代加入新的上下文窗口,直至达到词元上限。利用这一最终上下文生成返回给用户的全局回答。
3.2 全局理解型问题生成
为评估检索增强生成(RAG)系统在全局理解任务中的有效性,我们利用大型语言模型(LLM)生成一组 “针对特定语料库的问题”—— 这类问题旨在评估对给定语料库的高层级理解能力,无需检索具体的低层级事实。
具体流程如下:首先向大型语言模型提供语料库的高层级描述及其用途,引导其生成该 RAG 系统的假设用户角色;接着,针对每个假设用户角色,引导大型语言模型明确该用户会使用 RAG 系统完成的任务;最后,针对每个 “用户 - 任务” 组合,引导大型语言模型生成需要理解整个语料库才能回答的问题。相关方法详见算法 1。

在我们的评估中,将参数 K、M、N 均设为 5,因此每个数据集共生成 125 个测试问题。表 1 展示了两个评估数据集各自对应的示例问题。
3.3 全局理解能力的评估标准
由于我们基于特定场景设计的理解型问题缺乏标准答案(gold standard answers),因此采用 “正面对比”(head-to-head comparison)方法,借助大型语言模型(LLM)评估器,依据特定标准对模型的相对性能进行评判。我们设计了三项核心评估标准,用于衡量全局理解任务所需的关键质量维度。
附录 F 列出了使用大型语言模型评估器计算 “正面对比指标” 的提示词,核心内容可概括如下:
- 全面性(Comprehensiveness):回答是否涵盖问题涉及的所有方面与细节,提供的信息量是否充足?
- 多样性(Diversity):回答在针对问题提供不同视角与深度见解时,其丰富度与差异化程度如何?
- 赋能性(Empowerment):回答对帮助读者理解主题、并基于信息做出合理判断的支持效果如何?
补充说明
potential users:译为 “潜在用户”,指基于数据集场景推测可
此外,我们还采用了一项名为 “直接性(Directness)” 的 “对照标准”,该标准用于评估 “回答是否具体、清晰地回应了问题”。通俗来讲,直接性衡量的是回答的简洁程度,这是一个适用于所有大型语言模型(LLM)生成摘要的通用维度。我们纳入这一标准,是为了将其作为参照基准,以此判断其他评估标准下结果的合理性。由于直接性与全面性、多样性在本质上存在对立关系(例如,追求全面可能导致回答冗长,进而降低直接性),因此我们并不期望任何一种方法能在这四项标准中全部胜出。
在评估过程中,我们会向大型语言模型提供以下信息:待评估的问题、两个竞争系统生成的回答;随后引导模型依据上述标准对这两个回答进行比较,并最终判断哪个回答更优。模型的判断结果有两种:一是明确指出更优的回答(即 “胜出者”);二是若两个回答本质上相近,则判定为 “平局”。考虑到大型语言模型生成过程中固有的随机性,我们会对每组比较进行多次重复实验,并计算所有重复实验结果在不同问题上的平均值,以此作为最终评估结果。
关于大型语言模型如何评估某一示例问题的回答,具体案例可参见附录 D。
4. 分析
4.1 实验1
4.1.1 数据集
我们选取了两个词元量均在 100 万左右的数据集,每个数据集均能代表用户在实际场景中可能接触到的语料类型:
- 播客文字稿:来源于《与凯文・斯科特探秘科技背后》(Behind the Tech with Kevin Scott)的公开文字稿。该播客由微软首席技术官(CTO)凯文・斯科特主持,内容为其与科技领域多位思想领袖的对话(Scott,2024)。该语料被划分为 1669 个文本块,每个文本块含 600 个词元,文本块之间有 100 个词元的重叠(总词元量约 100 万)。
- 新闻文章:一个基准数据集,包含 2013 年 9 月至 2023 年 12 月期间发布的新闻文章,涵盖娱乐、商业、体育、科技、健康、科学等多个类别(Tang 与 Yang,2024)。该语料被划分为 3197 个文本块,每个文本块含 600 个词元,文本块之间有 100 个词元的重叠(总词元量约 170 万)。
4.1.2 实验条件
我们对比了 6 种实验条件,包括 4 个不同图社区层级的 GraphRAG(C0、C1、C2、C3)、一种直接对源文本应用 “映射 - 归约” 方法的文本摘要技术(TS),以及一种向量 RAG “语义搜索” 方法(SS),具体如下:
- C0:使用顶层社区摘要(数量最少)回答用户查询。
- C1:使用高层级社区摘要回答查询。若存在 C0 的子社区,则使用这些子社区;否则,使用 C0 社区向下映射生成的社区。
- C2:使用中间层级社区摘要回答查询。若存在 C1 的子社区,则使用这些子社区;否则,使用 C1 社区向下映射生成的社区。
- C3:使用低层级社区摘要(数量最多)回答查询。若存在 C2 的子社区,则使用这些子社区;否则,使用 C2 社区向下映射生成的社区。
- TS:采用与 3.1.6 节相同的方法,但在 “映射 - 归约” 摘要生成阶段,对源文本(而非社区摘要)进行打乱和分块处理。
- SS:向量 RAG 的实现方式,即检索文本块并将其加入可用上下文窗口,直至达到指定的词元上限。
所有 6 种实验条件使用的上下文窗口大小和用于生成回答的提示词均保持一致(仅对引用格式进行了细微调整,以匹配所用上下文信息的类型)。不同实验条件的唯一区别在于上下文窗口内容的生成方式。
支持 C0-C3 实验条件的图索引,是通过通用实体与关系提取提示词构建的,其中实体类型和少样本示例均根据数据所属领域进行了定制。
4.1.3 配置
在生成社区摘要、社区回答及全局回答时,我们采用了 8000 词元的固定上下文窗口大小(详见附录 C)。在图索引构建过程中,我们使用 600 词元的窗口(详见 A.2 节):在一台虚拟机(16GB 内存、Intel (R) Xeon (R) Platinum 8171M 处理器,主频 2.60GHz)上运行,调用公开的 OpenAI 接口(模型为 gpt-4-turbo,令牌处理速率 200 万词元 / 分钟(2M TPM)、请求速率 1 万次 / 分钟(10k RPM)),处理播客数据集共耗时 281 分钟。
我们基于 graspologic 库(Chung 等人,2019)实现了 Leiden 社区检测算法。用于生成图索引和全局回答的提示词详见附录 E,而用于依据评估标准对大型语言模型(LLM)生成结果进行评判的提示词详见附录 F。下一节所呈现结果的完整统计分析过程,详见附录 G。
4.2 实验2
为验证实验 1 中关于全面性和多样性的结果,我们采用了基于 “声明”(claim)的指标来衡量这些质量维度。我们沿用了 Ni 等人(2024)对 “事实性声明” 的定义,即 “明确呈现可验证事实的陈述”。例如,句子 “加利福尼亚州和纽约州实施了可再生能源应用激励政策,这凸显了可持续性在政策决策中的广泛重要性” 包含两个事实性声明:
(1)加利福尼亚州实施了可再生能源应用激励政策;
(2)纽约州实施了可再生能源应用激励政策。
为提取事实性声明,我们使用了 Claimify 工具(Metropolitansky 与 Larson,2025)—— 这是一种基于大型语言模型(LLM)的方法,先识别回答中 “包含至少一个事实性声明的句子”,再将这些句子分解为简洁、独立的事实性声明。我们将 Claimify 应用于实验 1 各条件下生成的回答中。在移除每个回答中的重复声明后,共提取出 47,075 条独特声明,平均每个回答含 31 条声明。
我们定义了两项指标(数值越高表示性能越好):
- 全面性:以各条件下生成的回答中 “提取出的声明平均数量” 衡量。
- 多样性:通过对每个回答中的声明进行聚类,以 “平均聚类数量” 衡量。
在聚类过程中,我们采用了 Padmakumar 与 He(2024)提出的方法,使用 Scikit-learn 库中实现的层次聚类算法(Pedregosa 等人,2011)。聚类通过 “完全链接法”(complete linkage)合并,即仅当两个聚类中 “最远点之间的最大距离” 小于或等于预设距离阈值时,才将它们合并。所用的距离度量指标为 “1 减去 ROUGE-L 相似度”(1 − ROUGE-L)。由于距离阈值会影响聚类数量,因此我们报告了不同阈值范围内的结果。
5.结果
5.1 实验1
索引构建结果
- 针对播客数据集,索引构建过程生成了一个包含 8564 个节点和 20691 条边的图谱;
- 针对新闻数据集,生成的图谱规模更大,包含 15754 个节点和 19520 条边。
表 2 展示了每个图谱社区层级结构中,不同层级对应的社区摘要数量。
全局方法与向量 RAG 的对比
如图 2 和表 6 所示,在所有数据集上,全局方法在 “全面性” 和 “多样性” 两项标准上均显著优于传统向量 RAG(SS)。具体而言:
- 在播客文字稿数据集上,全局方法的全面性胜率为 72%-83%(p<0.001),多样性胜率为 75%-82%(p<0.001);
- 在新闻文章数据集上,全局方法的全面性胜率为 72%-80%(p<0.001),多样性胜率为 62%-71%(p<0.01)。
我们将 “直接性” 作为有效性测试标准,结果证实:在所有对比中,向量 RAG 生成的回答直接性最强。
赋能性
关于 “赋能性” 的对比结果显示:无论是 “全局方法与向量 RAG(SS)” 对比,还是 “GraphRAG 方法与源文本摘要(TS)” 对比,结果均好坏参半。通过大型语言模型(LLM)分析该指标下的 LLM 推理过程发现:能否提供具体示例、引用内容和引证信息,是帮助用户形成基于充分信息的理解的关键。优化元素提取提示词,或有助于在 GraphRAG 索引中保留更多此类细节信息。
社区摘要与源文本的对比
在使用 GraphRAG 对 “社区摘要” 和 “源文本” 进行对比时,除顶层摘要外,社区摘要在回答的 “全面性” 和 “多样性” 上总体呈现出小幅但稳定的提升。具体表现为:
- 播客数据集的中间层级摘要和新闻数据集的低层级社区摘要,其全面性胜率分别达到 57%(p<0.001)和 64%(p<0.001);
- 多样性胜率方面,播客数据集中间层级摘要为 57%(p=0.036),新闻数据集低层级社区摘要为 60%(p<0.001)。
表 2 还体现了 GraphRAG 相较于源文本摘要的可扩展性优势:
- 对于低层级社区摘要(C3),GraphRAG 所需的上下文词元数量减少了 26%-33%;
- 对于顶层社区摘要(C0),所需词元数量减少了 97% 以上。
尽管与其他全局方法相比,顶层 GraphRAG(C0)的性能略有下降,但它为 “理解型任务特有的迭代式问答” 提供了一种高效方法,同时相较于向量 RAG,仍在全面性(72% 胜率)和多样性(62% 胜率)上保持优势。
关键术语说明
- win rate:胜率,在模型性能对比中,指某一方法的结果被判定为更优的比例,是衡量方法相对优势的核心指标;
- p-value(p<0.001/p<0.01/p=0.036):统计学中的显著性检验指标,p 值越小表示 “实验结果由随机因素导致” 的可能性越低,通常 p<0.05 即认为结果具有统计显著性,p<0.01 和 p<0.001 分别代表更高的显著性水平;
- scalability:可扩展性,此处指方法处理大规模数据时的效率优势,具体体现为 GraphRAG 通过社区摘要减少上下文词元数量,降低计算资源消耗。
每个数据集在各指标下的整体最优方法以粗体标注。未计算方法与自身对比的胜率,但为参考起见,将其显示为预期的 50%。在全面性和多样性指标上,所有 Graph RAG 条件对应的方法均优于朴素 RAG(naïve RAG)。此外,相较于 TS(无图索引的全局文本摘要方法),C1-C3 条件对应的方法在回答的全面性和多样性上也表现出小幅提升。
对源文本进行映射 - 归约(map-reduce)摘要生成是资源消耗最高的方法,需要的上下文词元数最多。而顶层社区摘要(C0)每次查询所需的词元数显著更少(为最大词元数的 1/9 至 1/43)。
5.2 实验2
表 2:上下文单元数量(C0-C3 对应的社区摘要数量、TS 对应的文本块数量)、相应的词元数,以及占最大词元数的百分比。对源文本进行映射 - 归约(map-reduce)摘要生成是资源消耗最高的方法,需要的上下文词元数最多。而顶层社区摘要(C0)每次查询所需的词元数显著更少(为最大词元数的 1/9 至 1/43)。
表 3:各实验条件下 “提取的声明平均数量” 结果(即基于声明的全面性衡量指标)。在新闻数据集与播客数据集上,所有全局搜索条件(C0-C3)及源文本摘要方法(TS)的全面性均优于向量 RAG(SS),且所有情况下的差异均具有统计学显著性(p<0.05)。这些发现与实验 1 中基于大型语言模型(LLM)的胜率结果一致。
表 4:“平均聚类数量” 结果(即基于声明的多样性衡量指标)。
在播客数据集上,所有全局搜索条件在所有距离阈值下的多样性均显著优于 SS(p<0.05),与实验 1 中观察到的胜率结果一致。然而在新闻数据集上,仅 C0 在所有距离阈值下显著优于 SS(p<0.05);尽管 C1-C3 的平均聚类数量也高于 SS,但差异仅在特定距离阈值下具有统计学显著性。
在实验 1 中,新闻数据集上所有全局搜索条件均显著优于 SS,而非仅 C0。不过,新闻数据集上 SS 与全局搜索条件之间的平均多样性得分差异,小于播客数据集上的差异,这与基于声明的结果在趋势上一致。
在两个数据集上,无论是全面性还是多样性指标,全局搜索条件之间、以及全局搜索与 TS 之间,均未观察到具有统计学显著性的差异。
最后,针对实验 1 中的每一组 pairwise 对比(两两对比),我们检验了 LLM 偏好的回答与基于声明指标判定的 “更优回答” 是否一致。由于实验 1 中每组两两对比均重复进行了 5 次,而基于声明的指标每组对比仅提供 1 个结果,因此我们通过 “多数投票” 将实验 1 的结果整合为单一标签。例如,若在某一问题的全面性评估中,C0 在 5 次判定中有 3 次战胜 SS,则将 C0 标记为 “胜出者”,SS 为 “失败者”;但若 C0 胜出 2 次、SS 胜出 1 次、平局 2 次,则无多数结果,最终标签记为 “平局”。
我们发现,基于声明的指标极少出现完全平局的情况。一种可能的解决方案是基于阈值定义平局(例如,条件 A 与条件 B 在基于声明的结果上的绝对差值必须小于或等于 x),但我们观察到结果对阈值的选择较为敏感。因此,我们将重点放在 “LLM 整合标签非平局” 的案例上 —— 这类案例在全面性和多样性的两两对比中分别占 33% 和 39%。在这些案例中,全面性两两对比中 LLM 整合标签与基于声明的标签的匹配率为 78%,多样性(所有距离阈值下)两两对比中的匹配率为 69%-70%,表明两者具有中等强度的一致性。
6.讨论
6.1 评测方法的局限
迄今为止,我们的评估重点聚焦于两个语料库特有的理解型问题,这两个语料库各包含约 100 万词元。要了解该性能如何推广到不同领域、不同用例的数据集,仍需开展更多研究。此外,对编造率(例如采用 SelfCheckGPT(Manakul 等人,2023)等方法)进行对比分析,也将进一步完善当前的研究结论。
6.2 未来的工作
支撑当前 GraphRAG 方法的图索引、富文本注释及层级化社区结构,为方法的优化与适配提供了诸多可能。这其中包括通过用户查询与图注释的 “基于嵌入的匹配” 实现更本地化操作的 RAG 方法。具体而言,我们认为 “混合 RAG 方案” 具有应用潜力 —— 该方案在采用我们的映射 - 归约(map-reduce)摘要生成机制前,会将 “基于嵌入的匹配” 与 “实时社区报告生成” 相结合。这种 “汇总整合(roll-up)” 式方法还可扩展至社区层级结构的多个层面,同时也能实现为更具探索性的 “深度挖掘(drill down)” 机制,即依据高层级社区摘要中包含的信息线索进一步深入查询。
更广泛的影响
作为针对大规模文档集合的问答机制,若生成的回答无法准确反映源数据,将对下游的理解任务与决策任务构成风险。使用该系统时,应明确告知用户人工智能(AI)的使用情况,以及输出结果存在误差的可能性。不过,与向量 RAG 相比,GraphRAG 在缓解 “全局性问题” 的下游风险方面展现出潜力 —— 若采用其他方法,这类全局性问题可能会被检索到的事实样本所回答,而这些样本却被错误地当作全局摘要呈现。
7.结论
我们提出了 GraphRAG(图检索增强生成)这一检索增强生成(RAG)方法,该方法将知识图谱生成与面向查询的摘要生成(QFS)相结合,以支持人类对完整文本语料库的理解分析。初步评估结果显示,相较于向量检索增强生成(vector RAG)基准模型,GraphRAG 在回答的全面性和多样性方面均有显著提升;同时,与采用映射 - 归约(map-reduce)源文本摘要技术、具备全局分析能力但无图谱支撑的方法相比,GraphRAG 也展现出优势。
对于需要对同一数据集进行多次全局查询的场景,基于实体的图索引中顶层社区的摘要所构建的数据索引,不仅性能优于向量检索增强生成,且在词元成本仅为其他全局方法一小部分的情况下,实现了与这些方法相当的性能表现。
参考文献
[1] GraphRAG 原文 2404.16130
1691

被折叠的 条评论
为什么被折叠?



