【论文阅读】FUNNELRAG:一个从粗到精的逐级检索范式

news2024/10/29 0:51:36

论文地址:https://arxiv.org/abs/2410.10293

github:

研究背景

现有的检索范式存在两个主要问题:一是平铺检索(flat retrieval)对单个检索器造成巨大负担;二是恒定粒度(constant granularity)限制了检索性能的上限。研究难点在于如何平衡检索的有效性和效f率。

Flat Retrieval: corpus文档切片后大海捞针式检索。

Constant Granularity: 切片粒度一致,比如都按照512token切片

贡献点

  1. 强调了现有研究中忽略的现实世界RAG系统中的问题,即flat retrieval和constant granularity。
  2. 提出了一个粗细粒度渐进检索范式FUNNELRAG,用于RAG,满足了节省时间、细粒度、上下文完整性这三个特性。
  3. 广泛的实验证明了FUNNELRAG可以在减少时间开销的同时,保持或甚至提高现有检索范式的检索性能。

方法

1、渐进式检索(Coarse-to-Fine Progressive Retrieval)

与传统的平面检索不同,渐进式检索通过逐步减少候选规模、细化检索单位粒度和提高检索器能力来平衡有效性和效率。

Progressive Retrieval: 从文档cluster集合->文档->段落,later chunking

Progressive Retrieval具体步骤包括:

  • 检索阶段(Retrieval):将文档集D聚类成粗粒度单元(clusters),使用稀疏检索器(如BM25)在这些粗粒度单元上进行检索,找到前K个最相关的粗粒度单元

聚类方法:

1、排序:对文档集D中的文档按照它们的局部聚类系数进行排序。局部聚类系数是一个衡量文档在其邻居中形成紧密连接程度的指标。这意味着,如果一个文档与很多其他文档都有链接,那么它的局部聚类系数就会很高

2、查找相关聚类:调用一个名为FIND_RELATED_CLUSTER的函数,输入参数为当前文档d和当前的聚类集合C。这个函数的目的是找到与文档d相关的所有聚类,并将它们作为一个集合R返回。

3、合并聚类:我们遍历集合R中的每个相关聚类c,并检查是否可以将它们合并到新聚类c_new中。合并的条件是新聚类c_new的大小(即包含的文档数量)加上要合并的聚类c的大小不超过最大聚类大小S。如果满足条件,我们就将聚类c合并到c_new中,将新聚类c_new添加到聚类集合C中,并从聚类集合C中移除聚类c,

  • 预排序阶段(Pre-ranking):使用cross encoder models对检索到的单元(cluster细分到document粒度)进行预排序,缩小候选范围。
  • 后排序阶段(Post-ranking):使用list-wise models对细粒度单元(paragraph粒度)进行后排序,进一步提高检索精度。

Later Chunking:早期阶段检索长单元以保留上下文语义,然后在后期阶段将这些长单元分割成细粒度单元以进行更好的检索应用

基于FiD的解码器:后排名器基于FiD(Fusion-in-Decoder)架构,它是一个检索增强的编码器-解码器语言模型。系统使用检索增强的段落来训练FiD,以便学习寻找线索。然后,它获得后排名分数,并将这些段落中得分最高的作为“oracle”段落。

2、蒸馏对齐

对齐Post-ranking和Pre-ranking阶段的模型能力,使用局部到全局(L2G)的蒸馏方式。

(注意Pre-ranking阶段是文档粒度,Post-ranking阶段是paragraph粒度,需要归一化粒度)

STEP1: 找到post-reranking阶段的positive Document

Post-ranking阶段文档粒度score计算如下, 当α = 1时,分数集中在文件中最重要的段落;当α = 0时,分数集中于文档中所有段落的平均重要程度: 

STEP 2:确定pre-ranking阶段的postive Document D+和negative Document D-集合

根据这个分数排序找到TOP-K个文档,和命中ground truth的文档取并集为D+集合,D-为之外的集合:

STEP3: preranking模型训练,数据:D+和D-,loss function: pairwise Bayesian Personalized Ranking (BPR) 

实验结果

研究问题:

RQ1:渐进式检索与普通检索相比,提升了Answer Recall?

RQ2:QA场景下使用funnelRAG收益?

RQ3:不同的设置如何影响渐进式检索的有效性?

