[论文笔记]Query Rewriting for Retrieval-Augmented Large Language Models

news2024/12/24 21:11:36

引言

今天带来论文Query Rewriting for Retrieval-Augmented Large Language Models的笔记。

本篇工作从查询重写的角度介绍了一种新的框架,即重写-检索-阅读,而不是以前的检索-阅读方式,用于检索增强的LLM。关注的是搜索查询本身的适应性,因为输入文本与检索所需的知识之间难免存在差距。

首先提示一个LLM生成查询,然后使用网络搜索引擎检索上下文。此外,为了更好地使查询与冻结的模块对齐,作者提出了一个可训练的流程方案。采用一个小型语言模型作为可训练的重写器,以适应LLM阅读器。重写器通过强化学习使用LLM阅读器的反馈进行训练。

1. 总体介绍

LLM仍然面临着幻觉问题和时间不对齐问题。这影响了LLM的可靠性,并阻碍了更广泛的实际应用。现有的研究已经证明,将外部知识(非参数化知识)与内部知识(参数化知识)结合起来,可以有效缓解幻觉问题,特别是对于知识密集型任务。事实上,检索增强的LLM已经被证明非常有效,被视为缓解原始LLM生成中的事实性缺陷的标准解决方案。检索增强方法被应用于选择相对段落作为语言模型的外部上下文,这是检索-然后阅读的框架。以开放域问答任务为例,检索器首先为一个问题搜索相关文档。然后LLM接收问题和文档,然后预测答案。

由于大多数LLM只能通过推理API进行访问,它们在流程中扮演冻结的黑盒子阅读器的角色。这使得以前需要完全访问的检索增强方法不再可行。最近的检索增强语言模型的研究更加倾向于面向LLM的适应性。现有方法忽视了查询的适应性,即检索然后阅读流程的输入。检索查询要么来自数据集中的原始数据,要么直接由黑盒子生成确定,因此一直是固定的。然而,输入文本和实际需要查询的知识之间难免存在差距。这限制了性能,并给检索能力增强和提示工程带来了负担。

image-20240605104425303

考虑到这个问题,本文提出了一个新的检索增强框架——重写-检索-阅读,可以进一步调整以适应LLM。在检索器之前,添加了一个步骤来重写输入,填补给定输入和检索需求之间的差距,如图1所示。采用现成的工具,即互联网搜索引擎作为检索器,避免了搜索索引的维护,并可以获取最新的知识。重写步骤的动机是从输入文本中澄清检索需求。
作者还提出了一个可训练方案,用于重写-检索-阅读框架(图1c)。黑盒检索器和阅读器形成一个冻结系统。采用了一个小型可训练的语言模型来执行重写步骤,称为重写器。通过使用LLM性能作为奖励进行强化学习,重写器学习适应检索查询以提高下游任务中的阅读器。

总之,提出的新颖检索增强方法,重写-检索-阅读,是第一个为冻结的检索器和LLM阅读器调整输入文本的框架。引入了一个可调节的方案,使用一个小的可训练模型,在资源消耗较少的情况下实现了性能提升。

2. 相关工作

2.1 检索增强

语言模型需要外部知识来缓解事实性缺陷。检索增强被视为标准有效的解决方案。借助检索模块,相关段落被提供给语言模型作为原始输入的上下文。因此,像常识或实时新闻这样的事实信息通过上下文化的阅读理解有助于输出预测。

早期的研究使用稀疏检索器或密集检索器放在预训练语言模型(PrLM)之前。神经检索器和阅读器都是可训练大小的PrLM,如BERT或BART。因此,整个检索-阅读框架是一个可调节的端到端系统,检索到的上下文可以被视为中间结果。为了优化检索和阅读理解,提出了平滑两步框架的方法。近期的研究表明,随着模型和数据规模的迅速增加,检索仍然是一个强大的增强方法。另一方面,与大规模语言模型相比,检索增强可以弥补参数规模不足的问题。例如,通过联合训练检索器和阅读器,Atlas显示了与540B PalM相当的零样本性能,但体积小50倍。

以互联网为知识库 更相关于作者的工作,搜索引擎可以扮演检索器的角色,利用互联网作为外部知识的来源。Komeili等通过互联网搜索与对话历史相关的信息来进行对话响应生成。SeeKeR使用单个Transformer进行迭代式的搜索查询生成,然后进行知识提取以进行对话生成和句子补全。对于大规模模型,网络搜索仍然显示出有效的知识增强、事实检查和LLM代理增强。

