从本地到全局:基于图的RAG方法进行查询聚焦原理摘要

news2024/9/23 21:31:22

摘要

使用检索增强生成(RAG)从外部知识源检索相关信息,使大型语言模型(LLMs)能够回答有关私有和/或以前未见过的文档集合的问题。然而,当针对整个文本文档库提出全局问题时,例如“数据集中的主要主题是什么?”,RAG 会失败,因为这本质上是一个查询聚焦摘要(QFS)任务,而不是明确的检索任务。与此同时,之前的 QFS 方法无法扩展到典型 RAG 系统索引的大量文本。为了结合这些对立方法的优势,我们提出了一个基于图的 RAG 框架来回答私人文本语料库中的问题,该框架可以扩展到用户问题的一般性和要索引的源文本的数量。我们的方法使用 LLM 在两个阶段构建基于图的文本索引:首先从源文档中推导出实体知识图,然后为所有密切相关的实体组预生成社区摘要。给定一个问题,每个社区摘要用于生成部分响应,然后对所有部分响应进行总结以提供最终响应。对于一类关于 100 万个标记范围的数据集的全局理解问题,我们证明了图 RAG 在生成答案的全面性和多样性方面相对于简单的 RAG 基线有了显着改进。Python 实现的开源版本即将在Project GraphRAG - Microsoft Research上提供。

1. 简介

人类在各个领域的努力都依赖于我们阅读和推理大量文档的能力,通常得出的结论超出了源文本本身的任何陈述。随着大型语言模型(LLMs)的出现,我们已经目睹了试图在复杂领域实现类人思维的努力,例如科学发现(Microsoft, 2023 年)和情报分析(Ranade 和 Joshi, 2023 年),其中类人思维被定义为“理解一个或多个给定信息的上下文,并从中推断出新信息”的过程。

image

“有动机、持续不断地努力去理解联系(可以是在人与人之间,地点之间,事件之间)以预测他们的轨迹并有效地行动。”(Klein等人,2006a)。然而,在整个文本语料库中支持人类主导的情境感知需要一种方法来使人们在对全球性问题提问时应用和细化他们对数据的心理模型(Klein等人,2006b)。

检索增强生成(RAG,刘易斯等人,2020年)是一种回答用户问题的方法,对整个数据集进行查询,但它是为这些答案在文本区域内的局部位置设计的,其中的检索提供了生成任务所需的足够基础。相反,一个更合适的任务框架是关注查询的摘要(QFS,Dang,2006),特别是关注查询的抽象摘要,它不仅产生自然语言摘要,而且不只产生连接片段(Baumel等人,2018;Laskar等人,2020;Yao等人,2017)。然而,在最近几年中,诸如抽象与提取、通用与查询聚焦以及单文档与多文档之间的差异性等总结任务之间的区别变得不再相关。虽然早期应用架构的结果表明,在所有此类总结任务中都取得了显着的改进(Goodwin等人,2020;Laskar等人,2022;刘易斯和拉帕塔,2019),但这些任务现在已被现代 LLM 所简化,包括 GPT(Achiam 等人,2023;Brown 等人,2020)、LLAMA(Touvron 等人,2023)和 Geminni(Anil 等人,2023)系列,它们都可以使用上下文学习来总结其语境窗口中的任何内容。

然而,查询驱动的语义摘要在整篇文档上的挑战仍然存在。 这些文本量可能远远超出 LLM 上下文窗口的限制,而扩大这些窗口可能不足以避免信息“在中间丢失”的情况(Kuratov 等人,2024;刘等人,2023)。 此外,虽然朴素 RAG 中直接检索文本块可能不适用于 QFS 任务,但预索引的替代形式可能会支持专门针对全局摘要的新 RAG 方法。

在本文中,我们提出了一种基于图RAG的方法,该方法使用了从语言模型衍生出的知识图谱的全局摘要(见图1)。与利用图形索引的结构检索和遍历功能的相关工作形成对比(见第4.2节),我们关注的是在这种背景下图形的先前未探索的质量:它们固有的模块化性(Newman, 2006)以及社区检测算法将图形划分为紧密相关的节点模

