2026年7月2日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

微软最新力作Graph RAG:颠覆革新传统AI检索

发布日期:2024-07-15 14:00:04 浏览次数: 4073
作者:MLSys2024

微信搜一搜,关注“MLSys2024”

摘要

通过采用检索增强生成(RAG)技术,我们能够让大型语言模型(LLMs)从外部知识库中检索相关信息,从而有效回答来自私有或未曾见过的文档集合的问题。然而,当面对诸如“该数据集涵盖了哪些核心主题?”这样的全局性问题时,RAG就显得力不从心了,因为这类问题本质上是以查询为中心的摘要(QFS)任务,而非简单的检索任务。与此同时,现有的QFS方法在处理RAG系统所能索引的海量文本时,却显得捉襟见肘(算法效率和计算效率)。
为了融合这两种方法的优势,我们创新性地提出了图RAG(Graph RAG)方法,专为解答关于私有文本语料库的问题而设计,它不仅适用于各种类型的用户提问,还能轻松应对庞大的文本索引需求:该方法巧妙地利用LLM构建基于图的文本索引,过程分为两个阶段:首先,从源文档中提炼出实体知识图谱;随后,为所有紧密关联的实体群组预先生成社区摘要。在收到用户提问后,系统会利用每个社区摘要生成初步的回答片段,并最终将这些片段汇总成对用户问题的全面而精炼的解答
针对包含数百万个词汇的数据集上的全局性问题,实验结果表明,与传统的RAG方法相比,图RAG在答案的全面性和多样性方面均实现了显著提升。我们即将开源一个基于Python的图RAG实现方案,该方案同时支持全局和局部两种模式。

1 引言

首先,人类在阅读和理解文档集合时,不仅仅停留在文本表面所陈述的内容上,而是能够从中提炼出更深层次的意义和结论这种能力是我们进行科学研究、情报分析等领域工作的基础。我们能够通过分析文本中的信息、关系和模式,来预测未来的趋势、制定策略或做出决策。
然而,随着大数据时代的到来,文本语料库的规模急剧增加,人工阅读和理解所有文档变得不现实。因此,我们需要借助先进的技术手段来辅助这一过程。大型语言模型(LLMs)的出现为我们提供了一种可能,它们能够模拟人类的自然语言处理能力,对文本进行理解和分析。
在复杂领域中,如科学发现和情报分析,人们开始尝试利用LLMs来自动化类似人类的“意义构建”过程。这里的“意义构建”是指一种有动机的、持续的努力,旨在理解不同元素(如人、地点、事件)之间的联系,以便预测它们的未来轨迹并采取有效行动。通过LLMs,我们可以更高效地处理和分析大量文本数据,从中发现潜在的模式和关系,进而支持我们的决策和行动。
但是,仅仅依靠LLMs进行自动化分析是不够的。人类主导的意义构建过程需要一种方法,让人们既能应用LLMs的结果,又能通过提出全局性的问题来精炼他们对数据的心理模型。这意味着我们需要将LLMs的自动化分析能力与人类的直觉、判断力和创造力相结合,共同推动意义构建过程的深入发展(Klein等人,2006b)。
检索增强生成(RAG,Lewis等人,2020)是一种已确立的方法,用于在整个数据集上回答用户问题。但该方法是为这样一种情况设计的:答案局部存在于文本区域内,且这些文本的检索能够为生成任务提供充分的基础。然而,RAG方法有其局限性。它更适用于那些答案可以直接从文本中检索或局部提取出来的情况,而对于需要更高层次抽象和概括的问题,RAG可能表现不佳。一个更为合适的任务框架是以查询为中心的摘要(QFS,Dang,2006),特别是以查询为中心的抽象式摘要,它生成的是自然语言摘要,而不仅仅是拼接摘录(Baumel等人,2018;Laskar等人,2020;Yao等人,2017)。然而,近年来,摘要任务之间的区别——如抽象式与抽取式、通用式与查询为中心式、单文档与多文档——已变得不那么重要。尽管Transformer架构的早期应用在这些摘要任务上均显著提升了当时的技术水平(Goodwin等人,2020;Laskar等人,2022;Liu和Lapata,2019),但这些任务现在已被现代大型语言模型(LLMs)所简化,包括GPT系列(Achiam等人,2023;Brown等人,2020)、Llama(Touvron等人,2023)和Gemini(Anil等人,2023)等。这些模型都能利用上下文学习来概括其上下文窗口中提供的任何内容。
然而,针对整个语料库的以查询为中心的抽象式摘要仍面临挑战。如此大量的文本可能远远超出大型语言模型(LLMs)上下文窗口的限制,而扩大这些窗口可能仍不足以应对问题,因为信息可能会在更长的上下文中“丢失在中间”(Kuratov等人,2024;Liu等人,2023)。此外,尽管在简单的RAG中直接检索文本片段可能不足以完成QFS任务,但另一种形式的预索引可能支持一种新的RAG方法,专门针对全局摘要进行优化。


在本文中,我们提出了一种 基于大型语言模型(LLM)生成知识图谱全局摘要的 图检索增强生成(Graph RAG)方法(见图1)。与以往利用图索引进行结构化检索和遍历的研究不同,我们聚焦于一个独特且未被探索的特性:其固有的模块化特性(Newman, 2006)以及社区检测算法将图划分为紧密相关节点模块化社区的能力(如Louvain算法,Blondel等人,2008;Leiden算法,Traag等人,2019)

我们利用LLM为这些文档生成摘要,随后,通过一种映射归约方法实现了对整个语料库的查询聚焦摘要:首先,独立且并行地使用每个社区摘要来回答查询;然后,将所有相关的部分答案汇总成最终的全局答案。

为了评估该方法,我们使用LLM从两个具有代表性的真实世界数据集(分别包含播客转录和新闻文章)的简短描述中生成了一系列以活动为中心的意义构建问题。针对全面性、多样性和赋能性这三个目标特性,这些特性有助于理解广泛的问题和主题,我们研究了不同层级的社区摘要在回答查询时的影响,并与简单的RAG方法和源文本的全局映射归约摘要进行了比较。结果表明,所有全局方法在全面性和多样性方面均优于简单的RAG,而采用中级和低级社区摘要的Graph RAG在相同指标上表现出优于源文本摘要的性能,同时降低了标记成本。

2.Graph RAG 方法与流程

2.1 源文档 → 文本块

一个基本的设计决策是,从源文档中提取的输入文本应以何种粒度分割成文本块进行处理。在后续步骤中,这些文本块将传递给一组用于提取各种图索引元素的大型语言模型(LLM)提示。较长的文本块在提取过程中需要的LLM调用次数较少,但会遭受LLM长上下文窗口召回率下降的影响(Kuratov等人,2024;Liu等人,2023)。

如图2,在HotPotQA样本数据集上的实验显示,使用较短文本块(如600个标记)进行提取时,尽管LLM调用次数更多,但能够提取到的实体引用数量几乎是使用较长文本块(如2400个标记)的两倍。这表明,在某些情况下,较短的文本块可能更有利于提高信息提取的召回率。尽管提取到更多的实体引用通常是有益的,但这也需要考虑到精确率(即提取的信息中有多少是正确的)。在实际应用中,需要找到一个平衡点,使得在保持较高精确率的同时,尽可能提高召回率。

2.2文本块 → 元素实例

这一步的基本要求是从每个源文本块中识别和提取图节点和边的实例。我们使用一个多部分大型语言模型(LLM)提示(指令、上下文、输入、输出提示)来实现这一点,该提示首先识别文本中的所有实体,包括它们的名称、类型和描述,然后识别明确相关实体之间的所有关系,包括源实体、目标实体以及它们之间关系的描述这两种类型的元素实例都以一个由分隔符分隔的元组列表的形式输出。
在将大型语言模型(LLM)应用于文档语料库领域时,定制提示(Prompt)来优化LLM的性能主要机会在于为LLM提供用于上下文学习的少量示例(few-shot examples)(Brown等人,2020)。例如,虽然我们默认的提示能够提取像人、地点和组织这样的“命名实体”的广泛类别,这在一般情况下是适用的,但具有专业知识的领域(如科学、医学、法律)将从针对这些领域的特定少量示例中受益。我们还支持一个次要的提取提示,用于提取我们希望与提取的节点实例相关联的任何额外协变量。我们的默认协变量提示旨在提取与检测到的实体相关联的主张,包括主语、宾语、类型、描述、源文本跨度以及开始和结束日期。
为了平衡效率和质量的需求,我们使用多轮“挖掘”,直到达到指定的最大轮数,以鼓励LLM检测出在前几轮提取中可能遗漏的任何额外实体。这是一个多阶段过程,我们首先要求LLM评估是否已提取所有实体,通过设置一个100的logit偏置来强制LLM做出是或否的决定。如果LLM回应说遗漏了实体,那么后续会继续提示“上一轮提取中遗漏了许多实体”,以鼓励LLM挖掘这些遗漏的实体。这种方法使我们能够使用较大的文本块大小,而不会降低质量(如图2所示)或被迫引入噪声。

2.3 元素实例 → 元素摘要

