[论文笔记]RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL

引言

今天带来又一篇RAG论文笔记:RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL。

检索增强语言模型能够更好地适应世界状态的变化并融入长尾知识。然而,大多数现有方法只能从检索语料库中检索到短的连续文本片段,限制了对整个文档上下文的完整理解。作者引入了一种新颖的方法,即递归嵌入、聚类和总结文本片段,从底部开始构建具有不同摘要级别的树。在推理期间,RAPTOR模型从这棵树中检索,将跨不同抽象级别的庞大文档中的信息整合起来。

源码发布在: https://github.com/parthsarthi03/raptor 。

1. 总体介绍

大语言模型已经成为具有深远影响的变革性工具,在许多任务上表现出令人印象深刻的性能。然而,即使是一个大型语言模型也不包含特定任务所需的足够领域特定知识,并且世界持续变化,使LLM中的事实失效。通过额外的微调或编辑来更新这些模型的知识是困难的,特别是在处理庞大文本语料库时。在开放领域问答系统中开创性的另一种方法是将大量文本进行分块(段落)后在单独的信息检索系统中建立索引。所检索的信息随后与问题一起作为上下文呈现给LLM(RAG检索增强),这使得为系统提供特定领域当前知识变得容易,并且能够轻松解释和追溯来源。

然而,现有的检索增强方法也存在缺陷。大多数现有方法只检索到几个短小的相邻文本片段,这限制了它们表示和利用大规模话语结构的能力。这在需要整合来自文本多个部分知识的主题性问题中尤为重要,比如理解整本书的情况,就像NarrativeQA数据集中以灰姑娘的童话故事为例,针对问题“灰姑娘如何走向幸福结局?”,检索到的前K个相邻短文本不包含足够的上下文来回答问题。

image-20240709165214027

为了解决这个问题,作者设计了一个索引和检索系统,使用树结构捕捉文本的高级和低级细节。如图1所示,RAPTOR对文本片段进行聚类,生成这些聚类的文本摘要,然后重复此过程,从底部生成树。这种结构使得RAPTOR能够加载不同级别代表文本的片段到LLM的上下文中,从而能够有效地回答不同级别的问题。

作者的主要贡献是利用文本摘要的想法,允许在不同尺度上进行检索增强上下文,并在长文集合的实验中展示其有效性。

2. 相关工作

为什么使用检索? 硬件和算法的最新进展确实扩展了模型可以处理的上下文长度,引发了关于检索系统必要性的讨论。然而,模型往往未充分利用长距离上下文,并在上下文长度增加时性能下降,特别是当相关信息嵌入在冗长上下文中时。此外,在实际应用中,使用长上下文既昂贵又缓慢。这表明,为知识密集型任务选择最相关的信息仍然至关重要。

检索方法 检索增强语言模型(Retrieval-augmented language models, RALMs)在各个组成部分中取得了改进:检索器(retriever)、阅读器(reader)和端到端系统训练。检索方法已经从传统的基于单词(term)的技术(如TF-IDF和BM25)转变为基于深度学习的策略。一些最近的工作提出使用大型语言模型作为检索器,因为它们能够记忆大量知识。关于阅读器组件的研究包括Fusion-in-Decoder,它同时使用DPR和BM25进行检索,并在编码器中独立处理段落,以及RETRO,它利用跨块关注和分块检索生成基于检索上下文的文本。

端到端系统训练工作包括Atlas,它在与检索器一起微调编码器-解码器模型;REALM,一种为开放域问答微调的双向掩码语言模型;以及RAG,将预训练的序列到序列模型与神经网络检索器集成。尽管方法多样,模型的检索组件主要依赖于标准方法,即对语料库进行分块并使用基于BERT的检索器进行编码。

尽管这种方法被广泛采用,但Nair等强调了一个潜在的缺点:连续分割可能无法捕获文本的完整语义深度。从技术或科学文档中提取的片段阅读可能缺乏重要上下文,使其难以阅读甚至具有误导性。

