当前位置: 首页 > article >正文

[论文笔记]RA-DIT: RETRIEVAL-AUGMENTED DUAL INSTRUCTION TUNING

引言

今天带来一篇RAG微调的论文笔记——RA-DIT: RETRIEVAL-AUGMENTED DUAL INSTRUCTION TUNING。

为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。

我们引入了检索增强双指令微调(Retrieval-Agumented Dual Instruction Tuning,RA-DIT):(1)更新预训练的LM以更好地利用检索到的信息; (2) 更新检索器以返回LM所偏好更相关的结果。通过在需要知识利用和上下文感知的任务上进行微调。

1. 总体介绍

现有的RALM(Retrival-Augumented Language Modeling)架构侧重于两个挑战: (i) 增强LLM结合检索知识的能力 (ii) 改进检索组件以返回更相关的内容。

在这项工作中,我们展示了轻量级指令微调本身就能显著提升RALM的性能。提出了RA-DIT,通过在一组任务上进行微调来为任何LLM装备检索能力的方法,这些任务用于训练语言模型预测中的知识利用和上下文感知。使用预训练的LLAMA和最先进的基于双编码器的密集检索器DRAGON+初始化框架。

image-20241018080532438

图 1:RA-DIT 方法分别微调 LLM 和检索器。对于给定示例,LM-ft 组件更新 LLM 以最大化给定检索增强指令的正确答案的可能性;R-ft 组件更新检索器以最小化检索器得分分布与 LLM 偏好之间的 KL 散度。

分两个步骤进行指令微调。对于语言模型微调(LM-ft),采用标签损失目标,并在每个微调提示中添加一个检索到的背景字段。该字段至于指令之前。通过在微调过程中加入背景文本,引导LLM最佳地利用检索到的信息并忽略干扰内容。

对于检索微调(R-ft),使用一个基于监督任务和无监督文本完成的组合计算广义LM监督搜索训练目标来更新查询编码器。使检索器能生成与LLM偏好一致的、更具上下文相关的内容。

2. 方法

2.1 架构

语言模型 检索增强型预训练自回归语言模型。特别是,使用LLAMA;

检索器 采用基于双编码器的检索器架构。给定一个语料库 C \mathcal C C和一个查询 q q q,文档编码器将每个文本片段 c ∈ C c \in \mathcal C cC映射到一个嵌入 E d ( c ) E_d(c) Ed(c),而查询编码器将 q q q映射到一个嵌入 E q ( q ) E_q(q) Eq(q)。基于查询-文档嵌入相似度检索 q q q中排名前k的相关文本片段,相似度通过点积计算:
s ( q , c ) = E q ( q ) ⋅ E d ( c ) (1) s(q,c) = E_q(q) \cdot E_d(c) \tag 1 s(q,c)=Eq(q)Ed(c)(1)
使用DRAGON +初始化检索器。

并行上下文检索增强 对于给定的语言模型提示 x x x,检索出排名靠前的k个相关文本片段 C ′ ⊂ C , ∣ C ′ ∣ = k \mathcal C^\prime \subset \mathcal C, |\mathcal C^\prime| = k CC,C=k。为了保持上下文窗口大小限制,每个检索到的片段都预先添加到提示中,并且对来自多个增强提示的语言模型预测执行并行计算。最终输出概率是每个增强提示的概率混合,并根据片段相关性得分进行加权。
p L M ( y ∣ x , C ′ ) = ∑ c ∈ C ′ p L M ( y ∣ c   ∘   x ) ⋅ p R ( c ∣ x ) (2) p_{LM} (y|x,\mathcal C^\prime) = \sum_{c \in \mathcal C^\prime} p_{LM}(y|c \,\circ\, x) \cdot p_R(c|x) \tag 2 pLM(yx,C)=cCpLM(ycx)pR(cx)(2)
其中 ∘ \circ 表示序列拼接; p R ( c ∣ x ) = exp ⁡ s ( x , c ) ∑ c ′ ∈ C ′ exp ⁡ s ( x , c ′ ) p_R(c|x) = \frac{\exp s(x,c)}{\sum_{c^\prime \in \mathcal C^\prime} \exp s(x,c^\prime)} pR(cx)=cCexps(x,c)exps(x,c) 是在top-k相关片段中重新归一化的检索分数。

使用一对起始(Background)和结束(\n\n)标记来划定增强提示中的检索段。

2.2 微调数据集

image-20241018082209181

语言模型微调数据集( D L \mathcal D_L DL)包含20个数据集。每个数据集的示例使用手动编译的模板进行序列化。

2.3 检索增强语言模型微调