利用LLM从源文本中“提取”实体、关系和主张的描述,这本身已经是一种抽象式摘要的形式,它依赖于LLM为文本本身可能暗示但未明确表述的概念创建独立且有意义的摘要(例如,隐含关系的存在)。为了将这些实例级别的摘要转换为每个图元素(即实体节点、关系边和主张协变量)的单块描述性文本,我们需要对匹配的实例组进行另一轮LLM摘要处理。
在这一阶段,一个潜在的问题是LLM可能无法以相同的文本格式一致地提取对同一实体的引用,这会导致实体元素的重复,从而在实体图中出现重复的节点。然而,由于所有密切相关的实体“群体”都将在下一步中被检测和摘要,并且考虑到LLM可以理解多个名称变化背后的共同实体,只要所有变化都与一组密切相关的共享实体集有足够的连接性,我们的整体方法就能够应对这种变化。
总体而言,我们在可能包含噪声的图结构中为同构节点使用丰富的描述性文本,这与LLM的能力和全局、查询导向型摘要的需求相一致。这些特点也使我们的图索引与典型的知识图谱区分开来,后者依赖于简洁且一致的知识三元组(主语、谓语、宾语)来执行下游推理任务。

2.4 元素摘要 → 图社区

在上一步中创建的索引可以被建模为一个同构无向加权图,其中实体节点通过关系边相连,边的权重表示检测到的关系实例的归一化计数。给定这样的图,可以使用多种社区检测算法将图划分为节点社区,这些节点社区内部的连接强度高于它们与图中其他节点的连接强度(例如,参见Fortunato, 2010和Jin等人的综述,2021)。在我们的流程中,我们选择了Leiden算法(Traag等人,2019),因为它能够高效地恢复大规模图的层次社区结构(如图3所示)。

这个层次结构的每一层都提供了一个社区划分,它以互斥且集体穷尽的方式覆盖图的节点,从而实现了分而治之的全局摘要。

2.5 图社区 → 社区摘要

下一步是为Leiden层次结构中的每个社区创建类似报告的摘要,使用一种能够扩展到非常大数据集的方法。这些摘要本身非常有用,因为它们提供了一种理解数据集全局结构和语义的方式,并且即使在没有问题的情况下,也可以用来理解整个语料库。例如,用户可以浏览某一层级的社区摘要,寻找感兴趣的一般主题,然后点击链接查看下一层级的报告,这些报告为每个子主题提供了更多细节。然而,在这里,我们重点关注它们作为基于图的索引的一部分,用于回答全局查询的实用性。
社区摘要的生成方式如下:
  • 叶子层级社区。首先根据优先级将叶子层级社区的元素摘要(节点、边、协变量)添加到LLM的上下文窗口中,直到达到令牌限制。优先级排序如下:对于每个社区边,按照源节点和目标节点度(即整体重要性)之和的降序排列,添加源节点、目标节点、链接的协变量以及边本身的描述。
  • 更高层级的社区。如果所有元素摘要都能适应上下文窗口的令牌限制,则按照叶子层级社区的方式进行处理,并总结社区内的所有元素摘要。否则,按照元素摘要令牌的降序对子社区进行排序,并迭代地用子社区摘要(较短)替换其相关的元素摘要(较长),直到适应上下文窗口为止。

2.6 社区摘要 → 社区答案 → 全局答案

在给定用户查询的情况下,前一步生成的社区摘要可以通过一个多阶段过程来生成最终答案。社区结构的层次性也意味着可以使用来自不同层级的社区摘要来回答问题,这引出了一个问题:在层次社区结构中,是否有一个特定层级能够在一般意义上的问题理解中提供最佳的摘要细节和范围的平衡。对于给定的社区层级,用户查询的全局答案生成过程如下:
  • 准备社区摘要:将社区摘要随机打乱并分成预定令牌大小的块。这确保了相关信息被分配到各个块中,而不是集中在(并可能丢失在)单个上下文窗口中。
  • 映射社区答案:并行生成中间答案,每个块一个。同时要求LLM(大型语言模型)为生成的答案生成一个0-100之间的分数,表示该答案在回答目标问题时的有用程度。分数为0的答案将被过滤掉。
  • 合并成全局答案:将中间社区答案按照有用性分数降序排列,并迭代地添加到新的上下文窗口中,直到达到令牌限制。使用这个最终的上下文来生成返回给用户的全局答案。

3 相关工作

3.1 RAG方法和系统