实验配置:

  • Datasets:Natural Question (NQ)、Trivia QA (TQA)

  • Metrics: Answer Recall (Retrieval)、Exact Match (Generation)

  • Retrievers: BM25(retrieval) + bge-reranker-v2-m3(pre-ranker) + FiD(post-ranking) vs bge-large-en-v1.5 (flat retrieval) + bge-reranker-v2-m3(rerank)

  • Generators: Llama3-8B-Instruct、Qwen2-7B-Instruct

实验结果:

RQ1: AR略微提升的情况下,TC降低约40%

RQ2: TOP-K较小的情况,funnelRAG效果较好

RQ3: 

a. 不同的cluster大小带来的影响(1K, 2K, 4K, 8K) , 设置最大聚类大小(S)为4K时,FUNNELRAG的性能最佳。设置得太小(如1K)会显著降低性能,而设置为更大的值(如8K)则没有明显增益。

b. 用少量(如4个)representation token进行聚合交叉注意力分数 (FiD) 显著优于不使用rep token的情况;设置少量的rep token(如4个)效果最好,设置过多(如1个)会损害检索性能。

 c. L2G的影响,使用更高值(如0.75)的α进行局部到全局蒸馏通常会带来更好的性能,特别是在排名靠前的位置上有显著改进。即使在排名靠后的位置上,不同α值的改进相对较小,但总体而言,建议在0.5到1.0之间调整α以获得最佳效果。

局限性

●指标,AR主要是检索指标,可能会高估检索信息的有用性,因为它机械地衡量检索信息是否包含答案字符串,即使检索信息没有传达准确的含义。评估RAG的指标仍然是一个开放的研究领域,仍需进一步研究。

● 调参,为了实现负载均衡和提高检索准确性,需要调整一些超参数,例如最大集群大小S,以及每个阶段之间需要仔细协作的数据流量,例如每个阶段检索到的单元数量。

● 兼容性问题,更换检索or生成模型,效果会有影响

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

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

相关文章

map 和 set 的使用

文章目录 一.序列式容器和关联式容器二. set 系列的使用1. set 和 multiset 参考文档2. set 类介绍3. set 的构造和迭代器4. set 的增删查5. insert 和迭代器遍历使用样例6. find 和 erase 使用样例7. multiset 和 set 的差异 三. map 系列的使用1. map 和 multimap参考文档2. …

11张思维导图带你快速学习java

简介 Java是一种跨平台的编程语言,广泛应用于开发各种类型的应用程序。从零开始学习Java可能会感到困惑,因为Java拥有广泛的功能和概念。为了更好地学习和理解Java,可以使用思维导图来整理和归纳Java的主要概念和特点。思维导图可以帮助学习…

iOS 18.2开发者预览版 Beta 1版本发布,欧盟允许卸载应用商店

苹果今天为开发人员推送了iOS 18.2开发者预览版 Beta 1版本 更新(内部版本号:22C5109p),本次更新距离上次发布 Beta / RC 间隔 2 天。该版本仅适用于支持Apple Intelligence的设备,包括iPhone 15 Pro系列和iPhone 16系…

算法通关--单调栈

单调栈 单调栈是在栈的先进后出的规则基础上,要求从栈底到栈顶的元素满足单调的关系。如果是大压小,那么从栈顶观察是递减栈,如果是小压大,那么从栈顶观察使递减栈 经典用法: 判断一个数组每个位置都求:…

性价比高的宠物空气净化器选购指南,双十一有哪几款值得购买?

养猫家庭注意养猫家庭注意,换毛季它又来啦!不管你家猫是多么瘦小,这个时候都会变成一年两次限定的蒲公英小猫。这都是因为它在疯狂的掉毛,没来得及清理的毛发就留在身上,不断堆积,家里也到处都是它掉落的猫…

医学影像学基础:理解CT、MRI、X射线和超声等医学影像设备的基本工作原理和成像技术

目录 医学影像学基础 1. X射线成像 2. 计算机断层扫描(CT) 3. 磁共振成像(MRI) 4. 超声成像 综合对比 1、成像原理对比 2、安全性对比 3、应用领域对比 4、设备特点对比 总结 医学影像学基础 在医学影像学中&#xff0…

TCP simultaneous open测试