社区描述提供了底层索引图的完整覆盖,以及它所代表的输入文档。然后可以使用映射-减少方法对整个语料库进行查询聚焦摘要:首先使用每个社区摘要独立并行地回答查询,然后汇总所有相关的部分答案以得出最终的整体答案。

为了评估这种方法,我们使用了一个语言模型来从两个代表性的现实世界数据集的简短描述中生成一系列以活动为中心的意义构建问题。这些数据集分别包含播客转录和新闻文章。为了目标质量的全面性、多样性以及赋予能力(在第3.4节中有定义),以发展对广泛问题和主题的理解,我们探索了回答查询时所使用的社区总结层次的不同影响,并将其与源文本的朴素RAG和全局地图减少摘要进行比较。我们发现所有全局方法在全面性和多样性方面都优于朴素RAG,而带有中级和低级社区摘要的图RAG在这两项指标上也显示出比源文本摘要更好的性能,且成本更低。

2 图形 RAG 方法 & 管道

现在,我们对 图形RAG方法(图1)和流水线进行高层次的数据流分析,描述每个步骤的关键设计参数、技术以及实现细节。

2.1 源文件 → 文本块

一个基本的设计决策是输入文本应以多大的粒度拆分为处理文本块。在接下来的步骤中,每个这样的块将被传递给一组预训练模型提示,用于提取图索引的各种元素。较长的文本块需要更少的预训练模型调用才能进行此类提取,但会受到较长预训练模型上下文窗口(Kuratov等人,2024;刘等人,2023)的召回率下降的影响。这种行为可以在单个提取轮次(即零摘录)的情况下观察到:在一个样本数据集(HotPotQA,Yang等人,2018),使用大小为600令牌的块几乎提取了两倍于使用大小为2400令牌的块的实体引用。虽然更多的参考通常更好,但任何提取过程都需要权衡目标活动的召回率和精度。

2.2 文本块 → 元素实例

此步骤的基本要求是从源文本的每一部分识别并提取图节点和边。我们使用多段式的 LLM 提示来实现这一点,该提示首先识别文本中的所有实体,包括它们的名称、类型和描述,然后识别清楚相关的实体之间的所有关系,包括源和目标实体及其关系的描述。这两种类型的元素实例都以单个分隔的元组列表的形式输出。

在文档语料库领域定制提示的主要机会在于为上下文学习向 LLM 提供的一些示例(Brown 等人,2020 年)。

例如,虽然我们默认提取人物、地点和组织等“命名实体”的大类通常都是通用的,但具有专门知识(如科学、医学、法律)的领域可以从针对这些领域的少样本示例中受益。我们还支持附加协变量的二级提取提示,以便与提取的节点实例相关联。我们的默认协变量提示旨在提取与检测到的实体相关的声明,包括主语、宾语、类型、描述、源文本跨度以及开始和结束日期。

为了平衡效率和质量的需求,我们使用多轮“拾取”,直到达到一个特定的最大值,以鼓励语言模型检测到在之前的提取轮中可能遗漏的所有实体。这是一个多阶段的过程,在这个过程中,我们首先要求语言模型评估所有实体是否被提取,通过设置对数线性偏移量为100来迫使二元决策。如果语言模型表示有实体未被发现,则继续操作,表明“上次提取中有许多实体未被发现”,这会促使语言模型去拾取这些丢失的实体。这种方法使我们可以使用更大的块大小,而不会降低质量(见图2),也不会强制引入噪声。

2.3 元素实例 → 元素摘要

使用 LLM 从源文本中“提取”实体、关系和断言的描述已经是抽象总结的形式,依靠 LLM 为文本本身隐含但未明确表达的概念(例如,隐含的关系的存在)生成独立且有意义的摘要。要将所有此类实例级摘要转换为每个图形元素(即实体节点、关系边缘和断言协变量)的单个描述性文本块,需要对匹配的实例组进行进一步的 LLM 总结。

