强强联合!当RAG遇到长上下文,滑铁卢大学发布LongRAG,效果领先GPT-4 Turbo 50%

news2024/10/6 20:41:25

过犹不及——《论语·先进》

大学考试时,有些老师允许带备cheet sheet(忘纸条),上面记着关键公式和定义,帮助我们快速作答提高分数。传统的检索增强生成(RAG)方法也类似,试图找出精准的知识片段来辅助大语言模型(LLM)。

但这种方法其实有问题。因为:

  • LLM没有"老师划重点",需要自己在海量信息中寻找答案。

  • RAG是两步走:先检索,再生成。如果第一步检索就出错,再好的生成也难以弥补。

  • 过分追求精准的知识片段,反而可能限制了模型的发挥空间。

所以,与其苛求检索结果的精准性,不如给模型提供更丰富的上下文信息,让它自己去理解和提炼关键知识。这样可能效果会更好。

那有没有可能让LLM不要cheet sheet,直接参加“开卷考”呢?随着现在长上下文技术(LongContext)日渐成熟,让LLM干脆带着“书”来回答问题开始成为可能。

滑铁卢大学的研究者们就做了这么一个尝试,抛开当前“长上下文党”和“RAG党”之间的争论,把“长上下文”和“RAG”整个地结合了起来,反正就是“我全都要”。至于效果嘛?据说连GPT-4也已经被“吊打”了喔

论文链接:
https://arxiv.org/pdf/2406.15319.pdf

RAG vs LongContext?

由于LLM往往受到知识时效性和训练知识边界的限制,RAG方法被提出作为大模型的补充,RAG先检索相关信息,再用LLM生成答案。这样可以让模型获取最新外部知识,提高表现。

但是,LLM和RAG都难以处理长文本。随着RoPE和AliBI等位置编码技术,以及各种长文本训练方法的提出,模型处理更长的上下文成为可能。

有趣的是,虽然RAG和长文本LLM已经同时存在一段时间,但很少有人尝试把它们结合起来。如果能用长文本LLM来理解和提炼RAG检索到的大段信息,应该会有不错的效果。这样做可以减轻检索环节的压力,提高整体性能。

LongRAG

长上下文检索器

在传统的RAG框架中,检索器通常使用较小的检索单元,如短文本段落,并侧重于检索包含答案的精确细粒度上下文。然而,LongRAG框架中的长上下文检索器(Long Retriever)更加注重召回率,目标是检索与问题相关的上下文,但不一定是精确的答案。这种设计选择将更多的负担从检索器转移到生成器,让生成器从相关上下文中提取确切的答案。

长上下文检索的构建过程分为三个步骤:

  • 首先,通过将整个维基百科文档或多个相关文档组合成一个长检索单元,形成M个检索单元。这些长检索单元通过文档内插入的超链接进行分组,确保了每个检索单元的语义完整性,并为需要多文档信息的任务提供了丰富的上下文。

  • 其次,使用编码器将输入问题映射到d维向量,并使用不同的编码器将检索单元映射到相同的d维空间。通过计算问题向量和检索单元向量之间的点积来定义它们之间的相似度,并通过在检索单元内的所有块中最大化分数来近似这个相似度,从而有效地检索与给定查询最接近的top k检索单元。

  • 最后,将这些检索单元串联成长上下文作为检索结果,为下一步的生成器处理提供输入。

长阅读器

长阅读器(Long Reader)是LongRAG框架中的另一个核心组件,它负责从长上下文检索器检索出的长上下文中提取答案。与传统RAG框架中的生成器不同,长阅读器处理的是大约30K tokens的长文本,这要求它能够理解和推理更长的上下文信息。

长阅读器的操作相对直接。它接收相关的指令、问题以及长上下文检索器检索出的长上下文结果,然后将这些信息输入到一个能够处理长上下文的LLM中。这个LLM需要具备处理长文本的能力,并且在处理位置信息时不应表现出明显的偏差。本文选择了在处理长上下文输入方面表现出色Gemini1.5-Pro和GPT-4o作为长阅读器。

