【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

相关文章

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

Spring Cloud GateWay搭建全过程

《SpringCloudGateWay搭建全过程》:本文主要介绍SpringCloudGateWay搭建全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Spring Cloud GateWay搭建1.搭建注册中心1.1添加依赖1.2 配置文件及启动类1.3 测

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr