ELITE: 无嵌入模型的迭代文本探索检索框架

ELITE: 无嵌入模型的迭代文本探索检索框架

ELITE: 无嵌入模型的迭代文本探索检索框架

本文详细介绍了一种创新的检索增强生成(RAG)框架——ELITE(Embedding-Less retrieval with Iterative Text Exploration)。该框架摒弃了传统RAG系统中依赖嵌入模型进行检索的方法,转而利用大型语言模型(LLM)的推理能力,通过迭代文本探索实现高效、准确的信息检索,同时显著降低计算和存储开销。

研究背景与问题

大型语言模型(LLMs)在自然语言处理领域取得了显著进展,但其在保留长期上下文方面的能力有限,这限制了它们在文档级或多轮任务中的性能。检索增强生成(RAG)通过从外部语料库检索相关信息来缓解这一问题。然而,现有的RAG系统通常依赖于基于嵌入的检索方法,这些方法在语料库级别的语义相似性上进行训练,可能导致检索到在形式上语义相似但与问题真实意图不匹配的内容。

此外,最近的RAG变体通过构建基于图或层次结构的结构来提高检索准确性,但这导致了显著的计算和存储开销。具体而言,现有嵌入式RAG方法面临三大挑战:

  1. 黑盒模型依赖:依赖黑盒嵌入模型进行索引和检索,可能导致不理想且不灵活的性能表现。
  2. 计算开销:在离线阶段使用复杂数据结构增强性能,引入了额外的计算时间和存储开销。
  3. 存储膨胀:复杂方法导致存储需求大幅增加,通常超过原始文本大小的10倍以上。

为解决这些问题,ELITE框架提出了一种无需嵌入的检索方法,利用LLM的逻辑推理能力进行检索,通过新颖的重要性度量指导迭代搜索空间细化,并扩展检索结果以包含逻辑相关信息,而无需显式构建图结构。

ELITE方法详解

整体架构

ELITE框架的设计灵感来源于人类在长文本问答任务中的认知过程。当面对大量文本材料和特定问题时,人们通常会进行一系列结构化的认知操作:首先基于问题识别和生成感兴趣的短语和单词(生成);然后通过检索包含这些单词或短语的源材料部分来收集数据(收集);随后评估检索到的源数据是否充分(评估);当检索到的信息不足时,迭代扩展搜索范围(探索);最后修剪不相关信息并重新组织证据以产生连贯的响应(组织)。

生成阶段:代理引导生成感兴趣的文本
收集阶段:数据比较和检索
评估阶段:基于客观”重要性”度量的主观信息充分性判断
探索阶段:代理驱动的广度和深度扩展以修改检索策略
组织阶段:基于代理的证据修剪和响应生成

ELITE框架通过四个主要阶段实现这一认知范式:代理引导的感兴趣文本生成、数据比较和检索、基于重要性度量的充分性判断、迭代文本探索与组织。这些阶段共同构成了一个高效、灵活且轻量级的检索增强生成系统。

生成与收集阶段

在实验分析NovelQA数据集时,研究者发现”次数”类别的问题(需要枚举特定事件、单词或短语的出现次数)对模型的计数能力构成了显著挑战。由于基础模型缺乏准确的计数能力,ELITE框架在生成阶段首先提示模型识别问题是否涉及准确计数。一旦问题被识别为”计数”类型,它将与其他问题分开解决:模型仅生成一个感兴趣的短语或单词,然后生成其所有时态(过去、现在进行)或形式(复数等)。随后,系统将计算这些单词/短语列表在文本中的总出现次数,跳过后续阶段并直接报告结果。

对于非计数问题,ELITE在生成和收集步骤中实现了基于相关性的词汇检索方法。代理首先从查询本身或对解决问题至关重要的概念中生成一组上下文相关的短语或词汇单元。然后,系统采用简单但高效的单词重叠算法来识别和提取包含这些目标术语的句子。检索到的片段根据总词汇重叠量按降序排列,前K个句子传递到下一步骤。

收集阶段算法 Python
# 计算句子与目标术语的重叠度
def overlap(sentence, target_terms):
    return len(set(sentence.split()) & set(target_terms))

