大语言模型-RetroMAE-检索预训练模型

一、背景信息:

RetroMAE是2022年10月由北邮和华为提出的一种密集检索预训练策略。

RetroMAE主要应用于检索模型的预训练,模型架构为非对称的Encoder-Decode结构。

二、整体结构:

RetroMAE的模型架构为非对称的Encoder-Decode结构。

Encoder部分: 是由类似于BERT的Encoder组成(12层Transformer的Encoder),用于生成句向量。
Decoder部分: 仅有由一层类似于Transformer的Decoder构成,用于重建句子。

bash 复制代码
1、token级别的预训练:比如MLM或者Seq2Seq,难以获得高质量句向量。
2、对比学习:受限于数据增强的质量,需要大量负样本。
3、自重建方法:不受数据增强跟负样本采样策略的影响,但对对编码质量要求高,训练数据也要求被充分利用到。

RetroMAE中的掩码

在Encoder阶段,对sentence进行15%~30%的mask,通过Encoder得到句子向量的表示(这里用Encoder的[CLS] token表示)。

在Decoder阶段,句子被进一步加大噪音,mask的比例为50%~70%,通过增加mask的比例来提升任务的复杂性。

而整个预训练的任务则为:在encoder阶段,对被掩码的部分进行重构,也就是MLM(Masked Language Modeling),在decoder阶段对整个句子进行重构,整体loss函数为:

三、Encoder模块

假设,句子输入为X;Encoder部分随机mask(15%~30%)后为 X ~ e n c \tilde{X} {enc} X~enc;Encoder编码器用 Φ e n c ( ) \Phi{enc}() Φenc()表示。

因此经过Encoder后得到的句子向量: h X ~ ← Φ e n c ( X ~ e n c ) {h} {\tilde{X}} \gets \Phi{enc}(\tilde{X} _{enc}) hX~←Φenc(X~enc)

四、Decoder模块

相比于Transformer中的Decoder结构,RetroMAE做了一些改进,并将其称为Enhanced-Decoder。

Enhanced-Decoder的核心想法,为以下两点:

  • 可以从输入数据中获取更多信息
  • 可以根据不同来源的数据训练模型

因此,Enhanced-Decoder在attention模块同时使用了两个输入流 H 1 、 H 2 H_{1}、H_{2} H1、H2;输入流 H 1 H_{1} H1保留了较多输入数据的信息。
H 1 ← [ h X ~ + p 0 , . . . , h X ~ + p N ] H 2 ← [ h X ~ , e x 1 + p 0 , . . . , e x N + p N ] \begin{matrix} H_{1} \gets [h_{\tilde{X}}+p_{0},...,h_{\tilde{X}}+p_{N}] \\H_{2} \gets [h_{\tilde{X}}, e_{x_{1}}+p_{0},...,e_{x_{N}}+p_{N}] \end{matrix} H1←[hX~+p0,...,hX~+pN]H2←[hX~,ex1+p0,...,exN+pN]

其中,句子输入为X;Decoder部分随机mask(50%~70%)后为 X ~ d e c \tilde{X} {dec} X~dec; e x i e{x_{i}} exi表示没有掩码过的词向量; p i p_{i} pi表示对应的位置向量;

此外,因为Transformer中的attention的掩码矩阵是一个的下三角矩阵优势在于增强模型生成能力,而检索通常更关注于模型的表示能力需要看到上下文,因此这里引入了Position-Specific Attention Mask。

继而Enhanced-Decoder的attention层为以下形式:

Q = H 1 W Q Q = H_{1}W_{Q} Q=H1WQ , K = H 2 W K K=H_{2}W_{K} K=H2WK , V = H 2 W V V=H_{2}W_{V} V=H2WV

M i j = { 0 , a t t e n d e d − ∞ , m a s k e d M_{ij}=\left\{\begin{matrix}0,attended \\-∞,masked \end{matrix}\right. Mij={0,attended−∞,masked

A = s o f t m a x ( Q T K d + M ) V A = softmax(\frac{Q^{T}K}{\sqrt{d}}+M) V A=softmax(d QTK+M)V

最终RetroMAE的损失由encoder部分的MLM损失,deocder部分自重建的交叉熵损失两部分相加得到。
L d e c = ∑ x i ∈ X C E ( X i ∣ Φ d e c ( X ~ d e c ) ) L_{dec} = \sum_{x_{i}\in X}^{} CE(X_{i}| \Phi_{dec}(\tilde{X} {dec})) Ldec=∑xi∈XCE(Xi∣Φdec(X~dec))
L = L e n c + L d e c L = L
{enc}+L_{dec} L=Lenc+Ldec

其中, L e n c L_{enc} Lenc为由encoder部分的损失, L d e c L_{dec} Ldec为由deocder部分的损失,CE为交叉熵损失函数。

Reference

RetroMAE: Pre-Training Retrieval-oriented Language Models Via Masked Auto-Encoder

相关推荐
xixixi777773 分钟前
英伟达Agent专用全模态模型出击,仿冒AI智能体泛滥成灾,《AI伦理安全指引》即将落地——AI治理迎来“技术-风险-规范”三重奏
人工智能·5g·安全·ai·大模型·英伟达·智能体
直奔標竿5 分钟前
Java开发者AI转型第二十六课!Spring AI 个人知识库实战(五)——联网搜索增强实战
java·开发语言·人工智能·spring boot·后端·spring
数据皮皮侠AI8 分钟前
中国城市可再生能源数据集(2005-2021)|顶刊 Sci Data 11 种能源面板
大数据·人工智能·笔记·能源·1024程序员节
G311354227313 分钟前
如何用 QClaw 龙虾做一个规律作息健康助理 Agent
大数据·人工智能·ai·云计算
幂律智能14 分钟前
零售行业合同管理数智化转型解决方案
大数据·人工智能·零售
旺财矿工15 分钟前
零基础搭建 OpenClaw 2.6.6 Win11 本地化运行环境
人工智能·openclaw·小龙虾·龙虾·openclaw安装包
九成宫16 分钟前
动手学深度学习PyTorch版初步安装过程
人工智能·pytorch·深度学习
Traving Yu17 分钟前
Prompt提示词工程
人工智能·prompt
NOCSAH17 分钟前
统好AI CRM功能解析:智能录入与跟进
人工智能
He少年19 分钟前
【AI 辅助编程做设备数据采集:一个真实项目的迭代复盘(OpenSpec 驱动)】
人工智能