对于不同的上下文长度,长阅读器采用了不同的策略。对于短上下文(通常少于1K tokens),它指导阅读器直接从检索到的文本中提取答案。而对于长上下文(通常超过4K tokens),直接提取答案的方法可能会导致性能下降。因此,最有效的方法是将LLM作为一个聊天模型来使用。首先,它输出一个较长的答案,可能包含几个词到几句话。然后,通过进一步的提示,引导它从长答案中提取出更短的答案。这个过程涉及到两阶段的提示。

实验

数据

本文提出的LongRAG框架在两个与维基百科相关的问答数据集上进行了测试:Natural Questions(NQ)和HotpotQA。Natural Questions数据集专为端到端问答任务设计,包含3610个问题,这些问题是从真实的谷歌搜索查询中挖掘出来的,答案则是由标注者在维基百科文章中确定的文本片段。HotpotQA数据集包含多跳问题,需要两个维基百科段落来回答问题。由于测试集的目标段落不可获取,研究者遵循先前的工作,在包含7405个问题的验证集上进行评估。

对于知识源,即维基百科的不同版本,被用于不同的数据集。对于NQ,使用了2018年12月20日转储的维基百科,包含大约300万篇文档和2200万个段落。对于HotpotQA,使用了2017年10月1日转储的摘要段落,包含约500万篇文档。在处理文档时,只提取纯文本,并从文档中剥离了所有结构化数据部分,如列表、表格和图表。

长上下文检索效果

在NQ数据集中,研究者采用了三种不同长度的检索单元:段落、文档和分组文档。检索单元的长度从短到长不等,其中包括整个文档或多个相关文档的组合,平均包含4K个tokens。通过使用长上下文检索,LongRAG框架显著减少了语料库的大小,从22M减少到600K文档单元,同时显著提高了检索器的答案召回率,从52.24%提高到71.69%。此外,长检索单元的使用还显著减少了为达到可比性能所需的检索单元数量。例如,在分组文档级别,仅使用8个检索单元就可以达到与100个段落级别检索单元相似的召回率。

对于HotpotQA数据集,检索单元仅限于文档级别和分组文档级别。在HotpotQA中,研究者观察到类似的结果,长上下文检索显著减轻了检索组件的负担。例如,在文档级别和分组文档级别,召回率和答案召回率都有所提高。

完整表现

在NQ数据集上,LongRAG实现了62.7%的精确匹配率(Exact Match Rate),与最强的经过微调的RAG模型之一Atlas相当。

在HotpotQA数据集上,LongRAG实现了64.3%的精确匹配率,接近于最先进的全监督RAG框架。

对比GPT-4,都实现了50%的效果提升!

在评估过程中,本文还比较了不同检索单元的选择和不同数量的检索单元对性能的影响。本文发现,无论选择哪种检索单元,当向阅读器提供过多的检索单元时,性能都会达到一个转折点,之后性能会下降。这是因为过多的信息会超出阅读器的处理能力,使其无法有效地理解和提取长上下文中的相关信息。例如,在NQ数据集中,段落级别的检索单元的转折点在100到200个单元之间,而分组文档级别的检索单元的转折点在4到8个单元之间。这表明,向阅读器提供大约30K tokens的上下文长度是最适合的。

此外,本文还比较了不同的阅读器模型。在NQ数据集上,GPT-4o在200个测试问题上实现了最高的精确匹配得分,显示出其在LongRAG框架中作为长阅读器角色时最为有效。GPT-4o之所以表现出色,归功于其处理和理解长文本的能力,确保了关键信息的准确提取。

最后,研究者还提出了对精确匹配率(Exact Match, EM)评估标准的改进,以更公平地评估LongRAG的性能。由于LongRAG的长检索上下文可能包含地面真实答案的别名或不同形式,因此研究者放宽了精确匹配的定义,将预测结果与真实答案之间的差异在五个token以内的情况也视为精确匹配。