# 检索前K个最相关的句子
def retrieve_top_k(sentences, target_terms, k=25):
    scored_sentences = [(s, overlap(s, target_terms)) for s in sentences]
    scored_sentences.sort(key=lambda x: x[1], reverse=True)
    return [s[0] for s in scored_sentences[:k]]
            

为了保持上下文完整性,ELITE对每个识别出的句子实现了一个朴素的对称上下文扩展过程,为每个句子包含前后文本区域的五个句子。这些扩展的句子(块)将传递到评估阶段。

评估与重要性判断

检索到相关文本块后,ELITE框架任务基础模型评估检索到的信息是否足以回答给定查询。然而,这种评估面临两个重大挑战:(1) 模型缺乏关于特定块在其推理过程中有多具影响力的内在知识;(2) 评估任务本身在没有明确客观标准指导的情况下本质上是主观的。为了解决这些限制,ELITE提出了一种新颖的客观度量——”重要性”分数,用于量化检索到的文本片段对模型决策过程的贡献。

形式上,块c对查询q的”重要性”定义为模型输出的后验概率分布之间的期望KL散度,比较使用原始文本生成的响应与使用块被不同级别噪声扰动后生成的响应:

重要性分数计算 数学公式
Imp(c, q; θ) = -E_λ~Uniform(0,1][D_KL(P(y|(c ⊕ q); θ) || P(y|(ε_λ(c) ⊕ q); θ))]
            

其中,c是收集的块,q是查询文本,λ表示噪声水平(每个字符添加噪声的概率),⊕表示连接操作,θ是语言模型。考虑到直接计算模型文本输出空间上的概率分布的计算挑战,ELITE通过以下方式近似这一期望:

重要性分数近似计算 数学公式
Imp(c, q; θ) = 1 - AvgSim(θ(c ⊕ q), θ(ε_λ(c) ⊕ q))
            

这种近似在模型配置中固定温度参数的假设下是合理的,因为输出分布保持相同的功能形式,方差由温度参数决定。因此,均值成为KL散度计算的主要决定因素,原始期望与均值之间的相似性单调相关。ELITE通过随机采样多个噪声水平并计算原始输入和噪声扰动输入输出之间的平均相似性来实现蒙特卡洛方法估计这种关系。在实际实现中,使用嵌入结果文本之间的余弦相似度来计算相似度,这是因为除非问题的答案已更改或由于添加到块的噪声导致推理逻辑发生变化,否则生成的答案预期具有高度相似的格式和语义信息,这表明该块对模型的答案具有高度影响力。

在计算这些客观的”重要性”分数后,ELITE将它们作为补充信息与任务提示和检索到的块一起纳入,以指导模型的评估。重要的是,ELITE不单独依赖重要性分数来确定信息充分性,而是利用它作为支持模型推理的额外证据。这种方法承认虽然重要性分数量化了块对模型输出的影响,但它并不一定表明信息是否足以全面回答查询。

迭代文本探索与组织

一旦模型识别出收集的块不足以回答查询,ELITE将迭代执行探索和评估步骤以检查充分性并扩展,直到模型认为收集的块足够或达到上限阈值。通过这两个步骤,ELITE能够基于先前的检索结果和策略动态修改其检索策略/搜索范围。

最近应用基于图的方法的成功显示了图在增强检索准确性和提供背景上下文方面的能力,但显式构建关系图可能计算成本极高。为了包含相关的背景信息并以最小的计算成本有效扩展搜索空间,ELITE设计了广度和深度隐式图扩展。在扩展步骤中,ELITE采用两阶段方法,模拟基于图的信息传播,而无需构建计算成本高昂的图结构。

首先,ELITE基于先前的检索结果重新生成扩展的搜索词/短语列表,以动态扩展搜索空间,有效地以广度优先方式遍历隐式知识图。这个过程捕获了可能未包含在初始检索中的语义相邻概念。随后,ELITE从最初检索到的块中生成辅助搜索词/短语列表,通过识别检索到的信息的逻辑或语义相关上下文,实现隐式知识图的深度优先探索。