目前的一个潜在问题是,LLM 可能不会始终从同一文本格式中提取对同一实体的引用,导致实体图中有重复的实体元素。然而,由于所有密切相关的“社区”实体将在接下来的步骤中被检测到并进行总结,并且鉴于 LLM 能够理解多个名称变体背后共同存在的实体,只要所有变体都足够连接到一组共享的密切相关的实体,我们的总体方法就能抵抗这种变化。

总的来说,我们在潜在嘈杂的图结构中使用丰富的描述性文本来表示同质节点的做法既符合 LLM 的能力,也符合全球、查询驱动的摘要的需求。这些特性还使我们的图形索引与典型的知识图谱区别开来,后者依赖于下游推理任务所需的简洁且一致的知识三元组(主语、谓词、宾语)。

2.4 元素总结→ 社区图

在前一步中创建的索引可以建模为一个同质无向加权图,其中实体节点通过关系边连接,边权重表示检测到的关系实例的归一化计数。给定这样的图,可以使用各种社区检测算法将图分割为一组节点,这些节点之间的连接比与其他图中的节点更强(例如,请参阅 Fortunato, 2010 和 Jin 等人,2021 年的调查)。在我们的管道中,我们使用 Leiden (Traag et al.,2019),因为它能够有效地恢复大规模图的层次结构社区(见图3)。这种层次结构的每一级都提供了一个覆盖图中所有节点的互斥、完全且穷尽的社区划分,从而使我们可以实现分治式的全局总结。

2.5 图形社区 → 社区摘要

接下来,我们将使用一种设计用于处理大型数据集的方法,在莱顿层次结构中为每个社区创建类似报告的摘要。这些摘要本身作为理解数据集的全球结构和语义的一种方式而独立有用,并且可以用来在没有问题的情况下对语料库进行解释。例如,用户可以浏览一个级别的社区摘要,寻找感兴趣的总体主题,然后通过链接到较低级别提供的更详细的子主题报告。然而,这里我们关注的是它们作为回答全局查询的基于图形索引的一部分的效用。

社区摘要以如下方式生成:

图3:使用Leiden算法(Traag等人,2019)在MultiHop-RAG数据集中检测到的图社区。圆圈代表实体节点,大小与它们的度数成比例。通过OpenORD(Martin等人,2011)和Force Atlas 2(Jacomy等人,2014)进行节点布局。节点颜色表示实体社区,在两个层次的聚类中显示:(a)第0层,对应具有最大模块性的分层分区,以及 (b) 第1层,揭示这些根级别社区内的内部结构。

• 叶级社区。 优先考虑叶级社区(节点、边、协变量)的元素摘要,然后迭代地将其添加到 LLM 上下文窗口中,直到达到标记限制为止。 优先顺序如下:对于每个社区边,按其源节点和目标节点度数之和的降序(即总体重要性),依次添加源节点描述、目标节点描述、关联协变量描述以及边本身描述。

• 高级社区。如果所有元素摘要都适合上下文窗口中的标记限制,则按照叶级社区进行处理,并在社区中汇总所有元素摘要。 否则,按元素摘要令牌降序对子社区进行排名,并迭代地用子社区摘要(较短)替换其相关元素摘要(较长),直到适应上下文窗口为止。

2.6 社区总结→社区答案→全局答案

给定用户查询,可以在多阶段过程中使用上一步生成的社区摘要来生成最终答案。社区结构的层次性也意味着可以使用来自不同级别的社区摘要来回答问题,这引发了在分层社区结构中的特定级别是否为一般意义的理解提供了最佳的摘要细节和范围的问题(在第 3 节中进行了评估)。

对于给定的社区级别,任何用户查询的全球答案如下所示:

• 准备社区摘要。 社区摘要被随机打乱并划分为预定义的标记大小块。 这可以确保相关信息分布在块中,而不是集中在单个上下文窗口中(可能会丢失)。

• 地图社区答案。 并行生成中间答案,每个块一个。 还要求 LLM 为生成的答案提供一个介于 0 到 100 之间的分数,以指示它在回答目标问题方面的帮助程度。 得分 0 的答案被过滤掉。