将每个微调序列分词一个指令段( x x x)和一个输出段( y y y)。对于每个示例 ( x i , y i ) ∈ D L (x_i,y_i) \in \mathcal D_L (xi,yi)DL,根据 x i x_i xi检索 top- k ~ \text{top-}\tilde k top-k~相关的文本片段 C i ⊂ C \mathcal C_i \subset \mathcal C CiC。对于每个检索到的片段 c i j ∈ C i c_{ij} \in \mathcal C_i cijCi,通过将其作为背景字段添加到指令前面,创建一个单独的微调示例,从而为每个原始示例生成 k ~ \tilde k k~个独立的微调示例: { ( c i j ∘ x i , y i ∣ j = 1 , ⋯   , k ~ } \{(c_{ij} \circ x_i,y_i| j=1,\cdots,\tilde k\} {(cijxi,yij=1,,k~}

使用下一词预测目标对语言模型进行微调,最小化每个实例输出段中词的损失:
L ( D L ) = − ∑ i ∑ j log ⁡ p L M ( y i ∣ c i j ∘ x i ) (3) \mathcal L(\mathcal D_L) = -\sum_i \sum_j \log p_{LM}(y_i|c_{ij}\circ x_i) \tag 3 L(DL)=ijlogpLM(yicijxi)(3)
在微调过程中集成上下文检索增强带来了双重益处。首先,它使 LLM 能够更好地利用相关背景知识进行预测。其次,即使是最先进的检索器也可能出错并返回不准确的结果。通过训练 LLM 在给出错误检索片段时做出正确预测,我们使 LLM 能够忽略误导性的检索内容,并在这种情况下依赖其参数化知识。

2.4 检索器微调

采用了一种广义的LSR((LM-Supervised Retrieval)训练方法,利用语言模型本身为检索器微调提供检索。

对于检索微调数据集 D R \mathcal D_R DR中的训练样本 ( x , y ) (x,y) (x,y),我们定义检索到的片段 c c c的LSR分数如下:
p L S R ( c ∣ x , y ) = exp ⁡ ( p L M ( y ∣ c ∘ x ) / τ ) ∑ c ′ ∈ C exp ⁡ ( p L M ( y ∣ c ′ ∘ x ) / τ ) ≈ exp ⁡ ( p L M ( y ∣ c ∘ x ) / τ ) ∑ c ′ ∈ C ′ exp ⁡ ( p L M ( y ∣ c ′ ∘ x ) / τ ) (4) p_{LSR}(c|x,y) = \frac{\exp(p_{LM}(y|c\circ x)/\tau)}{\sum_{c^\prime \in \mathcal C} \exp(p_{LM}(y|c^\prime \circ x)/\tau)} \approx \frac{\exp(p_{LM}(y|c\circ x)/\tau)}{\sum_{c^\prime \in \mathcal C^\prime} \exp(p_{LM}(y|c^\prime \circ x)/\tau)} \tag 4 pLSR(cx,y)=cCexp(pLM(ycx)/τ)exp(pLM(ycx)/τ)cCexp(pLM(ycx)/τ)exp(pLM(ycx)/τ)(4)
其中 τ \tau τ是一个温度参数; C ′ ∈ C \mathcal C^\prime \in \mathcal C CC表示 x x x的top-k检索片段。更高的LSR分数表明 c c c在提高语言模型预测正确答案的概率方面更有效。LSR训练的目标是让检索器为能够提高LLM生成正确答案的可能性更高的片段分配更高的分数。

为了实现这一点,我们最小化了 p L S R p_{LSR} pLSR与公式2中定义的检索器分数 p R p_R pR之间的KL散度:
L ( D R ) = E ( x , y ) ∈ D R K L ( p R ( c ∣ x )   ∣ ∣   p L S R ( c ∣ x , y ) ) ) (5) \mathcal L(\mathcal D_R) = \Bbb E_{(x,y) \in \mathcal D_R} KL(p_R(c|x) \,||\, p_{LSR}(c|x,y) )) \tag 5 L(DR)=E(x,y)DRKL(pR(cx)∣∣pLSR(cx,y)))(5)
在实践中,只更新检索器的查询编码器,因为微调两个编码器会损害性能。

结论

本文提出了一种轻量级的检索增强双指令微调框架 RA-DIT,它可以有效地为任何预训练的 LLM 添加检索能力。RA-DIT 通过检索增强指令微调更新 LLM,以更好地利用检索到的知识并忽略无关或干扰信息。它还通过来自 LLM 的监督对检索器进行微调,以检索能够更好地帮助 LLM 生成正确输出的文本。

总结

⭐ 作者提出了一种检索增强微调的方法,为语言模型和检索器进行微调。引导LLM最佳地利用检索到的信息并忽略干扰内容。


http://www.kler.cn/news/361020.html

相关文章:

  • Golang | Leetcode Golang题解之第497题非重叠矩形中的随机点
  • Python程序设计 内置函数 日志模块
  • eIQ笔记(UI介绍+Loss曲线+OpenART例程)
  • linux更改系统时间
  • 基于基于MATLAB红外和可见光图像融合算法研究
  • 【分布式微服务云原生】《微服务架构下的服务治理探秘》
  • 从外行人的角度解释1Bit的模型,是怎样改变世界的
  • Qt编写的modbus模拟器/支持网络和串口以及websocket/支持网络rtu
  • Standard_Matrix
  • 异步优化看板查询接口,从29s优化至2.8s
  • 如何自定义一个自己的 Spring Boot Starter 组件(从入门到实践)
  • Tcp协议讲解与守护进程
  • 第二十八篇:TCP协议概述,TCP系列二
  • 华为OD机试2024年真题(基站维修工程师)
  • 【二】企业级JavaScript开发之代码编辑器
  • Vue day06(路由进阶)
  • Segment Routing IPv6简介
  • 《保护你的网站:多维度防护策略分析》
  • AcWing 11 背包问题求方案数
  • 2024第四届中国RPA+AI开发者大赛圆满收官获奖名单公示