递归摘要作为上下文 摘要(Summarization,总结)技术提供了对文档的简洁视图,使内容更加集中。Gao等人的摘要模型使用段落(passage)的摘要和片段,提高了大多数数据集的正确性,但有时可能是一种高失真的压缩手段。Wu等人的递归摘要生成模型采用任务分解来总结较小的文本块,然后将其集成以形成较大部分的摘要。虽然这种方法对捕获更广泛主题很有效,但可能会忽略细节。LlamaIndex通过类似摘要相邻文本块的方式来缓解这一问题,但同时保留中间节点,因此存储着不同层次的细节,保留了细粒度的详情。然而,由于这两种方法依赖于相邻节点的分组或摘要,可能仍会忽视文本内的远程相互依赖关系,而RAPTOR可以找到并组合这些关系。

3. Method

RAPTOR概览 建立在长文本通常呈现子主题和分层结构的思想基础上,RAPTOR通过构建一个递归树结构来解决阅读中的语义深度和连接问题,该结构平衡了更广泛的主题理解和细粒度细节,允许根据语义相似性而不仅仅是文本顺序对节点进行分组。

RAPTOR树的构建始于将检索语料库分割成长度为100的短连续文本,类似于传统的检索增强技术。如果一句话超过100个标记的限制,我们将整个句子移至下一个块(chunk),而不是在句子中途截断。这保留了每个块内文本的上下文和语义连贯性。然后使用SBERT嵌入这些文本。这些块及其对应的SBERT嵌入形成了树结构的叶节点。

为了将相似的文本块分组,采用了聚类算法。一旦分组,将使用语言模型对分组文本进行总结。然后重新嵌入这些总结文本,并继续嵌入、聚类和总结循环,直到进一步聚类变得不可行为止,最终形成原始文档的结构化、多层树表示。RAPTOR的一个重要特点是其计算效率。该系统在构建时间和标记消耗方面呈线性缩放,适用于处理庞大和复杂的语料库。

对于在该树内查询,引入了两种不同的策略:树遍历和折叠树。树遍历方法逐层遍历树,在每个级别修剪和选择最相关的节点。折叠树方法评估所有级别上的节点,以找到最相关的节点。

聚类算法 聚类在构建RAPTOR树、将文本段组织成连贯簇(Group)方面发挥着关键作用。这一步将相关内容组合在一起,有助于后续的检索过程。

作者聚类方法的一个独特之处在于使用软聚类,其中节点可以属于多个簇,而不需要固定数量的簇。这种灵活性是必不可少的,因为单个文本段通常包含与各种主题相关的信息,因此需要将其纳入多个摘要中。

聚类算法基于高斯混合模型(GMMs),这种方法提供了灵活性和概率框架。GMMs假设数据点是从多个高斯分布混合中生成的。

给定一个包含N个文本片段的集合,每个表示为一个d维稠密向量嵌入,假设文本向量 x x x​属于第k个高斯分布的概率表示为 p ( x ∣ k ) = N ( x ; μ k , Σ k ) p(x|k) = \mathscr N(x;\mu_k,\Sigma_k) p(xk)=N(x;μk,Σk)。整体概率分布是加权和 P ( x ) = ∑ k = 1 K π k N ( x ; μ k , Σ k ) P(x) = \sum_{k=1}^K \pi_k \mathscr N(x;\mu_k,\Sigma_k) P(x)=k=1KπkN(x;μk,Σk),其中 π k \pi_k πk​表示第k个高斯分布的混合权重。

向量嵌入的高维度对传统GMMs构成挑战,因为在高维空间中使用距离度量可能表现不佳。为了缓解这一问题,作者采用均匀流形近似和投影(Uniform Manifold Approximation and Projection,UMAP),一种用于降维的流形学习技术。UMAP中的最近邻参数n_neighbors决定了保留局部结构和全局结构之间的平衡。作者的算法通过变化n_neighbors来创建层次聚类结构:首先识别全局聚类,然后在这些全局聚类中执行局部聚类。这种两步聚类过程捕捉了文本数据之间的广泛关系,从广泛主题到具体细节。