• 将全球答案降低到中间社区的答案。 中间社区的答案按帮助分数降序排列,并迭代添加到新的上下文窗口,直到达到令牌限制。 这个最终的上下文用于生成用户返回的全局答案。

image

表1:根据目标数据集的简短描述,LLM生成的潜在用户、任务和问题示例。这些问题针对全局理解而不是具体细节。

3 评价

3.1 数据集

我们选择了两个在一百万词左右的语料库,每个都包含大约十部小说文本,代表了用户可能在其真实世界活动中遇到的语料库类型:

•播客文字稿。微软首席技术官凯文·斯科特和其他科技领袖(“幕后科技”,斯科特,2024)之间的播客对话的文字稿。大小:1669×600标记文本块,每块之间有100个标记重叠(约100万个标记)。

• 新闻文章。由多跳可扩展图(MultiHop-RAG;Tang和Yang,2024)组成的基准数据集,其中包含从2013年9月到2023年12月在多个类别中发布的新闻文章,包括娱乐、商业、体育、科技、健康和科学。大小:3197×600标记文本块,块之间有100个标记重叠(约170万个标记)。

3.2 查询

许多开放领域的基准数据集用于问答,包括HotPotQA(Yang等人,2018年),MultiHop-RAG(Tang和Yang,2024年)和MT-Bench(Zheng等人,2024年)。然而,相关的问题集针对明确的事实检索而不是为了数据思维的目的进行摘要,即人们检查、参与并从更广泛的现实世界活动中推断数据的过程(Koesten等人,2021)。类似地,也存在从源文本中提取潜在摘要查询的方法(Xu和Lapata,2021),但提取的问题可能会泄露文本的先前知识。

为了评估RAG系统在更全球化的数据集理解任务中的有效性,我们需要提出的问题只能传达对数据集内容的高层次理解,而不是具体文本的细节。我们使用了一种以活动为中心的方法来自动产生此类问题:给定一个数据集的简短描述,我们要求模型识别出每个用户N个潜在用户和每个用户N个任务,然后对于每个 (user, task) 组合,我们要求模型生成需要理解整个语料库的问题N个。在我们的评估中,值为N = 5时,每个数据集产生了125个测试问题。表1显示了两个评估数据集中每个示例问题的示例。

3.3 条件

在我们的分析中,我们比较了六个不同的条件,包括使用四层社区图(C0、C1、C2 和 C3)的图形RAG、直接应用于源文本的映射减少法文本摘要方法(TS),以及朴素的“语义搜索”RAG 方法(SS):

• CO。 使用根级别社区摘要(数量最少)来回答用户查询。

• C1:使用高级社区摘要来回答查询。如果存在,则为 C0 的子社区,否则为投影到 C0 的社区。

• C2。使用中等水平的社区摘要来回答查询。如果存在,这些是C1的子社区;否则,它们是从C1投影下来的社区。

• C3. 使用低级社区摘要(数量最多)来回答查询。如果存在,这些是C2的子社区;否则,是C2社区的投影。

• TS。与子段落2.6相同的方法,除了源文本(而不是社区摘要)被随机排列并分块用于地图减少总结阶段。

• SS。一个简单的 RAG 实现,其中文本块被检索并添加到可用上下文窗口中,直到达到指定的标记限制。

生成答案所用的上下文窗口大小和提示与所有六个条件相同(除了参考风格的小改动以匹配使用的上下文信息类型)。 条件仅在如何创建上下文窗口的内容方面有所不同。

我们使用通用提示,用于实体和关系提取,仅创建了支持条件 C0-C3 的索引。 这些实体类型和少量示例专门针对数据域进行了定制。 使用了上下文窗口大小为 600 个令牌,播客数据集有 1 次收集,新闻数据集没有收集。

3.4 指标

