BGE登顶MTEB的神器--RetroMAE|一种基于自动编码的检索模型预训练方法

技术

提纲

1 简介

2 RetroMAE

3 实验‍‍‍

4 总结

参考文献

1 简介

只不过两个星期没打开MTEB榜单,就发现E5已经从第一名跌落到第五,又出现了两种新的句向量方案GTE跟BGE,其中GTE只有英文模型,而且还没发布训练方案,所以先不展开了。  **另一种新方案BGE不仅登顶MTEB榜首,还发布英文跟中文两种模型,很值得前排观摩。**



  **BGE的训练过程分为两阶段,第一阶段是采用RetroMAE方法的预训练过程,第二阶段就是利用对比学习的微调过程,跟之前的方法不同之处在于,微调时会在检索任务中为query单独添加对应的instruction。具体的训练过程可以见https://huggingface.co/BAAI/bge-base-en。在这篇文章主要介绍下BGE预训练过程所采用的RetroMAE方法,该方法出自于于EMNLP2022的文章,是一种基于自动编码的方法,可以为检索模型提供了一个强力的初始化模型。**

picture.image

图1: MTEB榜单(8.12)

2 RetroMAE

  **目前主流的语言模型的预训练任务都是token级别的,比如MLM或者Seq2Seq,但是这种训练任务难以让模型获得一个高质量的基于句子级别的句向量,这限制了语言模型在检索任务上的潜力。** 针对这个弊端,目前有两者针对检索模型的预训练策略,第一种是self-contrastive learning,这种方式往往受限于数据增强的质量,并且需要采用非常庞大数量的的负样本。另一种基于anto-encoding,一种自重建方法,不受数据增强跟负样本采样策略的影响,基于这种方法的模型性能好坏有两个关键因素,其一是重建任务必须要对编码质量有足够的要求,其二是训练数据需要被充分利用到。

picture.image

图2: RetroMAE框架

基于此,  **研究人员提出了RetraoMAE,它包括两个模块,其一是一个类似于BERT的编码器,用于生成句向量,其二是一个一层transformer的解码器,用于重建句子** 。算法具体细节如下

Encoding

picture.image

Decoding

picture.image

在解码器部分采用了及其简单的网络结构跟非常激进的mask比例,从而使得解码任务变得极具挑战性,迫使encoder去生成高质量的句向量才能最终准确地完成原文本重建。

picture.image

图3: RetroMAE预训练工作流 ‍ ‍ ‍

Enhanced Decoding

 **前面提及的解码策略有一种缺陷,就是训练信号只来源于被mask掉的token,而且每个mask掉的token都是基于同一个上下文重建的。于是研究人员提出了一种新的解码方法,Enhanced Decoding,具体做法如下。**



a)首先生成两个不同的输入流H1(query)跟H2(context)

picture.image

b) 通过attention机制得到新的输出A,这里的M是一个mask矩阵,第i个token所能看得到的其他token是通过抽样的方式决定的(当然要确保看不到自身token,而且都要看得见第一个token,也就是encoder所产出CLS句向量的信息)

picture.image

c)最终利用AH1去重建原文本,这里重建的目标不仅仅是被mask掉的token,而是全部token。




 **最终RetroMAE的损失由两部分相加得到,其一是encoder部分的MLM损失,其二是deocder部分自重建的交叉熵损失。**

3 实验‍‍‍‍‍‍‍‍‍‍‍

a) RetroMAE预训练得到的模型的zero-shot性能远超其他模型,验证了这种预训练模型的迁移能力。

picture.image

图4: zero-shot性能对比 ‍ ‍ ‍ ‍

b) 在RetroMAE预训练模型finetune过后在领域数据也表现出色,说明RetroMAE预训练模型可以作为一个强力的检索模型初始化。而基于token级别的预训练任务的像BERT之类的模型在检索任务就不太行,基于自我对比学习的模型则会因为缺乏监督信号从而也表现不佳。

picture.image

图5: finetune性能对比

c) 通过消融实验验证了Enhanced decoding的优越性,以及encoder跟decoder之间最佳的mask比例。只有相对激进的mask比例才能提高这个任务的难度,从而迫使encoder产生高质量的句向量。

picture.image

图6: 消融实验对比 ‍ ‍ ‍

4 总结‍‍‍‍‍‍‍‍‍

  **BGE推出之时也伴随着一个中文的句向量榜单CMTEB,BGE的中文模型位居榜首,在各项指标全方位超过instructor相对应的中文模型m3e,相比m3e,BGE有两个优势,一个是进行了基于RetroMAE的预训练,而m3e是没有做相关的预训练的,另一个是在finetune阶段的语料量级更加庞大。所以BGE的中文模型能居于榜首也是理所当然的。说实话,在目前被对比学习占主流的时代,见到这种基于自重建的预训练方法也有如此出色的表现还是挺让人惊异的,这种预训练方法有更低的数据门槛,更有成为一个强力基底模型的潜力。‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍**

参考文献

RetroMAE: Pre-Training Retrieval-oriented Language Models Via

Masked Auto-Encoder

https://aclanthology.org/2022.emnlp-main.35.pdf

https://github.com/FlagOpen/FlagEmbedding

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论