如果局部聚类的组合上下文超过了总结模型的标记阈值,作者的算法会在该聚类内递归应用聚类,确保上下文保持在标记阈值内。

为了确定最佳聚类数,使用贝叶斯信息准则(Bayesian Information Criterion,BIC)进行模型选择。BIC不仅惩罚模型复杂性,还奖励拟合优度。对于给定的GMM,BIC为 B I C = ln ⁡ ( N ) k − 2 ln ⁡ ( L ^ ) BIC = \ln(N)k - 2\ln(\hat L) BIC=ln(N)k2ln(L^),其中 N N N为文本片段(或数据点)的数量, k k k为模型参数的数量, L ^ \hat L L^​为模型似然函数的最大化值。在GMM的情境中,参数数量 k k k是输入向量的维度和聚类数量的函数。

得到由BIC确定的最佳聚类数量后,使用EM算法来估计GMM参数,即均值、协方差和混合权重。虽然GMM中的高斯假设可能与文本数据的性质不完全符合,后者通常表现出稀疏和偏斜的分布,但实证观察表明,它是一种有效的模型。

基于模型的摘要 在使用高斯混合模型对节点进行聚类后,将每个聚类中的节点发送到语言模型进行总结。这一步允许模型将大块文本转化为所选节点的简明、连贯摘要。作者使用gpt-3.5-turbo生成摘要。总结步骤将检索到的大量信息压缩为可管理的大小。

查询 下面详细阐述了RAPTOR所采用的两种查询机制:树遍历和折叠树(collapsed tree,坍塌树)。这些方法提供了在多层RAPTOR树中获取相关信息的独特方式,每种方法都有其各自的优势和权衡。在附录F中提供了这两种方法的伪代码。使用SBERT对所有节点进行嵌入。

树遍历方法首先基于查询嵌入与根节点的余弦相似性选择top-k个最相关的根节点。这些所选节点的子节点在下一层被考虑,然后再次基于它们的子节点与查询向量的余弦相似性选择top-k个节点。该过程重复进行,直到达到叶节点。最后,将从所有选定节点中提取的文本连接起来形成检索到的上下文。算法步骤如下:

  1. 在RAPTOR树的根层开始。计算查询嵌入与该初始层中所有节点的嵌入之间的余弦相似性。
  2. 基于最高余弦相似性得分选择前k个节点,形成集合 S 1 S_1 S1
  3. 继续处理集合 S 1 S_1 S1中元素的子节点。计算查询向量与这些子节点的向量嵌入之间的余弦相似性。
  4. 根据与查询的最高余弦相似性得分选择top-k个子节点,形成集合 S 2 S_2 S2
  5. 递归地继续这个过程达到d层,生成集合 S 1 、 S 2 . . . S d S_1、S_2...S_d S1S2...Sd
  6. 将集合 S 1 S_1 S1 S d S_d Sd​连接起来组装成与查询相关的上下文。

通过调整深度 d d d和每层选择的节点数 k k k​,树遍历方法提供了对检索到的信息的特定性和广度的控制。该算法从树的顶层开始具有宽泛的视野,并随着向下穿越到较低层而逐渐聚焦于更细节的内容。

image-20240709175100834

图2:树遍历和折叠树检索机制的示意图。树遍历从树的根层开始,并基于余弦相似性与查询向量检索top-k个(在此处为top-1个节点)。在每层,它从前一层top-k的子节点中检索top-k的节点。折叠树将树折叠成单层,并基于与查询向量的余弦相似性检索节点,直到达到标记数的阈值。这两种示意图中都突出显示了进行余弦相似性搜索的节点。

折叠树方法提供了一种更简单的搜索相关信息的方式,通过同时考虑树中的所有节点,如图2所示。这种方法不是逐层进行,而是将多层树折叠成单层,实质上将所有节点置于同一水平进行比较。该方法的步骤如下所述:

  1. 首先将整个RAPTOR树折叠为单层。这个新的节点集合,表示为 C C C,包含原始树的每一层中的节点。
  2. 接下来,计算查询嵌入与折叠集合 C C C中所有节点的嵌入之间的余弦相似性。
  3. 最后,选择与查询具有最高余弦相似性得分的top-k个节点。继续将节点添加到结果集,直到达到预定义的最大标记数,确保不超出模型的输入限制。