研究表明,语言模型可以很好地评估自然语言生成,与人类判断相比,取得了最先进的或竞争性的结果(Wang等人,2023a;Zheng等人,2024)。虽然当黄金标准答案已知时,这种方法可以生成基于参考的度量值,但它也可以以无参考的方式衡量生成文本的质量(例如,连贯性)(Wang等人,2023a),以及在竞争对手输出之间的头对头比较中进行评估(作为裁判的语言模型,Zheng等人,2024)。语言模型还显示出了对传统RAG系统的性能评估的潜力,自动评估上下文相关性、忠实性和答案相关性等质量(RAGAS,Es等人,2023)。

鉴于我们的图状RAG机制的多阶段性质,我们想要比较的多个条件以及我们基于活动的问题缺乏黄金标准答案,我们决定采用使用 LLM 评估器的直接比较方法。我们选择了三个目标指标来捕捉对思维活动有帮助的品质,以及一个控制指标(直接性),用作有效性指标。由于直接性实际上与全面性和多样性相对立,因此我们不期望任何方法在所有四个指标上都表现出色。

我们使用 LLM 评估器计算的对头测量结果如下:

• 完整性。答案提供了多少细节来涵盖问题的所有方面和细节?

• 多样性。答案提供了多少不同的视角和见解?有多少种可能性?

赋权。答案在多大程度上帮助读者了解并做出关于主题的明智判断?

• 扩大范围。这个话题或问题是否与更大的话题相关,如果是的话,请解释为什么它很重要。

• 直接性。回答问题的具体性和清晰度如何?

在我们的评估中,语言模型被提供了问题、目标度量以及一对答案,并要求根据该度量来评估哪个答案更好,以及为什么。如果存在赢家,则返回赢家;否则,在它们本质上相似且差异可以忽略不计的情况下,返回平局。为了考虑 LLM 的随机性,我们对每种比较进行了五次运行并使用平均分数。表 2 显示了 LLM 生成的评估示例。

image

image

3.5 配置

上下文窗口大小对任何特定任务的影响尚不清楚,尤其是对于具有 128k 个标记的大上下文大小的模型(如 gpt-4-turbo)。鉴于信息可能在较长的上下文“中间丢失”(Kuratov 等人,2024 年;刘等人,2023 年),我们希望探索在我们的数据集、问题和指标组合中更改上下文窗口大小的效果。具体而言,我们的目标是确定基准条件 (SS) 的最佳上下文大小,然后在此基础上为所有查询时间 LLM 使用进行统一设置。为此,我们测试了四种上下文窗口大小:8k、16k、32k 和 64k。令人惊讶的是,在所有比较中,测试到的最小上下文窗口大小(8k)在全面性方面普遍更好(平均胜率 58.1%),而在多样性方面与较大的上下文大小相当(平均胜率 = 52.4%)以及赋权(平均胜率 = 51.3%)。鉴于我们更喜欢更全面且多样化的答案,因此我们在最终评估中使用了一个固定大小的上下文窗口 8k 令牌。

3.6 结果

Podcast 数据集的索引过程导致了一个包含 8564 个节点和 20691 条边的图,News 数据集的图更大,有 15754 个节点和 19520 条边。表 3 显示了每个图社区层次结构中不同级别的社区摘要数量。

全局方法与朴素RAG。如图 4 所示,无论是在数据集上还是在多样性指标上,全局方法都比朴素RAG(SS)表现得更好。具体来说,在播客脚本中,全局方法实现了72%-83% 的全面性胜率,而在新闻文章中则为72%-80%,而多样性胜率分别为75%-82% 和62%-71%。我们使用直接性作为有效性测试也取得了预期的结果,即朴素RAG 在所有比较中产生的回答最直接。

第 10 页

image

社区摘要与源文本。使用Graph RAG比较社区摘要和源文本时,社区摘要通常在答案全面性和多样性方面提供了小但一致的改进,除了根级别摘要。播客数据集中的中级摘要和新闻数据集中的低级社区摘要实现了57% 和64% 的全面性胜率。多样性的胜利率为57%(播客中级摘要)和60%(新闻低级社区摘要)。表3 还展示了Graph RAG相对于源文摘的优点:对于低级社区摘要(C3),Graph RAG需要少于26%-33% 的上下文标记;而对于根级别社区摘要(C0),则需要少于97% 的标记。与其他全局方法相比,性能下降幅度不大,根级别的Graph RAG为迭代问答提供了一种高效的方法,这种问答活动具有信息构建的特点,并且在全面性(72% 胜率)和多样性(62% 胜率)方面优于naive RAG。

