百度提出动态自蒸馏方法,结合交互模型与双塔模型实现稠密段落检索

0b1c05f7c9ca7c9b6234fe9f803a6fea.gif

©PaperWeekly 原创 · 作者 | Maple小七

单位 | 北京邮电大学

研究方向 | 自然语言处理

7db2a8a487df70b1ce357697efa38a48.jpeg

论文题目:

ERNIE-Search: Bridging Cross-Encoder with Dual-Encoder via Self On-the-fly Distillation for Dense Passage Retrieval

论文链接:

http://arxiv.org/abs/2205.09153

ed37ea8e5dd780b47a779b20f9f77d89.png

Introduction

由无论是在工业界还是学术界,知识蒸馏 (Knowledge Distillation, KD) 都是一个很常见的模型压缩和涨点刷分手段,以 Hinton 范式为代表的传统知识蒸馏通常会假设 teacher 和 student 有着相同的模型结构,其中 teacher 通常有着更多的模型层数和更大的隐层维度。在知识蒸馏的过程中,蒸馏损失的设计通常与任务相关,但其基本思想是最小化 student 和 teacher 预测结果的差异。 

一些早期的针对大规模预训练语言模型的知识蒸馏工作,比如 DistilBERT、TinyBERT 和 MobileBERT,通常会在最小化模型输出结果差异的基础上,加入额外的隐层特征一致性损失注意力分布一致性损失,从而提升 teacher 模型的知识转化率,得到性能更优的 student 模型。 

然而,在针对稠密检索模型的知识蒸馏的相关研究中,虽然目前已经有很多工作尝试过将表达能力更强的交互模型 (Cross-Encoder) 或延迟交互模型 (ColBERT) 蒸馏到推理速度更快的双塔模型 (Dual-Encoder) 中,实验结果也充分证明了知识蒸馏对于双塔模型训练的有效性,但是这些工作均采用的是跨结构知识蒸馏 (cross-architecture paradigm),即 teacher (Cross-Encoder) 和 student (Dual-Encoder) 的模型结构有较大差异。

另外,模型结构的天然差异也导致了目前的工作均采用了仅蒸馏模型顶层 logits 输出的蒸馏损失,而没有考虑蒸馏 teacher 和 student 模型的隐层特征或注意力分布。 

基于此,一个自然的问题是,当 teacher 和 student 的模型结构存在差异时,传统的知识蒸馏的效果是否会打折呢?如果会的话,我们应该如何去设计一个更有效的知识蒸馏范式呢? 

针对这个问题,本文提出了两个面向稠密检索模型的蒸馏策略:交互蒸馏 (Interaction Disitllation) 和级联蒸馏 (Cascade Distillation),如果将这两个蒸馏策略结合起来,就得到了该论文标题中提到的名词:动态自蒸馏 (self on-the-fly distillation)。由于是度厂出品,采用该蒸馏策略的训练得到的模型被命名为 ERNIE-Search,ERNIE-Search 在 MARCO 和 NQ 检索数据集上均取得了 SOTA 性能(虽然没出几天就被超越了)。

5a5f975c39303ff0dc446feda012f591.png

Methodology

在之前的工作中,Cross-Encoder 和 ColBERT 是两类常见的 teacher 模型结构,虽然前者表达能力更强,但由于其计算复杂度过高,人们通常采用样本间无交互的 MSE 或 MarginMSE 损失进行知识蒸馏,

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
模型压缩是一种常用的深度学习模型优化方法,通过减少模型的参数数量和计算复杂度,提高模型的运行效率和泛化能力。其中,知识蒸馏是一种常用的模型压缩方法,其基本思想是将一个大型、复杂的模型的知识传递给一个小型、简单的模型,从而在不损失性能的情况下减少模型的参数数量和计算复杂度。 在知识蒸馏中,主要有三种方法:离线蒸馏、在线蒸馏和自蒸馏。 1. 离线蒸馏 离线蒸馏是一种基于训练好的教师模型,对数据集进行多次训练得到一个学生模型方法。在离线蒸馏中,首先需要训练一个大型、复杂的教师模型,然后将其知识转移到一个小型、简单的学生模型中。通常情况下,教师模型和学生模型具有相同的架构,但教师模型的规模更大,且拥有更高的准确率。 具体实现时,离线蒸馏分为两个阶段:第一阶段是训练教师模型,第二阶段是训练学生模型。在第一阶段中,教师模型通过多次训练来提高准确率和知识丰富性;在第二阶段中,学生模型通过从教师模型中抽取知识来学习。 2. 在线蒸馏 在线蒸馏是指在应用过程中对学生模型进行优化的方法。与离线蒸馏不同,在线蒸馏的目标是在运行过程中减少学生模型的计算负担和内存占用,并尽可能地保持准确率。 具体实现时,在线蒸馏采用动态更新方式,即在学生模型运行过程中,使用教师模型的输出作为监督信号,并使用反向传播算法来更新学生模型。在线蒸馏可以适应数据分布的变化,适用于数据集规模较大或数据分布较为复杂的场景。 3. 自蒸馏蒸馏是指在无教师模型的情况下,通过利用学生模型自身的知识来优化学生模型方法。自蒸馏可以将学生模型进一步压缩,使其具有更小的参数数量和计算复杂度。 具体实现时,自蒸馏利用学生模型自身的输出作为监督信号,并使用反向传播算法来更新学生模型。在训练过程中,学生模型会逐渐学习到自身输出和目标输出之间的差异,并通过不断地微调来提高准确率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值