image-20240709175659483

作者在QASPER数据集的20个故事上对这两种方法进行了测试。图3显示了树遍历在不同top-大小和折叠树在不同最大标记数下的性能。折叠树方法始终表现更好。因为它提供了比树遍历更大的灵活性;即,通过同时搜索所有节点,它检索出针对特定问题正确粒度的信息。相比之下,使用相同值的 d d d k k k进行树遍历时,树的每个级别的节点比例将保持恒定。因此,无论问题是什么,高阶主题信息与细节信息的比例将保持不变。

然而,折叠树方法的一个缺点是需要对树中的所有节点执行余弦相似性搜索。然而,使用诸如FAISS等快速k近邻库可以使这一过程更加高效。

image-20240709175854058

定性研究 作者进行了定性研究,以比较RAPTOR的检索过程与Dense Passage Retrieval(DPR)方法的优劣。研究专注于使用一个1500字的灰姑娘童话故事的主题性、多跳问题。如图4所示,RAPTOR基于树的检索使其能够选择来自不同树层的节点,与问题的细节级别相匹配。这种方法通常比DPR为下游任务提供更相关和全面的信息。

4. 实验

在三个问答数据集:NarrativeQA、QASPER和QuALITY上评估。

image-20240710131217970

image-20240710131225493

使用UnifiedQA 3B作为阅读器,SBERT、BM25和DPR作为嵌入模型,在QASPER、NarrativeQA和QuALITY三个数据集上进行受控对比。如表1和表2所示,结果表明,当RAPTOR与任何检索器结合时,在所有数据集上均表现出优于各自检索器的一致性。RAPTOR与SBERT结合具有最佳性能

image-20240710131356405

比较了RAPTOR与BM25和DPR,在三种不同的LLM上的表现。如表3所示,在QASPER数据集上,RAPTOR始终优于BM25和DPR。

image-20240710131610257

在QuALITY数据集中,如表4所示,RAPTOR的准确率达到62.4%,比DPR和BM25分别提高了2%和5.1%。当使用UnifiedQA时也观察到类似的趋势。

image-20240710131645822

最后,在NarrativeQA数据集中,如表6所示,RAPTOR在多个指标上表现出色。

image-20240710131656515

**与最先进系统的比较 **

在受控比较的基础上,研究了RAPTOR相对于其他最先进模型的性能。如表5所示,搭配GPT-4的RAPTOR在QASPER上创造了一个新的基准,获得了55.7%的F-1分数,超过了CoLT5 XL的53.9%。

image-20240710131746212

在QuALITY数据集中,如表7所示,搭配GPT-4的RAPTOR创造了一个新的最先进,准确率达到82.6%,超过了之前62.3%的最佳结果。

在NarrativeQA数据集中,如表6所示,与UnifiedQA搭配的RAPTOR创造了一个新的最先进的METEOR分数。

4.1 树结构的贡献

研究了每一层节点对RAPTOR检索能力的贡献。假设上层节点在处理需要对文本进行更广泛理解的主题性或多跳查询中起着至关重要的作用。作者定性和定量验证了这一假设。

image-20240710131959491

在表8中展示了一个故事的具体发现,表明全树搜索,利用所有层,优于仅专注于特定层级的检索策略。这些发现凸显了RAPTOR中完整树结构的重要性。通过为检索提供原始文本和更高级别的摘要,RAPTOR可以有效处理更广泛范围的问题,从高阶主题性查询到细节导向问题。

B 在RAPTOR中聚类机制的消融研究

在QuALITY数据集上进行了一项消融研究。该研究将RAPTOR的表现与一种平衡的树状编码和摘要相邻块进行了对比。

B.1 方法论

对于RAPTOR,采用了典型的聚类和摘要过程。相比之下,另一种设置涉及通过递归编码和总结相邻文本块来创建平衡树。选择了7个节点的窗口大小,折叠树方法应用于两种模型的检索。