赋权。与全球方法相比,naive RAG (SS) 和 Graph RAG 方法之间的赋权比较显示出了好坏参半的结果。用于分析模型推理的 ad-hoc LLM 表明,提供具体示例、引文和参考资料的能力被认为是帮助用户获得知情理解的关键。调整元素提取提示可能有助于在 Graph RAG 指数中保留更多这些细节。

4 相关工作

4.1 情绪分析方法与系统

在使用 LLM 时,RAG 首先从外部数据源检索相关信息,然后将这些信息与原始查询一起添加到 LLM 的上下文窗口中(Ram 等人,2023)。Naive RAG 方法通过将文档转换为文本、将文本拆分为块并将这些块嵌入到一个向量空间来实现这一点,在该向量空间中,相似的位置表示相似的语义。然后将查询嵌入到同一向量空间中,并使用最近的 k 个向量的文本块作为上下文。虽然存在更先进的变体,但所有这些变体都解决了当感兴趣的外部数据集超出 LLM 上下文窗口的问题。

先进的RAG系统包括旨在克服Naive RAG缺点的预检索、检索和后检索策略,而模块化RAG系统包括交替检索和生成(Gao等人,2023年)的迭代和动态循环模式。我们的图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)。然而,并没有这些迭代或层次方法使用能够启用图RAG的自动生成的图形索引。

4.2 图表与LLMs

使用图形与 LLM 和 RAG 的结合是一个正在发展的研究领域,已经建立了多个方向。这些包括使用 LLM 生成知识图谱(Trajanoska 等人,2023 年)以及对源文本进行补全(Yao 等人,2023 年),以及从源文本中提取因果图(Ban 等人,2023 年;Zhang 等人,2024 年)。它们还包括高级 RAG 的形式(Gao 等人,2023 年),其中索引是一个知识图谱(KAPING,Baek 等人,2023 年),其中子图结构的子集(G-Retriever,He 等人,2024 年)或派生图度量(Graph-ToolFormer,Zhang,2023 年)是调查的对象,叙事输出强烈基于检索到的子图的事实(SURGE,Kang 等人,2023 年),检索到的事件图子图通过叙事模板序列化(FABULA,Ranade 和 Joshi,2023 年),系统支持用于多跳问答的文本关系图的创建和遍历(Wang 等人,2023 年 b)。在开源软件方面,多种图形数据库都得到了 LangChain(LangChain,2024 年)和 LlamaIndex(LlamaIndex,2024 年)库的支持,而各种基于图形的 RAG 应用程序也正在出现,包括可以在 Neo4j(NaLLM,Neo4j,2024 年)和 NebulaGraph(GraphRAG,NebulaGraph,2024 年)格式中创建和推理知识图谱的系统。然而,与我们的图形 RAG 方法不同,这些系统都没有利用图形的自然模块化来为全局摘要分段数据。

5 讨论

评估方法的局限性。到目前为止,我们对两个语料库进行了约一百万令牌的特定类别的推理问题的评估。需要更多的工作来了解性能如何在不同类型的推理问题、数据类型和数据集大小范围内变化,并与最终用户验证我们的推理问题和目标指标。使用 SelfCheckGPT(Manakul 等人,2023 年)等方法比较制造率也会改进当前分析。

构建图索引的权衡。我们一致观察到,Graph RAG 在与其他方法的直接比较中取得了最佳效果,但在许多情况下,无图法对源文本进行全局摘要的方法也具有竞争力。在现实世界中,是否投资于构建图索引取决于多个因素,包括计算预算、每条数据集的预期生命周期查询次数以及从图索引的其他方面获得的价值(包括通用社区摘要和其他与图相关的 RAG 方法的使用)。

