【RAG 论文】AAR:训练一个LLM喜欢的检索器来做RAG

news2024/11/27 12:35:50

论文:Augmentation-Adapted Retriever Improves Generalization of Language Models as Generic Plug-In
⭐⭐⭐
ACL 2023, Tsinghua & Microsoft,arXiv:2305.17331

论文速读

以往 RAG 的工作通常联合微调 retriever 和 LLM 导致紧密耦合,但经常是 LLM 作为一个 black-box 是无法微调的。

本文提出 AAR(Augmented-Adapted Retriever)模型:它选择一个小型的 encoder-decoder 架构的 LM 作为 source LM,并让 retriever 学习 LM 的 preference(“偏好”),从而让 retriever 适配 LM,由于本工作发现不同的 LM 的 preference 是类似的,所以训练好的 retriever 可以作为一个"通用插件"用在不同的 LM 以及不同的 downstream tasks 上。

具体来说,有一个 pre-trained retriever,一个小型的 encoder-decoder LM 作为 source LM,有一个 NLP 任务作为 source task。对于一个 question,首先让 retriever 检索出 N 个 docs,然后利用 source LM 对这 N 个 docs 使用 FiD cross-attention 机制(FiDAtt)为每个 doc 计算出一个 attention score,然后根据 attention score 选出 Top-K 的 docs。这 Top-K 的 docs 与 human-labeled docs 做并集得到 positive docs,之后使用 ANCE 采样得到 negative docs。然后就可以拿 positives 和 negatives 来训练 retriever,从而得到 AAR。这样训练得到的 ARR 可以作为一个通用插件并用在未见过的 LLM 和 downstream tasks 上。整个过程的图示如下:

20240512221504

实验

在论文实验中,retriever 初始化自 Contriever 或者 ANCE,source LM 选择了 Flan-T5,source task 选择了 MS MARCO,因为 Contriever 和 ANCE 都在这个 task 做过微调。

这个模型经过实验,训练后的 AAR 在 PopQA task 上效果很好,在 MMLU task 上结果也还行。

消融实验发现:

  • 仅使用 human-labeled docs 和仅使用 FiDAtt 的 Top-K docs 作为 positive docs 都不如合并起来效果好。
  • 人类首选的文档和 LM 首选的文档之间的分布差距其实很大,人类也许认为可能一般的文档,LM 也许能从中在另一个角度得到辅助
  • 将 Flan-T5 Base 作为 source LM 竟然比 Flan-T5 Large 得到了更好的效果,随着 target LM 的尺寸增加,两种方法都达到了相当的性能,所以,在自适应增强训练阶段使用较小的 LM 作为 source LM 的选择是合理有效的。

对 LM preference 的文档进行分析,下图是人类偏好文档与 LM 偏好文档的重叠率的图:

20240512222947

可以看到,两种文档并不相似,差距还是挺大的,发现 LM 偏好的文档可以从其他角度来帮助 LM,而不是搜索用户喜欢的全部信息。这部分详细信息可以看原论文。

总结与分析

对这篇论文的一些想法:

  • 神奇的是,在一个 LLM 上得到的 preference 竟然可以迁移到其他 LLM,也许是可能大家的训练数据都差不多
  • FiD 是只能用于 encoder-decoder 架构的 LM,现在 decoder-only model 居多的情况下,需要做一些改进了,比如用于衡量 preference 的 score 也许可以由 LLM 直接生成,而不是间接通过 FiD 机制。

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

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

相关文章

实验0.0 Visual Studio 2022安装指南

Visual Studio 2022 是一个功能强大的开发工具,对于计算机专业的学生来说,它不仅可以帮助你完成学业项目,还能为你将来的职业生涯打下坚实的基础。通过学习和使用 Visual Studio,你将能够更高效地开发软件,并在编程领域…

公有云Linux模拟UDP端口并抓包

目录 写在前面操作步骤服务端开启UDP端口并监听客户端连接Wireshark抓包查看 写在前面 关于具体的操作,请参考我的上一篇文章 公有云Linux模拟TCP三次挥手与四次握手(Wireshark抓包验证版) 在本文,仅介绍与上一篇不同的地方。 操…

Matlab-粒子群优化算法实现

文章目录 一、粒子群优化算法二、相关概念和流程图三、例题实现结果 一、粒子群优化算法 粒子群优化算法起源于鸟类觅食的经验,也就是一群鸟在一个大空间内随机寻找食物,目标是找到食物最多的地方。以下是几个条件: (1) 所有的鸟都会共享自己的位置以及…

泰达克仿钻点水晶饰品包装印刷防滑UV胶特性及应用场景

仿钻点UV滴胶是一种特殊的胶水 常用于模拟钻石的效果 它是一种透明的胶水 具有高光泽度和折射率 可以在物体表面形成类似钻石的亮闪效果 仿钻点UV滴胶通常由紫外线固化胶组成 需要通过紫外线照射来固化和硬化 它具有以下特点: 1. 透明度:仿钻点UV滴胶具有…

B端弹窗设计指南,3000字讲清楚,内附大量案例。

B端系统弹窗是指在企业级(Business to Business)系统中,弹出的窗口或对话框,用于向用户展示信息、提供操作选项或者收集用户输入。 一、B端系统弹窗的作用 作用如下: 提示和通知:弹窗可以用于向用户展示重…

STM32F407-驱动SHT41采集温湿度

