深度学习笔记之BERT(四)DistilBERT

引言

本节将介绍一种参数、消耗计算资源少的 BERT \text{BERT} BERT改进模型—— DistilBERT \text{DistilBERT} DistilBERT模型。

回顾:BERT模型的弊端

虽然 BERT \text{BERT} BERT性能优秀并且对各类 NLP \text{NLP} NLP下游任务通用,但依然存在一些弊端:

  • RoBERTa \text{RoBERTa} RoBERTa模型中提到过下句预测策略( Next Sentence Prediction,NSP \text{Next Sentence Prediction,NSP} Next Sentence Prediction,NSP)在训练任务过程中表现得并不优秀,并删除了该策略;
  • ALBERT \text{ALBERT} ALBERT模型中也提到过 BERT \text{BERT} BERT模型的参数量过大,从而消耗更多的时间和计算资源

本节就从计算资源开始,介绍一种新的算法模式—— DistilBERT \text{DistilBERT} DistilBERT,一种基于 BERT \text{BERT} BERT的知识蒸馏版本

什么是知识蒸馏

即便是使用预训练好 BERT \text{BERT} BERT模型,我们在使用其执行下游任务时,依然需要消耗相当多的计算资源。例如:想要将一个模型迁移到更小的硬件上,例如手机等移动设备、笔记本电脑,它使用的计算资源、空间占用依然很高,计算效率较差。如果能够得到一个和预训练 BERT \text{BERT} BERT模型相差不大,但模型体量更小,参数更少、运行得更快、占用空间更少的模型,在使用过程中会更加方便。这体现了知识蒸馏的必要性

什么是知识蒸馏 ? ? ? 它是指:基于一个已预训练好的模型作为教师模型,训练一个学生模型模仿教师模型,使学生模型的性能尽可能接近教师模型的过程。后续使用学生模型执行相关下游任务时,由于学生模型的体量更小,从而达到运行更快、占用空间更少的目的。

DistilBERT模型架构

基于上述理念, DistilBERT \text{DistilBERT} DistilBERT的模型架构表示如下:
distilBERT_structure
结合论文中作者的描述观察:
论文链接在文章末尾~

  • 教师模型是一个 BERT-base \text{BERT-base} BERT-base模型 ( param:110 M ) (\text{param:110 M}) (param:110 M),它是由若干相互堆叠的注意力层构成。由于它已经是预训练好的,因而它并不是我们关注的重点;
  • 对学生模型 ( param:66 M ) (\text{param:66 M}) (param:66 M)的设计是:层内维度(神经元数量)与教师模型相同的基础上, Encoder \text{Encoder} Encoder层数量减半,并且在初始化过程中从教师的 Encoder \text{Encoder} Encoder层中每两层中选择一层作为学生对应 Encoder \text{Encoder} Encoder层的初始化
  • 整个 Inference \text{Inference} Inference过程中,教师模型没有参与;只有学生模型在反向传播过程中存在梯度更新。

那么如何实现将有效信息从教师模型蒸馏到学生模型呢 ? ? ? 这意味着模型的训练过程将不同于传统的训练过程,因为训练学生模型的主要目标是模仿教师模型,从而训练策略发生一系列变化。

softmax温度函数

在介绍 DistilBERT \text{DistilBERT} DistilBERT模型策略之前,先介绍一下 Softmax \text{Softmax} Softmax温度函数。它的函数表达式如下所示:
P i = exp ⁡ ( Z i / T ) ∑ j exp ⁡ ( Z j / T ) \mathcal P_i = \frac{\exp (\mathcal Z_i / \mathcal T)}{\sum_{j} \exp (\mathcal Z_j / \mathcal T)} Pi=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静静的喝酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值