未来的工作。 图表索引、丰富的文本注释和分层社区结构支持当前的 图表RAG方法 提供了许多改进和适应的机会。这包括在更本地化的方式下运行的RAG方法,通过基于嵌入的用户查询和图表注释匹配,以及混合RAG方案的可能性,该方案结合了基于嵌入的对社区报告的匹配,然后使用我们的 map-reduce 汇总机制。这种“汇总”操作也可以扩展到更多级别的社区层次结构,并且可以实现为更具探索性的“深入”机制,遵循包含在更高层次社区摘要中的信息气味。

6 结论

我们提出了一个用于图RAG的全球方法,结合知识图谱生成、检索增强生成(RAG)和查询聚焦摘要(QFS),以支持人类对整个文本语料库的理解。初步评估表明,在答案的全面性和多样性方面,与基于naive RAG的基线相比,取得了显著的改进,并且与使用map-reduce源文摘的无图形全局方法进行了有利的比较。对于需要对同一数据集进行许多全局查询的情况,实体图形索引中根级别社区的摘要提供了比naive RAG更好的数据索引,并在极小的成本下实现与其他全局方法竞争的性能。

一个基于开源Python的实现,包括全局和局部图RAG方法,请参见 Project GraphRAG - Microsoft Research。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1921096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

45、tomcat+课后实验

tomcat 1、tomcat tomcat和php一样,都是用来处理动态页面的。 tomcat也可以作为web应用服务器,开源的。 php .php tomcat .jsp nginx .html tomcat 是用Java代码写的程序,运行的是Java的web应用程序。 tomcat的特点和功能&#xff1a…

推荐算法——NDCG归一化折扣累积增益

NDCG,全称为归一化折扣累积增益(Normalized Discounted Cumulative Gain),是一种常用的衡量搜索引擎和推荐系统结果质量的指标。NDCG考虑了结果的相关性和结果的排名位置,其值在0到1之间,值越大表示搜索结果…

解码RAG:智谱 RAG 技术的探索与实践

智谱 AI 长期专注于大模型技术的研究,从 23 年开始,大模型受到了各行各业的关注,智谱 AI 也深度的参与到各种场景的大模型应用的建设当中,积累了丰富的模型落地应用的实战经验,其中 RAG 类应用占据了较大的比重。 所谓…

【前端项目笔记】10 项目优化上线

项目优化上线 目标:优化Vue项目部署Vue项目(上线提供使用) 项目优化 项目优化策略: 生成打包报告:根据生成的报告发现问题并解决第三方库启用CDN:提高首屏页面的加载效率Element-UI组件按需加载路由懒加…

直观易用的大模型开发框架LangChain,你会了没?

目录 简介基本组件小试牛刀关于沟通代码案例:调用Embedding、Completion、Chat Model总结 目前LangChain框架在集团大模型接入手册中的学习案例有限,为了让大家可以快速系统地了解LangChain大模型框架并开发,产出此文章。本文章包含了LangCha…

SAP各代增强介绍与查找,这一篇就够了

目录 1.前言: 2.什么是增强: 3.增强类型: 4.增强查找方式: USER-EXIT的快速查找 ①基于源码查找 ②基于SPRO查找 ③通过SAT运行分析进行查找 Customer-Exit的快速查找 ①使用MODX_FUNCTION_ACTIVE_CHECK查找 ②使用/H …

Mysql:FIND_IN_SET 函数在逗号分隔的列表中搜索指定的值

FIND_IN_SET 函数用于在逗号分隔的列表中搜索指定的值。 语法: FIND_IN_SET(str,strlist),其中 str是要查找的值, strlist是逗号分隔的列表。函数返回值是 str在 strlist中的位置,位置从1开始,如果找不到则返回0 SELEC…

Linux桌面溯源

X窗口系统 Linux起源于X窗口系统(X Window System),亦即常说的X11,因其版本止于11之故。 X窗口系统(X Window System,也常称为X11或X)是一种以位图方式显示的软件窗口系统。最初是1984年麻省理…