STM32F407-驱动SHT41采集温湿度 SHT41 SHT41通过I2C方式进行驱动 从机地址: 0x44 获取数据方式 1)先发送I2C写,写入特定指令 2)延时一段时间,等待SHT41处理 3)再进行I2C读,读数据即可 一些…

打开远程连接的命令是什么?

远程连接是一种能够在不同设备之间建立连接并共享信息的技术。在许多情况下,我们需要通过远程连接来访问其他设备或处理一些远程任务。本文将介绍一些常用的打开远程连接的命令。 使用SSH连接远程设备 SSH(Secure Shell)是一种安全的网络协议…

1-02-02:虚拟化与容器化Docker环境搭建

1.02.02 虚拟化与容器化Docker环境搭建 一. 虚拟化与容器化技术简介1. 虚拟机环境2. docker环境 二. Docker 架构与隔离机制2.1 Docker 架构2.2 Docker 隔离机制2.3 资源限制2.4 Docker应用场景 三. 实战:Docker在Centos7安装与镜像加速 ❤❤❤3.1 docker安装3.2 设置镜像加速 …

NIOS II实现LED流水灯以及串口输出(DE2-115开发板)

NIOS II实现LED流水灯以及串口输出(DE2-115开发板) 前言什么是Qsys?什么是NIOSII?注意事项1、管脚配置2、配置NIOSII时的连接3、注意中断配置好后是这样的4、注意名称的配置5、设置双功能引脚 NIOS II的报错代码以及效果演示流水灯输出到电脑串口助手 …

人工智能轨道交通行业周刊-第79期(2024.4.22-5.12)

本期关键词:无人机巡检、车机联控、减速顶、Agent、GraphRAG、RAGFlow 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨道世界铁路那…

【智能算法应用】遗传粒子群算法(GA-PSO)求解选址问题

目录 1.算法原理2.数学模型3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】粒子群算法(PSO)原理及实现 经典PSO算法用于连续空间优化问题,选址问题作为组合优化问题,需要在离散空间中求解。因此,考虑遗传算…

阮怀俊谈如何盘活和挖掘乡村文旅资源

近年来,浙江凭借高水平建设新时代美丽乡村,各项工作持续走在全国前列,最近,在国家发展改革委关于恢复和扩大消费措施的通知中也提到: “推广浙江‘千万工程’经验,建设宜居宜业和美乡村。实施文化产业赋能乡…

Libcity 笔记:自定义模型

在/libcity/model/trajectory_loc_prediction/,我们复制一份Deepmove.py,得到DM_tst.py,我们不改变其中的机制,只动class name 然后修改相同目录下的__init__.py: 修改task_config文件: 在config/model/tra…

带头单链表 C++实现

节点定义 带头单链表&#xff1a;我们只需要一个结点指针指向整个链表的第一个节点&#xff0c;这样我们就可以通过next指针访问整个链表内的所有节点 template<class T> struct ListNode {T _val;ListNode* _next;ListNode(const T &val):_val(val),_next(nullptr){…

Unity图形图表XChart插件使用

最近做了一款数字孪生项目,其中涉及到了图形图表的应用,网上找了一下,找到了XChart插件,使用起来蛮方便的,不过还有待继续研究,很多细节性的知识点需要进行学习探索。以下是项目中的应用。 官方应用: ![](https://img-blog.csdnimg.cn/direct/ab9de8e84e7b4be4a50ea…

抽丝剥茧:详述一次DevServer Proxy配置无效问题的细致排查过程

事情的起因是这样的&#xff0c;在一个已上线的项目中&#xff0c;其中一个包含登录和获取菜单的接口因响应时间较长&#xff0c;后端让我尝试未经服务转发的另一域名下的新接口&#xff0c;旧接口允许跨域请求&#xff0c;但新接口不允许本地访问&#xff08;只允许发布测试/生…

【058】基于SpringBoot+Vue校园失物招领系统的设计与实现

系统介绍 基于SpringBootVue校园失物招领系统主要通过使用Java语言编码设计系统功能&#xff0c;MySQL数据库管理数据&#xff0c;AJAX技术设计简洁的、友好的网址页面&#xff0c;然后在IDEA开发平台中&#xff0c;编写相关的Java代码文件&#xff0c;接着通过连接语言完成与…

C#实现简单音乐文件解析播放——Windows程序设计作业2

1. 作业内容 编写一个C#程序&#xff0c;要求实现常见音乐文件的播放功能&#xff0c;具体要求如下&#xff1a;     1). 播放MP3文件&#xff1a; 程序应能够读取MP3文件&#xff0c;并播放其中的音频。     2). 播放OGG文件&#xff1a; 应能够播放ogg文件。     …

软考高项总结:第20章高级项目管理

一、高级项目管理基础 1、项目组合主要是为实现战略目标而进行的多个项目。比如村里要发展经济。制定了一个发展战略。要修路,要建厂,要种树,要整田。这些方面都有很多项目,在一起形成了项目组合。 2、项目集中的项目之间存在着关联关系,要统一考虑以实现更大利益。比如…

MFC的CPen与CBush画图对象使用步骤

在MFC中&#xff0c;CPen和CBrush是两个常用的绘图对象&#xff0c;分别用于定义画笔和画刷&#xff0c;可以用于绘制图形、填充区域等。下面我会详细介绍如何在MFC中使用CPen和CBrush来绘制和填充图形。 使用 CPen 绘制图形&#xff1a; 创建 CPen 对象&#xff1a; 首先&am…