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

2024-05-14 01:28

本文主要是介绍【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,但是本文提出的训练方法有点太复杂了,也许有进一步简化的思路。

这篇关于【RAG 论文】BGM:为 LLM 和 Retriever 的偏好 gap 搭建一个 Bridge的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987360

相关文章

VS2013 + WDK7.6搭建驱动开发环境

1、下载安装VS2013、WDK7.6 VS2013:https://www.visualstudio.com/zh-cn/downloads/download-visual-studio-vs.aspxWDK7.6:https://msdn.microsoft.com/zh-cn/windows/hardware/hh852365.aspx连这安装就不用说了吧,连这都搞不定,就放弃吧!!!

从零入手人工智能(2)——搭建开发环境

1.前言 作为一名单片机工程师,想要转型到人工智能开发领域的道路确实充满了挑战与未知。记得当我刚开始这段旅程时,心中充满了迷茫和困惑。面对全新的领域,我既不清楚如何入手,也不知道能用人工智能干什么。正是这些迷茫和困惑,激发了我不断探索和学习的动力。经过一段时间的摸索和实践,我逐渐扫清了障碍,找到了入门的钥匙。我开始明白如何去学习,如何去实践,如何去深挖每一个核心知识点。 我撰写了这个系列的文章

【Laravel】laravel环境搭建

一、 前期准备 1.  下载安装apache服务器 (httpd-2.2.25-win32-x86-openssl-0.9.8y.msi) 2.  下载composer (包管理工具 Composer, 直接放到laravel根目录即可使用) 3.  下载php (php-5.4.40-Win32-VC9-x86.zip) 4.  下载laravel框架(laravel5 或者 la

【环境搭建】1.阿里云ECS服务器 安装jdk8

在阿里云服务器上安装 JDK 8 可以通过以下步骤完成。假设你使用的是 CentOS 或者其他基于 Red Hat 的发行版或Alibaba Cloud Linux 3.2104 LTS 64位。 1.更新系统软件包 sudo yum update -y 2.安装 OpenJDK 8 使用 yum 包管理器安装 OpenJDK 8 sudo yum install -y java-1.

搭建数字化营销平台带来的一系列积极影响!

在当今数字化时代,搭建数字化营销平台具有一系列令人瞩目的积极影响。     这种平台的搭建,能够有力地促进形成良好的产业生态。就如同搭建蚓链数字化生态营销系统这般,它强化了产业间的沟通与协作,使得各个环节紧密相连,共同构建起一个蓬勃发展的产业生态环境。在这样的生态中,各方不再是孤立的个体,而是能够协同合作,共同实现增值,为整个产业带来更广阔的发展空间。    与此同时,数字化营销平台的构建还助力企

Windows环境下NDK环境搭建

在windows平台上新的NDK版本(r7及其以上)可不借助cygwin就能编译链接产生.so动态链接库文件。 r7以上需要使用cygwin或者r7以下 的请自行搜索。      环境eclipse 4.4 安装ADT插件。       NDK android-ndk-r10d 32位的。本人的android环境目前都是32位。      android-ndk-r10d 是个exe的

搭建python虚拟环境,并在VSCode中使用

创建环境 python -m venv E:\python\flask\venv 激活环境 运行下图所示的bat文件 退出环境 执行下面的语句 deactivate VSCode中配置: ①使用CTRL+shift+p命令,使用CTRL+shift+p命令,输入: Python: Select Interpreter ②选择之前创建的虚拟环境的解释器 ③运行随便一个pytho

【环境搭建】3.阿里云ECS服务器 安装Redis

在阿里云的 Alibaba Cloud Linux 3.2104 LTS 64位系统上安装 Redis 可以通过以下步骤完成: 1.更新系统软件包: 首先,更新系统软件包以确保所有软件包都是最新的: sudo yum update -y 2.安装编译工具和依赖项: Redis 需要一些基本的编译工具和依赖项,首先安装这些工具: sudo yum install -y gcc make

Redisson 源码分析 —— 调试环境搭建

本文基于 Redisson 3.11.4-SNAPSHOT 版本 依赖工具 MavenGitJDKIntelliJIDEA 源码拉取 从官方仓库 https://github.com/redisson/redisson Fork 出属于自己的仓库。 为什么要 Fork ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。 在拉取项目的过程中,我们来看看每个

Selenium1工具学习笔记(webdriver环境搭建)

写这篇博客的时候,笔者还是啥都不会的小白,那时候还在1向2版本的进阶,环境的搭建过程相比现在更繁琐。 相信搜索到这篇的朋友,都已经问过度娘selenium为何物,这里就不再赘述了,直接切入主题:环境搭建。 1、selenium1(关键是selenium IDE只支持在火狐浏览器安装),它通过录制脚本并导出Junit4RC+jave脚本+selenium RC需要运行selenium服务、