2.2 与黑盒LLM的合作

ChatGPT、Codex、PaLM(等大型语言模型具有令人印象深刻的自然语言处理能力和可扩展性。这导致越来越多地在各种NLP任务中采用LLM。然而,在大多数情况下,LLM只能作为黑盒使用,原因是:(1)像ChatGPT这样的模型不是开源的;(2)大规模参数需要计算资源,而用户并不总是能够负担得起。这种限制意味着除了输入和输出文本之外,用户无法访问其他信息。

现有研究已经证明,通过精心设计的交互方法可以更好地利用LLM的能力。GenRead提示LLM生成上下文,而不是部署检索器,显示出LLM可以通过提示检索内部知识。ReAct和Self-Ask结合了CoT和与Web API的交互。仅依靠提示构建,ReAct为交互任务提供了新的基线。Demonstrate-Search-Predict定义了LLM和检索器之间的复杂流程。与ReAct不同,DSP除了多跳拆分和检索之外,还集成了演示引导的提示。

尽管在零样本或少样本设置中表现出有希望的性能,但LLM的行为有时需要调整。一种可行的方法是在LLM之前或之后附加可训练的小模型。这些小模型作为系统参数的一部分可以进行微调优化。RePlug提出了对冻结LLM的密集检索器进行微调,以用于检索-阅读流程。检索器在LLM的监督下进行训练,以检索适合LLM的文档。为了实现相同的目的,Directional Stimulus Prompting部署一个小模型为LLM提供刺激,该模型根据LLM的奖励进行更新。

与上述激发人的工作不同,作者提出的流程在检索-阅读模块之前包含一个查询重写步骤。进一步提出了一个可训练方案,使用一个小的重写模型,通过重构搜索查询来增强检索增强的LLM。

3 方法

作者提出了重写-检索-阅读(Rewrite-Retrieve-Read,3R)的流程,从查询重写的角度改进检索增强的LLM。图1展示了一个概述。

3.1 重写-检索-阅读

一个有检索增强的任务可以表示如下。给定一个知识密集型任务的数据集 D = { ( x , y ) i } , i = 0 , 1 , 2 , . . . , N D = \{(x, y)_i\},i = 0, 1, 2, . . . , N D={(x,y)i}i=0,1,2,...,N,其中 x x x(例如一个问题)是流程的输入, y y y是期望的输出(例如正确答案)。流程包括三个步骤:(1)查询重写:根据原始输入 x x x生成一个与所需知识相关的新查询 x ~ \tilde x x~。(2)检索:搜索相关的上下文文档。(3)阅读:理解输入和上下文 [ d o c , x ] [doc, x] [doc,x],并预测输出 y ^ \hat y y^

一种直接但有效的方法是让LLM重写查询以搜索可能需要的信息。作者使用少样本提示来鼓励LLM思考,输出可以是一个或多个查询进行搜索。

3.2 可训练方案

然而,完全依赖冻结的LLM也存在一些缺点。推理错误或无效的搜索会影响性能。另一方面,检索到的知识有时可能会误导和损害语言模型。为了更好地与冻结模块对齐,可以添加一个可训练的模型,并通过将LLM阅读器的反馈作为奖励来进行调整。

作者进一步提出利用一个可训练的小型语言模型来接管重写步骤,如图1右侧所示。可训练的模型以预训练的T5-large(770M)作为初始化,记为可训练重写器 G θ G_θ Gθ。重写器首先在伪数据上进行预热训练,然后通过强化学习进行持续训练。

3.2.1 重写器预热

查询重写任务与T5等序列生成模型的预训练目标有很大的区别。首先,为查询重写任务构建了一个伪数据集。受最近的蒸馏方法的启发,提示LLM重写训练集中的原始问题 x x x,并收集生成的查询 x ~ \tilde x x~作为伪标签。然后对收集到的样本进行过滤:从LLM阅读器中获得正确预测的样本被选入预热数据集 D T r a i n = { ( x , x ~ ) ∣ y ^ = y } D_{Train}=\{(x, \tilde x)|\hat y = y\} DTrain={(x,x~)y^=y}。重写器 G θ G_θ Gθ D T r a i n D_{Train} DTrain​上进行微调,使用标准对数似然作为训练目标,表示为
L w a r m = − ∑ t log ⁡ p θ ( x ~ ^ ∣ x ~ < t , x ) (1) \mathcal{L}_{warm} = -\sum_t \log p_\theta(\hat {\tilde x} |\tilde x_{<t},x) \tag 1 Lwarm=tlogpθ(x~^x~<t,x)(1)
预热后的重写器模型表现出适度的性能,这取决于伪数据的质量和重写器的能力。由于高度依赖人工编写的提示行, x ~ \tilde x x~可能不是最优的。重写器规模相对较小的限制也会影响预热后的性能。

3.2.2 强化学习

强化学习暂略

4. 实现

Rewriter 给LLM带少样本示例的提示去重写查询的上下文学习。提示遵循[instruction, demonstrations, input]的公式,其中输入为 x x x。指令是直接的,示例是来自训练集的1-3个随机示例,并在所有运行中保持不变,主要用于任务特定的输出格式说明,即对于HotpotQA的简短短语作为答案,对于MMLU的选项作为答案。对于第3.2节中的训练方案,将T5作为重写器进行微调。

Retriever 使用必应搜索引擎作为检索器。它不需要像密集检索器那样构建候选索引,也不需要像教科书(textbook)那样的候选项。但它允许广泛的知识范围和最新的事实性。通过Bing API,检索分为两种方法进行。(1)对于所有检索到的网页,连接由Bing选择的相关句子片段。这种方法类似于在浏览器中使用搜索引擎,输入查询并按Enter键,然后收集搜索结果页面上显示的文本。(2)对于检索到的网页,请求URL和解析器获取所有文本。这类似于在搜索结果页面上点击。然后使用BM25保留与查询具有更高相关性分数的文档,缩短文档长度。

Reader 阅读器是一个冻结的LLM,采用ChatGPT和Vicuna-13B。它执行阅读理解和预测,具有少量的上下文学习。在作者的提示中,遵循简要的指导和演示,输入为 x x x [ d o c , x ~ ^ ] [doc,\hat{\tilde x}] [docx~^]

5. 实验

image-20240611165444622

image-20240611165621525

在开放领域问答方面的实验结果见表2。对于三个数据集,查询重写始终能够通过冻结的重写器和可训练的重写器带来性能提升。

使用复杂问题作为查询无法弥补参数化知识,而是带来了噪音。表明多跳问题不适合作为网络搜索引擎的查询。通过添加重写步骤,分数有所提高。

6. 分析

6.1 训练过程

image-20240611165857050

训练过程包括两个阶段,预热和强化学习。图2展示了在强化学习过程中的训练迭代中的度量分数。由于重写模型在RL之前已经在伪数据上进行了预热,因此“0迭代”处的分数表示从预热训练中获得的能力。可以观察到曲线在所有数据集上都呈上升趋势,并伴有一些波动。

image-20240611170244801

6.2 检索结果

作者提出的方法是一个流水线框架,而不是端到端系统。查询重写首先影响检索到的上下文,然后上下文对阅读器的输出产生影响。因此,问答指标是间接测量。通过检索指标“命中率”更仔细地观察检索到的上下文和阅读器的能力。计算命中率以衡量检索到的上下文是否包含正确答案。

表4显示了在AmbigNQ上的分数。第二行的分数是在选定的样本中计算的,这些样本的检索上下文命中了正确答案(在标准检索-然后阅读设置下)。这些分数显示了具有检索增强的阅读器的近似上限能力,简称为“上限”分数。与无检索设置(第一行)相比,检索的有效性得到了证明。

指标显示,使用BM25进行内容选择比片段召回更好的文档,而查询重写在两种设置上都取得了进展。检索器的命中率提高比阅读器的提高更为显著。

6.3 案例研究

image-20240611171008979

图3: 直观说明的示例。Q0表示原始输入,Q1来自LLM重写器,Q2来自经过训练的T5重写器。Hit表示检索器召回答案,而Correct表示阅读器的输出。

我们看图3中的示例,比较了原始问题和查询。在示例1中,原始问题询问Lady Mary-Gaye Curzon的最小女儿与两位特定演员合作出演的电影。查询1和查询2都将关键词电影放在前面,紧随Lady Mary-Gaye Curzon的最小女儿。通过两者,可以检索到女演员Charlotte Calthorpe及其电影信息,并包含了答案。第二个示例是LLM重写器生成的查询失败,但T5生成的查询获得了正确答案。查询1中的数字2000被误解,而查询2将200和电影放在一起,避免了无意义的检索。示例3是关于多项选择的案例。查询简化了背景并增强了关键词社区规划者。检索到的上下文主要是关于社区规划介绍,其中答案环境出现了多次。

7. 结论

本文介绍了Rewrite-Retrieve-Read流水线,其中添加了一个查询重写步骤用于检索增强的LLM。这种方法适用于将冻结的大型语言模型作为阅读器,将实时网络搜索引擎作为检索器。此外,可以应用可调节的小型语言模型作为重写器,可以训练以适应冻结的检索器和阅读器。

总结

⭐ 作者提出了可在查询之前先应用LLM作为重写器对问题进行重写,然后再走RAG的流程。同时也提出了可以训练一个小模型来作为重写器。但博主对该小模型的泛化能力存疑。建议还是通过在提示词中给一些示例,让LLM进行重写。

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

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

相关文章

服饰进口清关流程及注意事项 | 国际贸易数字化平台 | 箱讯科技

随着全球化进程的不断推进&#xff0c;我国消费者对国外品牌服饰的需求日益增长&#xff0c;衣服进口业务也随之蓬勃发展。作为一名从事进口衣服行业的专业人士&#xff0c;掌握清关流程及注意事项至关重要。本文将为您详细解析衣服进口清关流程&#xff0c;并提供一些实用建议…

【CHIP】LTC2991 读取温度电压电流 调试实例

文章目录 0. ENV1. LTC2991 数据说明1. 数据计算公式2. 寄存器概述1. 管脚使能寄存器2. 芯片使能寄存器 2. 软件实现1. 概述2. 源码(部分)3. 参考log 0. ENV 软件系统&#xff1a;略 LTC2991&#xff1a;VCC3.3 温度&#xff1a;温控接v1-v2 / v2-v3 / … (双端采样)电压&#…

怎么找回Excel表格密码,两个方法,轻松解密

有时候&#xff0c;打开很久以前的工作表&#xff0c;想要进行编辑&#xff0c;结果工作表设置了工作表保护&#xff0c;需要输入密码来撤消工作表保护&#xff0c;然而&#xff0c;自己又忘记了保护工作表的密码&#xff0c;怎么办&#xff1f; 1、使用备份文件 如果您有文件…

龙迅LT9211D MIPIDSI/CSI桥接到2 PORT LVDS,支持 3840x2160 30Hz分辨率

龙迅LT9211D描述&#xff1a; LT9211D是一款高性能的MIPI DSI/CSI-2到双端口LVDS转换器。LT9211D反序列化输入的MIPI视频数据&#xff0c;解码数据包&#xff0c;并将格式化的视频数据流转换为AP和移动显示面板或摄像机之间的LVDS发射机输出。LT9211D支持最大12.5 dB输入均衡和…

for语句初识

情景导入 某校某年级某班某位男生很爱哭&#xff0c;“wa”、“wa”、“wa”声音经常不绝于耳&#xff0c;现在请你通过编程来模拟他的哭声&#xff0c;他每发出一次哭声&#xff0c;则你输出一行——一个“wa”&#xff1b; 他哭了2次&#xff0c;我们可以这样写&#xff1a; …

力扣每日一题 6/11

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 419.甲板上的战舰[中等] 题目&#xff1a; 给你一个大小为 m x n 的矩阵 b…

经典且完全免费的图像编辑处理软件比PS高级

一、简介 1、一款非常经典且完全免费的图像编辑处理软件&#xff0c;相比PS动辄1G的安装包&#xff0c;GIMP只有100 多兆&#xff0c;却包含了几乎所有常见的图片处理和平面设计相关功能&#xff0c;堪称PS替代品。 2、GIMP 几乎能实现与 PS 等同的功能&#xff0c;我们常使用…

【鸿蒙开发教程】HarmonyOS 模块关系梳理

HarmonyOS 梳理模块关系 刚开始开发的时候总是理不清鸿蒙中的模块类型和关系&#xff0c;今天就来梳理下鸿蒙中的模块类型 Module类型 Module按照使用场景可以分为两种类型&#xff1a; ●Ability类型的Module&#xff1a; 用于实现应用的功能和特性。每一个Ability类型的M…

抖音快手AI无人直播系统:教你快速搭建视频循环直播场景只需五部

AI无人直播是一种创新的直播方式&#xff0c;利用先进的技术手段实现自动直播&#xff0c;无需人工干预。这种直播方式具有全天候自动直播的能力&#xff0c;无需运营和监管即可吸引流量并转化为订单。商家门店对这种低成本高效果的方式非常欢迎。通过轻松进行直播销售&#xf…

【C语言】一篇带你高强度解析精通 字符串函数和内存函数 (万字总结大全,含思维导图)(建议收藏!!!)

【 库函数】——字符串函数和内存函数 目录 思维导图&#xff1a; 一&#xff1a;字符串函数 1.1&#xff1a;字符串常规函数 1.1.1&#xff1a;长度不受限制的字符串函数 1.1.1.1&#xff1a;strlen函数 1.1.1.2&#xff1a;strcpy函数 1.1.1.3&#xff1a;strcat函数 …

工业镜头孔径、分辨率与景深参数简析

工业镜头孔径、分辨率与景深参数简析 一、前言二、镜头孔径与光圈系数2.1孔径与相对孔径2.2数值孔径&#xff08;NA&#xff09;2.3光圈系数&#xff08;F/#&#xff09;2.4工作光圈系数&#xff08;&#xff08;F/#&#xff09;w&#xff09; 三、镜头分辨率3.1MTF与CTF3.1.1M…

干货分享!2024年Instagram营销必备插件

Instagram是营销人员常用的社交媒体平台&#xff0c;通过提升品牌知名度来推动业务增长。今天给大家分享一些超实用的Instagram营销插件&#xff0c;无论是下载图片视频&#xff0c;还是预先发布帖子&#xff0c;这些工具都可以是你的得力助手&#xff0c;让你的INS运营效率蹭蹭…

阿里云百炼开发AI大模型详解

AI项目功能设想描述文档 随着AI发展越来越迅速&#xff0c;各行各业都需考虑如何将AI结合到自己的产品中&#xff0c;目前国内大部分的AI问答网站&#xff0c;都是基于Open AI实现的&#xff0c;但是如何需要运用到企业产品中那我们考虑的因素就会比较多 将ChatGpt移植到企业中…

Activiti7 Maven笔记

通过maven完成BPMN的创建,定义流程,部署流程,完成流程等操作 代码整合创建maven项目添加log4j日志配置添加activiti配置文件创建数据库 activitijava类编写程序生成表如果代码运行,没有生成表,可能是没有读取到activiti的配置文件 Activiti数据表介绍类关系图工作流引擎创建默认…

AI产品经理的转行之路,如何迈向年薪80w的职业高峰?

前言 在当今科技日新月异的时代&#xff0c;AI产品经理作为一个炙手可热的职业&#xff0c;吸引了众多向往高薪与前沿领域结合的求职者的目光。年薪80万的诱惑力无疑是巨大的&#xff0c;但不少自学中的朋友发现&#xff0c;即便涉猎广泛的产品知识&#xff0c;想要顺利转型成…

力扣 42. 接雨水

题目来源&#xff1a;https://leetcode.cn/problems/trapping-rain-water/description/ C题解1&#xff1a;双指针 按列算&#xff0c;一列一列的求雨水面积。使用双指针是记录当前列左右侧的最大元素。 class Solution { public:int trap(vector<int>& height) {in…

中电联系列三:rocket手把手教你理解中电联协议!

分享《慧哥的充电桩开源SAAS系统&#xff0c;支持汽车充电桩、二轮自行车充电桩。》 前 言 T/CEC102《电动汽车充换电服务信息交换》共分为四个部分&#xff1a; ——第1部分&#xff1a;总则&#xff1b; ——第2部分&#xff1a;公共信息交换规范&#xff1b; ——第3部分&a…

【ARM Cache 及 MMU 系列文章 1.3 -- 如何判断 L2 Cache 是否实现】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 CPU Configuration Register代码实现CPU Configuration Register 在 armv9 架构中,我们可以通过arm 提供的自定义寄存器IMP_CPUCFR_EL1 来判断当前系统中是否实现了 L2 Cache, 如下所…

【Linux系统编程】进程终止

目录 strerror函数 errno错误码 退出码 正常终止&#xff08;可以通过 echo $? 查看进程退出码&#xff09;&#xff1a; 1. 从main返回&#xff08;return&#xff09; 2. 调用exit 3. _exit&#xff08;一般尽量不要用&#xff09; 异常退出&#xff1a; ctrl c&am…

django 旅游服务系统-计算机毕业设计源码88939

摘 要 旅游服务系统采用采用django框架、python语言、以及Mysql数据库等技术。系统主要分为管理员和用户两部分&#xff0c;管理员管理主要功能包括&#xff1a;首页、轮播图&#xff08;轮播图管理&#xff09;、公告信息管理&#xff08;公告信息&#xff09;、资源管理&…