解读FastBERT《a Self-distilling BERT with Adaptive Inference Time》

https://arxiv.org/pdf/2004.02178.pdf

The code is publicly available at https:// github.com/autoliuweijie/FastBERT.(作者目前还未放)

  

FastBERT的推理过程,每个样本执行的层数根据其复杂性而变化。这说明了一个样本自适应机制。以一批输入(批大小= 4)为例,Transformer0和Student-classifier0将它们的标签推断为概率分布,计算个体的不确定性。低不确定度的案例会立即从批处理中移除,而高不确定度的案例会被发送到下一层进行进一步的推理。

FastBERT要求对骨干和学生分类器分别进行训练。一个模块中的参数总是被冻结,而另一个模块则被训练。对模型进行训练,为后续推理做准备,包括三个步骤:主干预训练、整个主干微调和学生分类器的自蒸馏。

Self-distillation for branch

个人认为这边文章的主要创新点在于Self-distillation for branch(学生分类器的自蒸馏)的处理

通过训练好的知识提取骨干,将其输出作为包含原始嵌入和广义知识的高质量软标签进行提取,用于训练学生分类器。由于学生是相互独立的,他们的预测ps分别与教师的软标签pt进行比较,其差异由式(5)中的kl散度来衡量。

                                   

由于FastBERT中有L- 1个学生分类器,所以用它们的kl散度的总和作为自蒸馏的总损失,公式为(6),

                                   

其中psi为学生分类器i输出的概率分布。

Adaptive inference

通过以上步骤,FastBERT已经准备好以自适应的方式执行推断,这意味着我们可以根据样本的复杂性调整模型中执行的编码层的数量。

在每个Transformer层,我们测量每个样本目前推断是否足够可信,以终止。

给定一个输入序列,用(7)中的归一化熵计算学生分类器输出ps的不确定性:

                                  

其中,ps为输出概率的分布,N为标记类的数量。

利用不确定性的定义,我们提出了一个重要的假设。

假设1。LUHA:不确定度越低,准确度越高。

定义1。速度:区分高不确定度和低不确定度的阈值

不确定性和速度都在0到1之间。自适应推理机制可以描述为:在FastBERT的每一层,对应的学生分类器将用测量的不确定度来预测每个样本的标号。速度不确定的样本将被筛选到早期的输出,速度不确定的样本将被筛选到下一层。直观地说,速度越高,发送到更高层的样本就越少,总体推断速度也就越快,反之亦然。因此,速度可以作为衡量推理准确性和效率的停顿值。

评价:总的来说是一个不错的idea,个人觉得对于简单任务如文本分类效果可能不错,具体还待进一步去验证,感谢作者。

前天刚略拜读,今天就有大神详细的一篇 :FastBERT:又快又稳的推理提速方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值