源代码 /*************************************************************************> File Name: common.h> Author: hsz> Brief:> Created Time: 2024年10月23日 星期三 09时47分51秒**********************************************************************…

windows录屏软件工具推荐!!

如今,科技的进步,互联网的普及,使我们的生活越来越便利,录屏工具的出现,大大提高我们的工作效率。如果你经常需要录制屏幕上的内容,比如制作教学视频、游戏实况记录、演示文稿等等,那这几款软件…

“令牌化”革命:数据货币化如何重塑企业竞争格局

在科技日新月异的今天,英伟达CEO黄仁勋在Gartner IT研讨会/XPO大会上的主题演讲无疑为企业创业者们提供了一场思想的盛宴。作为科技行业的领军企业,英伟达不仅在图形处理器(GPU)领域取得了巨大成功,更在人工智能&#…

前端新人手册:入职第一天的环境配置秘籍

在前端开发的世界里,一个高效、稳定的开发环境是高效工作的基石。它不仅能够提升你的工作效率,还能帮助你更快地适应团队的工作节奏。本文将详细介绍前端开发需要具备的环境及工具。 开发环境 Node.js 通常我们的前端项目都是依赖Node.js环境的&#…

JavaScript入门中-流程控制语句

本文转载自:https://fangcaicoding.cn/article/52 大家好!我是方才,目前是8人后端研发团队的负责人,拥有6年后端经验&3年团队管理经验,截止目前面试过近200位候选人,主导过单表上10亿、累计上100亿数据…

C++ 日志管理 spdlog 使用笔记

文章目录 Part.I IntroductionChap.I 预备知识Chap.II 常用语句 Part.II 使用Chap.I 简单使用Chap.II 自定义日志格式 Part.III 问题&解决方案Chap.I 如果文件存在则删除 Reference Part.I Introduction spdlog 是一个开源的 C 日志管理工具,Git 上面的地址为 …

Ovis原理解读: 多模态大语言模型的结构嵌入对齐

论文:https://arxiv.org/pdf/2405.20797 github:https://github.com/AIDC-AI/Ovis 在多模态大语言模型 (MLLM) 中,不同的嵌入策略有显著的区别。以下是使用基于连接器的方法与 Ovis 方法的比较: 基于连接器的方法-优缺点(connector-based …

WPF+MVVM案例实战(十)- 水波纹按钮实现与控件封装

文章目录 1、运行效果1、封装用户控件1、创建文件2、依赖属性实现 2、使用封装的按钮控件1.主界面引用2.按钮属性设置 3 总结 1、运行效果 1、封装用户控件 1、创建文件 打开 Wpf_Examples 项目,在 UserControlLib 用户控件库中创建按钮文件 WaterRipplesButton.x…

产品结构设计(五):结构设计原则

1. 产品结构设计总原则 1.1 合理选用材料 1、根据产品应用场所来选择 如果为日常消费类电子产品,产品材料就应选用强度好、表面容易处理、不容易氧化生锈、不容易磨伤、易成型的材料,如塑胶材料选用 PC、ABS、PCABS 等,金属材料选用不锈钢、…

一些待机电流波形特征

一、待机电流波形 最干净的待机电流波形应该只有paging,不过需要注意2点: 每个paging的间隔,不同网络可能不一样,有可能是320ms, 640ms 待机网络 paging 间隔 1分钟的耗电量 单个耗电量 单个待机电流 单个波形时长 4G 64…

你了解kafka消息队列么?

消息队列概述 一. 消息队列组件二. 消息队列通信模式2.1 点对点模式2.2 发布/订阅模式 三. 消息队列的优缺点3.1 消息队列的优点3.2 消息队列的缺点 四. 总结 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者&…

uniapp使用easyinput文本框显示输入的字数和限制的字数

uniapp使用easyinput文本框显示输入的字数和限制的字数 先上效果图&#xff1a; 整体代码如下&#xff1a; <template><view class"nameInfoContent"><uni-easyinput class"uni-mt-5" suffixIcon"checkmarkempty" v-model&quo…

Linux云计算 |【第五阶段】CLOUD-DAY4

主要内容&#xff1a; Linux容器基础、安装Docker、镜像管理、容器管理、容器部署应用 一、容器介绍 容器&#xff08;Container&#xff09; 是一种轻量级的虚拟化技术&#xff0c;用于在操作系统级别隔离应用程序及其依赖项。容器允许开发者在同一台主机上运行多个独立的应…

MaskGCT,AI语音克隆大模型本地部署(Windows11),基于Python3.11,TTS,文字转语音

前几天&#xff0c;又一款非自回归的文字转语音的AI模型&#xff1a;MaskGCT&#xff0c;开放了源码&#xff0c;和同样非自回归的F5-TTS模型一样&#xff0c;MaskGCT模型也是基于10万小时数据集Emilia训练而来的&#xff0c;精通中英日韩法德6种语言的跨语种合成。数据集Emili…