image-20240710135342327

B.2 结果与讨论

消融研究的结果见表9。该消融研究的结果明确显示在利用RAPTOR的聚类机制时,准确性有所提高。

5. 结论

介绍了RAPTOR,一种新颖的基于树结构的检索系统,它通过在各种抽象级别上的上下文信息增强了大型语言模型的参数化知识。通过采用递归聚类和总结技术,RAPTOR创建了一个能够在检索语料库的各个部分之间综合信息的分层树结构。在查询阶段,RAPTOR利用这个树结构进行更有效的检索。

F 检索方法伪代码

遍历方法:

image-20240710135611812

折叠方法:

image-20240710135659585

总结

⭐ 作者引入了一种新颖的方法,递归嵌入、聚类和总结文本片段,从底部开始构建具有不同摘要级别的树。在推理期间,首先将这棵树拉平,然后从拉平的树节点中检索,将跨不同抽象级别的庞大文档中的信息整合起来。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shark云原生-日志体系-filebeat高级配置(适用于生产)-更新中

文章目录 1. filebeat.inputs 静态日志收集器2. filebeat.autodiscover 自动发现2.1. autodiscover 和 inputs2.2. 如何配置生效2.3. Providers 提供者2.4. Providers kubernetes2.5. 配置 templates2.5.1. kubernetes 自动发现事件中的变量字段2.5.2 配置 templates 2.6. 基于…

无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。【解决办法】

问题描述 新建好一台windows虚拟机,两台设备网络是互通的,但是物理机在访问虚拟机的网络共享文件资源时,出现图下所示的报错:XXX无法访问。你可能没有权限使用网络资源。请与这台服务器的管理员联系以查明你是否有访问权限。用户…

LoRaWAN网络协议Class A/Class B/Class C三种工作模式说明

LoRaWAN是一种专为广域物联网设计的低功耗广域网络协议。它特别适用于物联网(IoT)设备,可以在低数据速率下进行长距离通信。LoRaWAN 网络由多个组成部分构成,其中包括节点(终端设备)、网关和网络服务器。Lo…

MATLAB engine for python调用m文件函数输出变量值python调用MATLAB函数混合编程

MATLAB engine for python调用m文件函数输出变量值python调用MATLAB函数混合编程 说明(废话)解决方案总结 说明(废话) python调用MATLAB函数,MATLAB函数实现在m文件,python直接调用MATLAB中的函数。 首先还是要安装好MATLAB engine python setup.py ins…

技术文件国产化准备

技术文档的本地化涉及调整内容以满足特定目标市场的文化、语言和技术要求。这一过程超越了简单的翻译,确保文件在文化上适合预期受众,在技术上准确无误。适当的准备对于成功的本地化至关重要,以下步骤概述了一种全面的方法。 分析目标受众 …

勇攀新高峰|暴雨信息召开2024年中述职工作会议

7月8日至9日,暴雨信息召开2024年中述职工作会议,总结回顾了上半年的成绩和不足,本次会议采用线上线下的方式举行,公司各部门管理人员、前台市场营销人员参加述职,公司领导班子出席会议。 本次述职采取了现场汇报点评的…

关于数组的常见算法

一、案例一 案例说明 案例:定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,总和,平均值,并输出出来 要求:所有随机数都是两…

51单片机:电脑通过串口控制LED亮灭(附溢出率和波特率详解)

一、功能实现 1.电脑通过串口发送数据:0F 2.点亮4个LED 二、注意事项 1.发送和接受数据的文本模式 2.串口要对应 3.注意串口的波特率要和程序中的波特率保持一致 4.有无校验位和停止位 三、如何使用串口波特率计算器 1.以本程序为例 2.生成代码如下 void Uar…

学圣学最终的目的是:达到思无邪的状态( 纯粹、思想纯正、积极向上 )

学圣学最终的目的是:达到思无邪的状态( 纯粹、思想纯正、积极向上 ) 中华民族,一直以来,教学都是以追随圣学为目标,所以中华文化也叫圣学文化,是最高深的上等学问; 圣人那颗心根本…