这种方法可以形式化为遍历隐式知识图G = (V, E. ,其中顶点V表示概念,边E表示语义或逻辑关系。ELITE的广度扩展对应于扩展和识别新的离散基础顶点vi ∈ Vi ∪ Nd(vp),其中Nd(vp)表示先前列表vp中顶点的逻辑或语义邻居,Vi表示模型基于先前列表、查询文本和检索结果推断所需信息生成的新识别节点。同时,ELITE的深度扩展识别顶点vj ∈ Nd(vr),其中Nd(vr)表示检索到的节点vr的深度邻居。

ELITE方法的隐式性质消除了显式图构建和遍历算法的需要,这些算法通常具有O(|V| + |E|)的计算复杂度,并涉及频繁推断所有边与语言模型的关系。相反,通过利用大型语言模型的生成能力来识别语义相关术语,ELITE以显著降低的计算开销实现了可比的信息传播,近似了基于图方法的好处,同时保持了与传统检索方法相当的效率。

最后,当达到上限阈值或模型决定收集的块足够时,ELITE将提示模型过滤掉收集的块中与回答问题无关的信息,以最小化干扰并组织信息。

实验结果分析

准确率对比

ELITE在两个长上下文多选问答基准测试——NovelQA和Marathon上进行了评估。实验结果表明,ELITE在所有LLaMA规模上始终优于基线方法。在70b规模上,ELITE在NovelQA上达到71.27%,超过MiniRAG(50.34%)和Raptor(58.96%)。即使只有8b参数,它也超过了GPT-3.5+RAG(56.94%)并接近Claude-v2(66.84%)。这些结果展示了在有限容量下的强大泛化能力,并与专有系统接近。

方法 LLaMA 3.2 1b LLaMA 3.2 3b LLaMA 3.1 8b LLaMA 3.1 70b
NovelQA准确率(%) 29.57 55.54 65.18 71.27
MiniRAG 15.94 41.79 45.34 50.34
Raptor 14.81 50.37 52.56 58.96
Marathon准确率(%) 25.21 55.67 61.45 68.46
MiniRAG 21.32 37.30 43.56 46.88
Raptor 25.44 49.50 56.46 65.17

在Marathon基准测试上,ELITE在所有规模上表现出稳定的增益,从3b开始超过Raptor。在70b规模上,它达到68.46%,优于Raptor(65.17%)和MiniRAG(46.88%)。这一趋势表明了强大的可扩展性和长上下文推理能力,以显著更少的资源接近GPT-4(78.59%)。

响应时间分析

ELITE在响应时间方面表现出显著优势。使用LLaMA-3.1:8b评估响应时间,将QA过程分为离线和在线阶段。离线阶段包括准备时间,涵盖图构建、分块和基于嵌入的索引。在线阶段包括检索时间(获取相关内容的延迟)和生成时间(从接收上下文到产生最终答案的持续时间)。

在所有上下文长度区间,ELITE始终表现出最低的总延迟,总处理时间仅为3.5到18.7秒,而MiniRAG和Raptor则显著增加,分别高达19,349.0和6,429.7秒——这主要是由于准备阶段的开销。准备时间占据了MiniRAG和Raptor总成本的大部分,特别是随着上下文长度的增加,在>2e6区间达到19,337.6秒和6,423.2秒。相比之下,ELITE实现了接近零的准备开销(例如0.085秒),因为它不需要图构建或基于嵌入的索引。检索时间在所有方法中保持较低且稳定,而生成时间随着上下文大小适度增加但仍可管理。

上下文长度区间 平均上下文长度 方法 准备时间(秒) 检索时间(秒) 生成时间(秒) 总时间(秒)
<1e5 79,028 MiniRAG 348.630 6.564 1.511 356.705
Raptor 108.741 0.031 4.600 113.372
ELITE 0.004 0.774 2.725 3.503
>2e6 4,103,032 MiniRAG 19,337.624 6.849 4.518 19,348.990
Raptor 6,423.175 0.181 6.344 6,429.700
ELITE 0.085 6.047 12.546 18.678

为了更好地捕获每次查询的效率,ELITE定义了平均查询时间(AvgQueryTime):

平均查询时间计算 数学公式
AvgQueryTime = (T_prepare + N × (T_retrieve + T_gen)) / N
            

其中T_prepare是一次性预处理成本,T_retrieve和T_gen是每次查询的检索和生成时间,N是查询次数。该指标反映了每次查询的摊销延迟。

存储开销分析

在存储开销方面,ELITE表现出显著优势。MiniRAG导致数据大小增加10.6倍和16.7倍,而Raptor在两个数据集上导致一致的19.6倍扩展。相比之下,ELITE保持固定的1.0倍比率,不引入额外数据。MiniRAG和Raptor中的大量开销源于存储密集的相似性矩阵和基于图的索引结构。ELITE完全避免了这些组件,实现了零存储开销。

数据集 原始大小 方法 额外数据(MB) 扩展比率
NovelQA 72.4 MB MiniRAG 768.1 10.6x
Raptor 1421.2 19.6x
ELITE 0.0 1.0x
Marathon 146.1 MB MiniRAG 2437.4 16.7x
Raptor 2862.6 19.6x
ELITE 0.0 1.0x

技术创新点

ELITE框架的主要技术创新点可总结为以下三个方面:

  1. 快速轻量级:ELITE通过直接使用LLM推理消除了对嵌入模型和密集索引的依赖。与MiniRAG和Raptor分别产生高达10.6倍–19.6倍的开销不同,ELITE不需要额外的存储,并能提供快速响应。在长文档(>2M令牌)上,它将准备时间从19,337.6秒和6,423.2秒减少到仅0.085秒,总运行时间缩短到18.7秒。
  2. 高检索准确率:在不依赖嵌入或知识图的情况下,ELITE使用LLaMA3.1:70b在NovelQA上达到71.27%,在Marathon上达到68.46%,在两个基准测试中均排名第二。表现最好的模型是NovelQA的GPT-4-0125-preview(71.80%)和Marathon的GPT-4(78.59%)。
  3. 稳健泛化能力:ELITE在NovelQA和Marathon上都随着模型规模的扩大而持续改进。从1b到70b,它表现出稳定的增益,在每个规模上都优于所有基线方法。这突显了强大的可扩展性、架构独立性以及对多样化长上下文问答任务的稳健性。

局限性与未来工作

尽管ELITE框架表现出色,但仍存在一些局限性。由于计算限制,实验仅使用最多70b参数的LLaMA模型进行。虽然这在能力和效率之间提供了实用的权衡,但可能低估了ELITE检索框架的全部潜力。未来的工作可以探索与更大骨干模型(如GPT-4、Gemini 1.5、Claude Opus)的集成,以进一步评估可扩展性和泛化能力。

此外,ELITE框架在处理某些特定类型的问题时可能仍有改进空间。例如,对于需要复杂多步推理或跨多个文档综合信息的问题,当前的方法可能需要进一步优化。未来的研究可以探索更复杂的探索策略或结合其他技术来增强这些方面的性能。

结论

ELITE框架引入了一种无嵌入的检索方法,从根本上重新思考了检索增强生成系统的架构。通过摒弃向量嵌入和显式图构建,ELITE利用LLM的推理和词汇能力,通过迭代、受认知启发的过程进行搜索、评估和细化。这种设计实现了实时适应性、透明的检索逻辑,以及在效率和效果方面的显著提升。

在两个具有挑战性的长上下文问答基准测试NovelQA和Marathon上的实证评估表明,ELITE不仅在答案准确性上优于最先进的基于嵌入的系统,而且在计算时间和存储开销方面实现了一个数量级的减少。这些改进证明了高质量的检索不需要依赖不透明的密集向量或昂贵的预处理管道。

ELITE框架的成功为未来的RAG系统设计提供了新的方向,展示了如何利用LLM的固有能力而非外部索引结构来实现高效、准确的信息检索。随着LLM能力的不断增强,这种无嵌入的方法有望在更广泛的应用场景中发挥重要作用。

发表评论

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 知差(chai)网 🐾 DeepracticeX 社区 🐾 老薛主机 🐾