【RAG 论文】BGM:为 LLM 和 Retriever 的偏好 gap 搭建一个 Bridge

论文:Bridging the Preference Gap between Retrievers and LLMs

⭐⭐⭐

Google Research, arXiv:2401.06954

论文速读

LLM 与 Retriever 之间存在一个 preference gap:大多数 retriever 被设计为 human-friendly,但是 LLM 的偏好与人类的却不一致:

  • ranking 方面:由于 LLM 的 self-attention 机制,模型可以集中任何 token 而无视其 position。但人类对于 position 还是很关注的。
  • selection 方面:人类可以轻易地忽视掉与上下文无关的信息,但 LLM 却对于无关内容特别敏感。
  • repetition 方面:人类往往不关心重复内容,甚至不喜欢重复内容,但是 repetition 却在对于 LLM 在衡量相关性的权重时很有帮助。

论文原文设计了一些实验来证明 preference gap 确实存在,具体可以参考原论文。

为了弥补 LLM 和 Retriever 之间的 preference gap,过去的研究工作往往是集中于对 LLM 或 Retriever 进行微调,但其实无论是 LLM 还是 Retriever 都很可能是无法微调的

比如对于生产级的 Retriever,如 Google 或 Bing,都是不能被微调的。

本论文提出了 BGMBridging the Gap between retrievers and LLMs)框架来解决这个问题:它在 LLM 和 Retriever 之间额外添加了一个 seq2seq 的 Bridge 模型,这个 Bridge 模型的输入是 retrieved passages,输出是 LLM-friendly passages。(如下图的最三个模型)

20240513220814

这里的 Bridge 模型是可以训练的,训练过程分成了两个阶段:监督学习(SL)阶段和强化学习(RL)阶段。

Bridge 模型的训练

阶段 1:SL 阶段

首先是 Supervised Learning(SL)阶段。

SL 学习往往需要 golden passage sequence 作为每个 query 的 label 从而实现监督学习,但是 golden passage sequence 是一种理想的情况,由于实际应用中不存在这样的真是标签,且对于一个 query,有太多有效的段落组合方式,从中选出最理想的答案在计算上是不可行的。

于是本文使用 sliver passage sequence(SPS)作为训练标签,也就是次优的标签。因此我们首先需要合成出用于 SL 的 SPS 数据。

SPS 数据的合成关键是用了贪心搜索的思想,通过迭代,最开始的段落序列是一个 empty sequence,之后逐步添加能够提升 downstream task 表现的最佳 passage,并将其加入到 SPS 中,直到无法进一步改善性能为止。

sliver passage sequence 用于监督学习阶段,作为训练目标,帮助桥接模型学习如何从检索到的段落中选择和排序,以生成对 downstream task 最有帮助的段落序列。

阶段 2:RL 阶段

实验发现,只使用 SL 来训练 Bridge model 是不够的,SL only 的模型最终的表现并不好,原因可能就是稀疏的 supervision 以及缺少在 downstream results 上的 end-to-end training。

为了解决这些问题,论文进一步对 SL 训练后的 Bridge Model 做进一步的强化学习,RL 可以让 Bridge model 学习到 optimal passage sequence 所需要的更加复杂的操作(比如 repetition)。

RL 的使用方法是:

  • downstream task 的 performance 被用来设计 reward。比如 QA 任务中的 BLEU 分数。
  • bridge model 就是需要训练的 policy model
  • action space 定义了模型可以采取的所有可能动作,在这篇论文中,action space 可能包括选择哪些 passages、它们的顺序、以及是否需要重复某些 passage 等。
  • Environment 就是由 Retriever、Bridge Model、LLM 组成的整体。

训练阶段的优化算法可以是任何 off-the-shelf RL 算法,论文提到了使用 PPO 作为优化算法。

总结

本论文提出的问题是现实存在的:LLM 和 Retriever 往往都是 Frozen 的,都是无法微调的,但两者之间的 preference gap 又是明显存在的

本文提出引入一个 Bridge Model 来填补这个 gap,但是本文提出的训练方法有点太复杂了,也许有进一步简化的思路。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络配置的加密存储

随着数据泄露事件的增加,扰乱了公司的正常工作周期,企业遭受了损失。事实上,数据泄露可以通过存储加密来控制,存储加密是防止黑客对网络数据库造成严重破坏的最有效方法之一。在网络配置管理器中,存储加密可用于存储设…

C++数据结构——AVL树

目录 一、引言 1.1 二叉搜索树 1.2 二叉搜索树的缺陷 1.3 AVL数的引入 二、AVL树结点的定义 三、AVL树的操作 3.1 插入 3.1.1 基本步骤 3.1.2 平衡因子的调整 3.2 旋转操作(重点!) 3.2.1 右单旋 3.2.2 左单旋 3.2.3 左右双旋 3.2.4 右左双旋 3.3 插入…

【算法】滑动窗口——最小覆盖子串

本节博客是对“最小覆盖子串”题目由暴力求解到滑动窗口的思路解析,有需要借鉴即可。 目录 1.题目2.滑动窗口解法3.总结 1.题目 题目链接:LINK 这个题目是困难难度,感觉是一个中等题目的感觉。 首先我肯定想到的是暴力求解的方法&#xff…