数据存储方案选择:ES、HBase、Redis、MySQL与MongoDB的应用场景分析

一、概述 1.1 背景 在当今数据驱动的时代,选择合适的数据存储技术对于构建高效、可靠的信息系统至关重要。随着数据量的爆炸式增长和处理需求的多样化,市场上涌现出了各种数据存储解决方案,每种技术都有其独特的优势和适用场景。Elasticsear…

大模型/NLP/算法面试题总结2——transformer流程//多头//clip//对比学习//对比学习损失函数

用语言介绍一下Transformer的整体流程 1. 输入嵌入(Input Embedding) 输入序列(如句子中的单词)首先通过嵌入层转化为高维度的向量表示。嵌入层的输出是一个矩阵,每一行对应一个输入单词的嵌入向量。 2. 位置编码&…

你知道滚筒式高速视觉检测机外观怎么“看”出产品质量吗?

点火线圈胶套是一种用于保护点火线圈绝缘部分的胶质套管。这种胶套通常由高温耐磨的橡胶或硅胶材料制成,具有良好的绝缘性能和耐高温性能。点火线圈胶套的作用是防止点火线圈与外部环境接触,防止受潮、灰尘或化学物质的侵蚀,同时起到绝缘和保…

准大一新生开学千万要带证件照用途大揭秘

1、提前关注好都有哪些考场,以及这些考场大致在网页的哪个位置。比如我选对外经贸大学,我就直接找到第二个点进去。 2、电脑上同时开了谷歌浏览器和IE浏览器,以及手机也登陆了。亲测下来,同一时间刷新,谷歌浏览器能显示…

【架构】分布式与微服务架构解析

分布式与微服务架构解析 一、分布式1、什么是分布式架构2、为什么需要分布式架构3、分布式架构有哪些优势?4、分布式架构有什么劣势?5、分布式架构有哪些关键技术?6、基于分布式架构如何提高其高性能?7、如何基于架构提高系统的稳…

开源无人机从入门到炸机,共需要几步?

阿木实验室2024年的重磅新品 Prometheus 仿真笔记本已经上架有一段时间了,近日,该产品的研发负责人廖工受邀到直播间与开发者们深度解读了Prometheus仿真笔记本的设计理念。直播过程中,廖工不仅展示了该产品的功能demo,解答技术开…

昇思大模型——MindFormers的使用----从零开始安装配置环境

MindSpore Transformers套件的目标是构建一个大模型训练、微调、评估、推理、部署的全流程开发套件,提供业内主流的Transformer类预训练模型和SOTA下游任务应用,涵盖丰富的并行特性。期望帮助用户轻松的实现大模型训练和创新研发。 MindSpore Transform…

【Spring成神之路】老兄,来一杯Spring AOP源码吗?

文章目录 一、引言二、Spring AOP的使用三、Spring AOP的组件3.1 Pointcut源码3.2 Advice源码3.3 Advisor源码3.4 Aspect源码 四、Spring AOP源码刨析4.1 configureAutoProxyCreator源码解析4.2 parsePointcut源码解析4.3 parseAdvisor源码解析4.4 parseAspect源码解析4.5 小总…

亚马逊erp跟卖采集之关键词采集

大家好,今天讲这款erp的跟卖采集关键词采集。 打开erp跟卖功能采集任务,点新增任务站点美国,有5种采集方式:关键词、店铺链接、类目ASIN。 选择关键词采集,这里我选择女童装,选择女童板鞋复制粘贴。页数我…

电子电气架构 --- 关于DoIP的一些闲思 下

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

scipy库中,不同应用滤波函数的区别,以及FIR滤波器和IIR滤波器的区别

一、在 Python 中,有多种函数可以用于应用 FIR/IIR 滤波器,每个函数的使用场景和特点各不相同。以下是一些常用的 FIR /IIR滤波器应用函数及其区别: from scipy.signal import lfiltery lfilter(fir_coeff, 1.0, x)from scipy.signal impo…