FastBert

FastBert:a self-distilling bert with adaptive inference time

摘要

类似Bert的预训练语言模型已经被证明有很好的效果,但是计算昂贵,模型很难加载。Fastbert在微调时使用自适应机制,确保模型性能的前提下,提高效率,根据不同需求,灵活调整速度,同时避免了样本的冗余计算。

1. introduction

在未标注的文本上预训练,标注的样本上进行微调,预训练模型Bert、gpt、xlnet在很多nlp任务上有了很大的效果提升。

  1. 缺点:计算量大、推理速度慢、实用性差
  2. 改进方向:quantinization、weights pruning、knowledge distillation
  3. KD通过减少模型大小获得速度-准确率的平衡,却还是无法应对假日的高峰
  4. 样本有难度等级,复杂模型会过量计算简单样本,简单模型又会在复杂样本上栽跟头
  5. fastBert–the sample-wise adaptive mechanism and the self-distillation mechanism
  6. 能在保证准确率的情况下,有2-11倍的速度提升
  7. 代码
  8. 论文

2. related work

Bert、roberta、t5、uer、k-bert、Albert、pkd-bert、tinybert、distilbert

3. methodology

3.1 model architecture

模型架构
fastbert包含backbone和branches。backbone包含12层的transformer encoder和一个teacher-classifier;branches包含11个student-classifier,每一个都和transformer相连

3.1.1 backbone

backbone包含三部分:embedding层、包含transformer的encoder层、teacher classifier层。
embedding层(word、position、segment embeddings)和encoder层同Bert,teacher classifier层由全连接层(768–128)、self-attention层(128–128)、全连接层(128–128)、softmax层(128–N)

3.1.2 branches

student classifier和teacher classifier有相同的结构,被加到每一个transformer块的输出上,为了解决简单的样本。这些student classifier是为了平衡模型准确率和推理速度的。

3.2 model training

fastbert针对backbone和student classifier有各自的训练,当一个训练的时候,另一个的参数会被冻结。在下游任务中,会有三个训练步骤:backbone 预训练、backbone 微调、student classifier的自适应

3.2.1 pre-training

与Bert的预训练相同。注意:teacher classifier只在推理中用到,所以这个阶段不训练,可以自由加载高质量的预训练模型。

3.2.2 fine-tuning for backbone

对于任何下游任务,微调backbone和teacher classifier,所有的student classifier不参加训练

3.2.3 self-distillation for branch

当backbone被微调结束,teacher classifier的输出 p t p_t pt会作为每一层student classifier p s p_s ps的label,使用KL散度作为差的度量
D K L ( p s , p t ) = ∑ i = 1 N p s ( i ) log ⁡ p s ( i ) p t ( j ) D_{KL}(p_s,p_t) = \sum_{i=1}^Np_s(i)\log\frac {p_s(i)}{p_t(j)} DKL(ps,pt)=i=1Nps(i)logp

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值