大模型微调方法汇总

微调方法 Freeze方法P-tuning方法 prefix-tuningPrompt TuningP-tuning v1P-tuning v2Lora方法 重要相关参数LoRA 的优势Qlora方法 相关参数微调经验 模型选择模型大小选择数据处理微调方案英文模型需要做词表扩充吗?如何避免灾难遗忘大模型的幻觉问题微调后的输出…

MySQL表的增删查改【基础部分】

数据表的操作 新增 普通插入 insert into 表名 values(值,值...)注意: 此处的值要和表中的列相匹配 使用’‘单引号或者”“双引号来表示字符串 mysql> insert into student values(123,zhangsan); Query OK, 1 row affected (0.02 sec)指定列插入 insert …

搜索引擎的设计与实现(二)

目录 3 搜索引擎的基本原理 3.1搜索引擎的基本组成及其功能 l.搜索器 (Crawler) 2.索引器(Indexer) 3.检索器(Searcher) 4.用户接口(UserInterface) 3.2搜索引擎的详细工作流程 4 系统分析与设计 4.1系统分析 4.2系统概要设计 4.2系统实现目标 前面内容请移步 搜索引…

苍穹外卖Day06笔记(复习了jwt的加密解密和传递)

疯玩了一个月,效率好低,今天开始捡起来苍穹外卖~ 1. 为什么不需要单独引入HttpClient的dependency? 因为我们在sky-common的pom.xml中已经引入了aliyun-sdk-oss的依赖,而这个依赖低层就引入了httpclinet的依赖,根据依…

06、SpringBoot 源码分析 - SpringApplication启动流程六

SpringBoot 源码分析 - SpringApplication启动流程六 初始化基本流程SpringApplication的prepareEnvironment准备环境SpringApplication的getOrCreateEnvironment创建环境configureEnvironment配置环境ApplicationConversionService的getSharedInstance配置转换器 SpringApplic…

LLVM中期报告

1.主要开展的工作 研究对LLVM IR层面进行代码混淆,分析IR的指令 ,并且实现混淆 从LLVM代码混淆的角度出发,函数之间的正常调用构成了待混淆程序的原始控制流,不同的基础代码块构成了一个个的函数,每个基础…

PyQt6--Python桌面开发(12.QpushButton按钮控件)

一.按钮类控件 二.QpushButton按钮控件 2.1QAbstractButton类属性 2.2QpushButton类属性

Git系列:Git Stash临时保存与恢复工作进度

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

ncs sdk nrf5340 运行DFU

nrf5340 运行DFU 1. dfu介绍 Nordic 的 DFU(Device Firmware Update)是一种用于更新设备固件的技术和协议。Nordic Semiconductor 是一家专门设计和制造无线芯片的公司,他们的产品主要用于物联网(IoT)和无线连接应用…

无线网卡网络老断网

无线网卡网络老断网 设置 Intel AX210 无线网卡 路由器华为 AX3 问题及解决 问题 无线网卡连接到 wifi ,连接不通,或者连接上后网络很慢,延时大,掉包。 解决方案 调整如下界面,调整信道后,连接正常。…

Springboot HelloWorld

新建一个maven工程 引入依赖项 <modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.11.RELEASE</version><…

armbian 安装libreoffice 转换word为PDF

安装libreoffice sudo apt-get install libreoffice安装JVM sudo apt-get install default-jre #验证 java -version尝试转换&#xff1a; libreoffice --convert-to pdf /root/printFiles/f.docx发现问题乱码 从Windows 拷贝字体到debian上&#xff0c;windows字体路径是&a…

Postman基础功能-断言与日志

若能脱颖而出&#xff0c;何必苦苦融入。大家好&#xff0c;在 API 测试的领域中&#xff0c;Postman 是一款极为强大且广泛使用的工具。其中&#xff0c;断言和日志调试功能扮演着至关重要的角色。 一、介绍 断言允许我们在测试过程中验证 API 的响应是否符合预期。通过设定各…

vue从入门到精通(一):初始Vue

一&#xff0c;Vue是什么 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。另一方面&#xff0c;当与现代…

基于SpringBoot+Vue的教师个人成果管理系统

初衷 在后台收到很多私信是咨询毕业设计怎么做的&#xff1f;有没有好的毕业设计参考? 能感觉到现在的毕业生和当时的我有着同样的问题&#xff0c;但是当时的我没有被骗&#xff0c; 因为现在很多人是被骗的&#xff0c;还没有出学校还是社会经验少&#xff0c;容易相信别人…

猫头虎分享已解决Error || ERROR: Failed building wheel for XXX

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

物联网设计竞赛_3_Jetson Nano连接摄像头

ls /dev/video* 查看是否有摄像头 camorama 开启摄像头 关闭摄像头用&#xff1a; ctr c结束进程 若有camorama被启动用ps aux 或者 ps aux l grep camorama 找到对应进程用 kill -9 <PID>杀死进程再启动 必要的时候也能重启系统再试试&#xff1a; shutdown -r …