总结

LongRAG框架的核心优势在于:

"长上下文检索器"就像带着重点笔记进考场,能快速定位相关信息,"长阅读器"则像学霸,能准确从长文本中提取关键答案。两者配合,让AI在回答复杂问题时更高效准确。

虽然LongRAG表现不错,但仍有提升空间:

  • 检索器处理超长文本的能力可以进一步增强。

  • 阅读器对长文本的理解还需优化。

总的来说,LongRAG为AI问答系统开辟了新方向。随着技术进步,它有望在处理复杂问题方面发挥更大作用。

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

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

相关文章

Oracle Database 23ai新特性:DB_DEVELOPER_ROLE角色

角色介绍 从 Oracle Database 23ai 开始,新角色“DB_DEVELOPER_ROLE”允许管理员快速分配开发人员为 Oracle 数据库设计、构建和部署应用程序所需的所有必要权限。(包括构建数据模型所需的系统权限以及监视和调试应用程序所需的对象权限)。通…

【期末复习】数据库系统概论(附带考点汇总)

第1章.绪论 目录 第1章.绪论1.1. 数据库系统概述1.1.1.基本概念1.1.2.产生和发展 1.2.概念模型1.2.1.三种模型1.2.2.概念模型1.2.3.关系模型 1.3.数据库系统结构1.3.1三级模式结构1.3.2.两级映像与数据独立性 第2章.关系型数据库2.1.关系2.2.关系操作2.2.1.基本关系操作2.2.2.关…

价格很实惠,希喂、爱立方、生生不息主食冻干抗得住实测吗?

在挑选主食冻干时,许多宠物主人都会感到头疼。尽管主食冻干相较于普通猫粮具有诸多优势,但其价格也相对高昂。这导致许多宠物主人担心高价购买的主食冻干可能营养价值并不理想。然而,在选择时,我们还需要考虑其他重要因素&#xf…

精密微型导轨加工工艺流程!

微型导轨是一种用于小型化机械设备和机床上的一种传动部件,多用于精密设备上,主要作用是支撑和导向滑块运动。想要让微型导轨长期保持高精度、高耐磨、高寿命、高效率运作,加工工艺是非常关键的步骤。 微型导轨的制造工艺主要包括机械加工、热…

三、【源码】Bean有参构造实例化

源码地址:https://github.com/spring-projects/spring-framework 仓库地址:https://gitcode.net/qq_42665745/spring/-/tree/03-parameter-constructor-instantiation Bean有参构造实例化 有参构造的实例化分两种: java自带的反射cglib代…

手把手教程教你_一键获取安居客全国小区数据

软件简介 安居客二手房小区全国实时数据,含小区名称、价格、地区、地址、商圈、标签、经纬度、物业类型、交易权属、竣工时间、产权年限、开发商、总户数、总建面积、绿化率、容积率、统一供暖 供水供电、停车位、停车费、物业费、物业公司 车位管理费、在售房源、…

应用案例 | 基于物联网工控屏的工业离心机设备监控系统

案例概况 客户:博鲁班特(BROADBENT) 应用产品:宏集物联网工控屏 应用场景:离心机设备监控系统 一、前言 在现代工业生产中,离心机作为关键的分离设备,在生产过程中扮演着至关重要的角色。随…

创新驱动,智享未来:电动车仪表盘之蓝牙芯方案

电动车行业不断发展的浪潮中,我们自豪地推出引领时代的电动车仪表盘蓝牙芯方案,为您的骑行之旅带来前所未有的智能与便捷。 精准掌控,一目了然 我们的蓝牙芯方案搭载了高性能BLE 5.0蓝牙芯片-HS6621CG-C 内核ARM Cortex-M4F, max 64MHZ,SRAM…

期权开户零门槛怎么操作?期权不满50w的开户方式

今天带你了解期权开户零门槛怎么操作?期权不满50w的开户方式。在股票期权市场上,期权交易是一种非常受欢迎的投资方式。它不仅可以增加投资组合的多样性,还可以为投资者提供一定的保护和利润机会,比如通过买入认股期权做空对冲大盘…