在使用大型语言模型(LLMs)时,检索增强生成(RAG)首先会从外部数据源中检索相关信息,然后将这些信息与原始查询一起添加到LLM的上下文窗口中(Ram等人,2023)朴素的RAG方法(Gao等人,2023)通过以下步骤实现首先将文档转换为文本,然后将文本分割成多个块,并将这些块嵌入到一个向量空间中,其中相似的位置代表相似的语义接下来,将查询也嵌入到相同的向量空间中,并使用最接近的k个向量的文本块作为上下文。虽然存在更高级的变体,但所有这些方法都旨在解决一个共同的问题,即当外部感兴趣的数据集超出LLM的上下文窗口大小时,应该如何处理。
先进的RAG系统包括预检索、检索和后检索策略,旨在克服朴素RAG的缺点,而模块化RAG系统则包括迭代和动态循环的交错检索和生成模式(Gao等人,2023)。我们实现的Graph RAG融合了与其他系统相关的多个概念。例如,我们的社区摘要是一种自我记忆(Selfmem,Cheng等人,2024),用于生成增强的检索(GAR,Mao等人,2020),以促进未来的生成循环,而我们从这些摘要中并行生成的社区答案则是一种迭代(Iter-RetGen,Shao等人,2023)或联邦(FeB4RAG,Wang等人,2024)检索生成策略。其他系统也结合了这些概念用于多文档摘要(CAiRE-COVID,Su等人,2020)和多跳问答(ITRG,Feng等人,2023;IR-CoT,Trivedi等人,2022;DSP,Khattab等人,2022)。我们使用的层次化索引和摘要也与其他方法相似,例如通过聚类文本嵌入的向量来生成文本块的层次化索引(RAPTOR,Sarthi等人,2024),或生成“澄清树”来回答模糊问题的多种解释(Kim等人,2023)。然而,这些迭代或层次化方法都没有使用Graph RAG所使用的那种自我生成的图索引。

3.2 图与大型语言模型(LLMs)

将图与大型语言模型(LLMs)和检索增强生成(RAG)相结合是一个不断发展的研究领域,已经确立了多个研究方向。这些方向包括使用LLMs进行知识图的创建(Trajanoska等人,2023)和补全(Yao等人,2023),以及从源文本中提取因果图(Ban等人,2023;Zhang等人,2024)。此外,还包括高级RAG的形式(Gao等人,2023),其中索引是知识图(如KAPING,Baek等人,2023),查询的对象是图结构的子集(如G-Retriever,He等人,2024)或派生的图度量(如GraphToolFormer,Zhang,2023),以及将叙述输出紧密地基于检索到的子图事实(如SURGE,Kang等人,2023),使用叙述模板序列化检索到的事件情节子图(如FABULA,Ranade和Joshi,2023),以及支持文本关系图的创建和遍历以进行多跳问答的系统(如Wang等人,2023b)。

在开源软件方面,LangChain(LangChain,2024)和LlamaIndex(LlamaIndex,2024)库都支持多种图数据库同时也在出现一类更通用的基于图的RAG应用,包括能够在Neo4J(如NaLLM,Neo4J,2024)和NebulaGraph(如GraphRAG,NebulaGraph,2024)格式中创建和推理知识图的系统。然而,与我们的Graph RAG方法不同,这些系统都没有利用图的自然模块性来对数据进行分区以实现全局摘要。

4 讨论

评估方法的局限性:截至目前,我们的评估仅针对约一百万词汇量的两个语料库中的某一类理解性问题进行了考察。为了更全面地理解性能在不同类型问题、数据类型和数据集大小上的变化,以及验证我们的理解性问题和目标指标与用户需求的契合度,还需要进一步的研究。此外,通过采用如SelfCheckGPT(Manakul等人,2023)等方法来比较生成内容的真实性,也将有助于改进当前的分析。

构建图索引的权衡:我们始终观察到,与其他方法相比,Graph RAG(基于图的检索增强生成)在直接对比中取得了最佳结果。然而,在许多情况下,无图的全局源文本摘要方法也表现出很强的竞争力。在实际应用中,是否投入资源构建图索引取决于多种因素,包括计算预算、每个数据集预期的生命周期查询次数,以及从图索引中获取的其他方面的价值(包括通用的社区摘要和其他基于图的RAG方法的应用)。

未来工作:当前Graph RAG方法所依赖的图索引、丰富的文本注释和层次化的社区结构为进一步的优化和适应提供了多种可能性。这包括通过用户查询和图注释的嵌入式匹配,以更局部化的方式运行的RAG方法;以及结合基于嵌入的社区报告匹配与我们的map-reduce摘要机制的混合RAG方案。此外,“汇总”操作可以扩展到社区层次的更多级别,也可以实现为一种更具探索性的“深入挖掘”机制,该机制遵循高级别社区摘要中包含的信息线索。

5 总结

我们提出了一种针对图关系增强生成(Graph RAG)的全局方法,该方法融合了知识图生成、检索增强生成(RAG)和查询聚焦摘要(QFS),旨在帮助人类对整个文本语料库进行理解和分析。初步评估结果显示,与朴素的RAG基线相比,该方法在答案的全面性和多样性方面均取得了显著改进,并且与使用MapReduce源文本摘要的全局但无图的方法相比也表现优异。

对于需要在同一数据集上进行大量全局查询的场景,基于实体的图索引中根级社区的摘要提供了一种数据索引方式,这种方式不仅优于朴素的RAG,而且以极低的令牌成本实现了与其他全局方法相媲美的性能。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