论文AIGC率超标?一键降重快速搞定

如何有效降低AIGC论文的重复率,也就是我们说的aigc如何降重?AIGC疑似度过高确实是个比较愁人的问题。如果你用AI帮忙写了论文,就一定要在交稿之前做一下AIGC降重的检查。一般来说,如果论文的AIGC超过30%,很可能会被判定…

无线麦克风什么牌子音质好,轻揭秘什么牌子麦克风唱歌效果最好

​随着领夹麦克风市场的变革和技术突破,其在网络直播、视频拍摄和内容创作等领域的应用也日益广泛。我们注意到许多消费者在选购领夹无线麦克风时面临困惑,因此,我们将提供详细的购买指南,并推荐几款实用的麦克风,以供…

MFC Ribbon菜单 - 中英文实时切换方法

简介 最近在搞一个老外的项目,本来谈的好好的,纯英文界面。项目接近尾声了,又提出了中英文实时切换的新需求,没办法就只能想办法,毕竟客户最大嘛。 实现方法 还好本来的ribbon英文菜单不复杂,就用纯C编码…

解决QRCode生成二维码打印不出

问题:二维码嵌入在页面中,打印时二维码不渲染的情况 解决方法: 使用 html2canvas 库将指定的 DOM 元素(在这个例子中是 id 为 pdf 的元素)转换成一个画布(canvas),然后将这个画布转换…

数据库系统原理练习 | 作业2-第2章关系数据库(附答案)

整理自博主本科《数据库系统原理》专业课完成的课后作业,以便各位学习数据库系统概论的小伙伴们参考、学习。 *文中若存在书写不合理的地方,欢迎各位斧正。 专业课本: 目录 一、选择题 二、填空题 三、简答题 四、关系代数 1.课本p70页&…

嵌入式基础 接口协议汇总

在此收集整理嵌入式通信中常见的接口协议,它们具有一定的通用性,在今后的开发中会反复遇到。 包括但不限于以下类别(逐步完善中…): GPIOUARTSPII2CUSBEthernetNAND Flash类SDRAM类(ram-like)LC…

拉取DockerHub镜像

参考博主:http://t.csdnimg.cn/i49ET 方法一(不太行): 在daemon.json文件中添加一些国内还在服务的镜像站(可能某些镜像会没有) ([ -f /etc/docker/daemon.json ] || mkdir -p /etc/docker) && e…

Idea合并Git分支信息

#git 的笔记 ##本篇文章是通过Idea 实现git 命令操作的代码的上传与合并。 1.合并分支 点击 Git 选择Merge 这里选择合并远程的分支

火山引擎数据飞轮实践:在电商场景中,如何建设全链路数据血缘?

数据作为新型生产要素,正支撑企业的数智化转型。但企业数字化建设也存在管理成本高、数据产品使用门槛高、数据资产价值不够的问题,其原因在于业务和数据之间没有形成双向良性驱动。 结合新时代企业数字化转型需求,火山引擎基于字节跳动十余…

【HTML入门】第十课 - 表格,也就是table标签

这一小节,我们说一下HTML中的表格。比如我们常常看见的学生成绩单,比如excel一个单元格一个单元格的,这些都是表格。 表格的标签名是 table 。 目录 1 表格中的一些子标签 1.1 表头区域 1.2 表格内容区域 1.3 行和列 2 实战一小下 2.…

Matlab提取excel数据及处理的实操举例

实现目的 当excel数据量庞大的时候,如果采用人工处理数据的方法就会成为非常出力不讨好的事,既容易出错,又容易抑郁。 利用matlab处理成为既简单又高效的方式。 例如,以GD32F7xx系列的管脚复用表格为例,在169x19的e…

[Linux]对Linux中的命令的本质

上回我们讲了Linux的指令,本篇是一个短篇,主要是对命令本质的讲解。 我们知道命令一般都是直接使用的 而可执行程序需要加上当前的路径 (这个mytest是我们上上回写的,作用实际是打印Hello world!) 我们很直观的可以发…