新建vue3项目

提示:请确定自己已将安装好环境以及一系列用到的工具包,例如node(10以上),pnpm或npm vue官网:https://cn.vuejs.org/ vue-cli官网:Vue CLI vite官网:Vite | 下一代的前端工具链 …

高薪程序员必修课-Java中 Synchronized和ReentrantLock有哪些不同?

目录 前言 1. 原理和基础 synchronized ReentrantLock 2. 功能比较 2.1 锁的可重入性 示例: 2.2 锁的公平性 示例: 2.3 锁的中断响应 示例: 2.4 尝试锁定 示例: 2.5 条件变量 示例: 3. 性能比较 4. 使…

【CT】LeetCode手撕—232. 用栈实现队列

目录 题目1- 思路2- 实现⭐232. 用栈实现队列——题解思路 3- ACM 实现 题目 原题连接:232. 用栈实现队列 1- 思路 思路 ① 用两个栈来实现队列,一个 in 入栈 和一个 out 出栈② push 入队:入栈逻辑:即将元素加入到 in 栈 里即…

基于Redisson实现分布式锁

基于redisson实现分布式锁 之前背过分布式锁几种实现方案的八股文,但是并没有真正自己实操过。现在对AOP有了更深一点的理解,就自己来实现一遍。 1、分布式锁的基础知识 分布式锁是相对于普通的锁的。普通的锁在具体的方法层面去锁,单体应…

Android-卷积神经网络(Convolutional Neural Network, CNN)

一个复杂且在Android开发中常见的算法是图像处理中的卷积神经网络(Convolutional Neural Network, CNN)。CNN被广泛用于图像识别、物体检测和图像分割等任务,其复杂性在于需要处理大量的图像数据、复杂的神经网络结构和高效的计算。 1. 卷积操作(Convolution) 数学原理:…

爬虫-豆瓣电影排行榜

获取数据 requests库 获取数据环节需要用到requests库。安装方式也简单 pip install requests 爬取页面豆瓣读书 Top 250 用requests库来访问 import requests res requests.get(https://book.douban.com/top250/) 解析: 导入requests库调用了requests库中的…

界面材料知识

界面材料是用于填充芯片和散热器之间的空隙,将低导热系数的空气挤出,换成较高导热系数的材料,以提高芯片散热能力。参考下图 图片来源网上 热阻是衡量界面材料性能最终的参数,其中与热阻有关的有: 1、导热系数&#x…

Land survey boundary report (template)

Land survey boundary report (template) 土地勘测定界报告(模板).doc

介绍几种 MySQL 官方高可用方案

前言: MySQL 官方提供了多种高可用部署方案,从最基础的主从复制到组复制再到 InnoDB Cluster 等等。本篇文章以 MySQL 8.0 版本为准,介绍下不同高可用方案架构原理及使用场景。 1.MySQL Replication MySQL Replication 是官方提供的主从同…

Games101学习笔记 Lecture16 Ray Tracing 4 (Monte Carlo Path Tracing)

Lecture16 Ray Tracing 4 (Monte Carlo Path Tracing 一、蒙特卡洛积分 Monte Carlo Integration二、路径追踪 Path tracing1.Whitted-Style Ray Tracings Problems2.只考虑直接光照时3.考虑全局光照①考虑物体的反射光②俄罗斯轮盘赌 RR (得到正确shade函数&#x…

Spring Boot 文件上传和下载指南:从基础到进阶

文章目录 引言1. 环境配置2. 文件上传2.1 配置文件上传路径2.2 创建上传服务2.3 创建上传控制器 3. 文件下载3.1 创建下载服务3.2 创建下载控制器 4. 前端页面4.1 文件上传页面4.2 文件下载页面 5. 技术分析结论 🎉欢迎来到SpringBoot框架学习专栏~ ☆* o(≧▽≦)o …