到场张倩 杜伟

TinyBERT:模子小7倍,速率速8倍,华中科大、华为出品

BERT 等大模子功用强大,但很难安排到算力、内存有限的配备中。为此,来自华中科技大学、华为诺亚方舟实行室的研讨者提出了 TinyBERT,这是一种为基于 transformer 的模子特别计划的常识蒸馏方法,模子大小还不到 BERT 的 1/7,但速率是 BERT 的 9 倍还要众,而且功用没有呈现分明下降。目前,该论文曾经提交板滞进修顶会 ICLR 2020。

论文:https://arxiv.org/abs/1909.10351


自然言语处理(NLP)范畴,BERT 等预教练言语模子极大地晋升了诸众 NLP 义务的功用。可是,这类预教练言语模子一般盘算开销大,内存占用也大,于是很难少许资源告急的配备上有用施行。


为了加速推理速率和低沉模子大小的同时保持准确率,来自华中科技大学和华为诺亚方舟实行室的研讨者提出了一种新颖的 transformer 蒸馏法,这是为基于 transformer 的模子特别计划的常识蒸馏(knowledge distillation,KD)方法。通过这种新的 KD 方法,大型 teacherBERT 模子中编码的大宗常识可以很好地迁移到小型 student TinyBERT 模子中。


另外,研讨者还提出了一种特别用于 TinyBERT 的两段式进修框架,从而区分预教练和针对特定义务的进修阶段施行 transformer 蒸馏。这一框架确保 TinyBERT 可以获取 teacherBERT 的通用常识和针对特定义务的常识。

除了提出新的 transformer 蒸馏法除外,研讨者还提出了一种特别用于 TinyBERT 的两段式进修框架,从而区分预教练和针对特定义务的精细进修阶段施行 transformer 蒸馏。这一框架确保 TinyBERT 可以获取 teacherBERT 的通用和针对特定义务的常识。


实证研讨结果外明,TinyBERT 是有用的, GLUE 基准上完成了与 BERT 相当(下降 3 个百分点)的效果,而且模子大小仅为 BERT 的 13.3%(BERT 是 TinyBERT 的 7.5 倍),推理速率是 BERT 的 9.4 倍。另外,TinyBERT 还分明优于目今的 SOTA 基准方法(BERT-PKD),但参数仅为为后者的 28%,推理时间仅为后者的 31%尊驾。


Transformer 蒸馏


研讨者提出的 Transformer 蒸馏是特别为 Transformer 收集计划的常识蒸馏方法,下图 1 为本文提出的 Transformer 蒸馏方法概览图:

图 1:Transformer 蒸馏概览图。


这篇论文中,student 和 teacher 收集都是通过 Transformer 层构修的。为了外述分明,研讨者详解 TinyBERT 之前阐述了以下题目。


假定 student 模子有 M 个 Transformer 层,teacher 模子有 N 个 Transformer 层,从 teacher 模子中挑选 M 个 Transformer 层用于 Transformer 层蒸馏。n=g(m) 是 student 层到 teacher 层的映照函数,这意味着 student 模子的第 m 层从 teacher 模子的第 n 层开端进修新闻。嵌入层蒸馏和预测层蒸馏也思索进来,将嵌入层的指数设为 0,预测层的指数设为 M+1,而且对应的层映照区分定义为 0 = g(0) 和 N + 1 = g(M + 1)。下文实行部分将议论差别的映照函数对功用的影响。方式上,通过最小化以下目标函数,student 模子可以获取 teacher 模子的常识:


此中 L_layer 是给定模子层(如 Transformer 层或嵌入层)的耗损函数,λ_m 是外征第 m 层蒸馏主要度的超参数。


研讨者提出的 Transformer 层蒸馏包罗基于当心力的蒸馏和基于隐形态的蒸馏,精细可参考上图 1(b)。基于当心力的蒸馏是为了饱励言语常识从 teacherBERT 迁移到 student TinyBERT 模子中。精细而言,student 收集进修怎样拟合 teacher 收集中众头当心力的矩阵,目标函数定义如下:

此中,h 是当心力头数。A_i ∈ R^( l×l) 是与 teacher 或 student 的第 i 个当心力头对应的当心力矩阵。


另外,(非归一化)当心力矩阵 A_i 用作拟合目标,而不是其 softmax 输出的 softmax(A_i),因为实行外明前者的修立呈现更速的收敛速率和更佳的功用。除了基于当心力的蒸馏除外,研讨者还对 Transformer 层输出的常识举行蒸馏处理(精细可参考上图 1(b)),目标函数定义如下:

此中 H^S∈R^l×d'和 H^T∈R^l×d 区分外示 student 和 teacher 收集的隐形态,由方程式 4 盘算取得。标量值 d 和 d'区分外示 teacher 和 student 模子的隐形态,而且 d'一般小于 d,以取得更小的 student 收集。


研讨者还施行了嵌入层的蒸馏,与基于隐形态的蒸馏相似,定义如下:

此中矩阵 E^S 和 H^T 区分外示 student 和 teacher 收集的嵌入。论文中,这两种矩阵的样式与隐形态矩阵相同。矩阵 W_e 外示线性改造,它起到与 W_h 相似的感化。


除了模拟中心层的方法除外,研讨者还应用常识蒸馏来拟合 teacher 模子的预测结果。精细而言,他们对 student 收集 logits 和 teacher 收集 logits 之间的 soft 交叉熵耗损举行惩办:

此中 z^S 和 z^T 区分外示 student 和 teacher 模子预测的 logits 向量,log_softmax() 外示 log 似然,t 外示温度值。实行外明,t=1 时运转精良。


通过以上几个蒸馏目标函数(即方程式 7、8、9 和 10),可以整合 teacher 和 student 收集之间对应层的蒸馏耗损:

实行中,研讨者起首施行的是中心层蒸馏(M ≥ m ≥ 0),其次是预测层蒸馏(m = M + 1)。


两段式进修框架


BERT 的运用一般包罗两个进修阶段:预教练和微调。BERT 预教练阶段学到的大宗常识十分主要,而且迁移的时分也应当包罗内。于是,研讨者提出了一个两段式进修框架,包罗通用蒸馏和特定于义务的蒸馏,如下图 2 所示:

图 2:TinyBERT 的两段式进修图示。


通用蒸馏可以帮帮 student TinyBERT 进修到 teacher BERT 中嵌入的丰厚常识,关于晋升 TinyBERT 的泛化才能至关主要。特定于义务的蒸馏付与 student 模子特定于义务的常识。这种两段式蒸馏可以缩小 teacher 和 student 模子之间的差异。


通用蒸馏


通用蒸馏中,研讨者运用原始 BERT 举措 teacher 模子,而且过错其举行微调,应用大范围文本语料库举措进修数据。通过通用范畴文本上施行 Transformer 蒸馏,他们获取了一个通用 TinyBERT,可以针对卑鄙义务举行微调。然而,因为躲藏/嵌入层大小及层数分明低沉,通用 TinyBERT 的外现不如 BERT。


针对特定义务的蒸馏


研讨者提出通过针对特定义务的蒸馏来取得有逐鹿力的微调 TinyBERT 模子。而蒸馏进程中,他们针对特定义务的增强数据集上(如图 2 所示)从头施行了提出的 Transformer 蒸馏。精细而言,微调的 BERT 用作 teacher 模子,并提出以数据增强方法来扩展针对特定义务的教练集。


另外,上述两个进修阶段是相辅相成的:通用蒸馏为针对特定义务的蒸馏供应精良的初始化,而针对特定义务的蒸馏通过笃志于进修针对特定义务的常识来进一步晋升 TinyBERT 的效果。


实行效果


为了验证 TinyBERT 的效果,研讨者众个义务上将其与其他模子举行了比较。


GLUE 上的实行效果


研讨者 GLUE 基准上评估了 TinyBERT 的功用,结果如下外 2 所示。模子大小和推理时间的服从睹下外 3。

外 2: GLUE 基准上的评估结果。


外 3:基线模子和 TinyBERT 的模子大小和推理时间。层数目不包罗嵌入和预测层。


实行结果外明:1)TinyBERT 所有 GlUE 义务中的外现都优于 BERTSMALL,平均功用晋升了 6.3%,外明本文提出的 KD 进修框架可以有用地晋升小模子卑鄙义务中的功用;2)TinyBERT 分明超越了 KD SOTA 基线(即 BERT-PKD 和 DistillBERT),比 BERT-PKD 跨过 3.9%(睹图 2),但参数只要基线模子的 28%,推理时间只要基线模子的 31% 尊驾(睹图 3);3)与 teacher BERTBASE 比较,TinyBERT 的大小仅为前者的 13.3%,但速率却是前者的 9.4 倍,而且功用耗损不大。4)TinyBERT 与 Distilled BiLSTM_SOFT 模子服从相当, BiLSTM 基线公然的所有义务中均显示出了分明的功用晋升。5)关于具有挑衅性的 CoLA 数据集,所有的蒸馏小模子与 teacher 模子的功用差异都比较大。TinyBERT 与基线模子比较完成了分明的功用晋升,假如应用更深、更宽的模子来捕捉更繁杂的言语新闻,它的功用槐ボ进一步晋升。


模子大小的影响


为了测试模子大小对功用的影响,研讨者几个典范的 GLUE 义务中测试了差别大小 TinyBERT 模子的功用。结果如下外 4 所示:

外 4:晋升宽度、深度之后的 TinyBERT 变体与基线的功用比较结果。


差别进修方法的影响


本文提出的两段式 TinyBERT 进修框架包罗三个要害方法:TD(特定于义务的蒸馏)、GD(通用蒸馏)和 DA(数据蒸馏)。每个进修方法的影响如下外 5 所示:

外 5:差别进修方法的掌握变量研讨。


差别蒸馏目标的影响


研讨者还探究了差别目标对 TinyBERT 进修的影响,结果如下外 6 所示:

外 6:差别蒸馏目标对 TinyBERT 进修的影响。


映照函数对模子功用的影响


研讨者探究了差别映照函数 n = g(m) 关于 TinyBERT 进修的影响,比较结果睹下外 7:

外 7:差别映照计谋的比照结果。
表面华中科技大学华为
4
相关数据
交叉熵技能

交叉熵(Cross Entropy)是Loss函数的一种(也称为耗损函数或价钱函数),用于描画模子预测值与实值的差异大小

收敛技能

数学,盘算机科学和逻辑学中,收敛指的是差别的变换序列有限的时间内抵达一个结论(变换终止),而且得出的结论是独立于抵达它的道径(他们是交融的)。 高深来说,收敛一般是指教练时代抵达的一种形态,即颠末必定次数的迭代之后,教练耗损和验证耗损每次迭代中的改造都十分小或基本没有改造。也便是说,假如采用目今数据举行分外的教练将无法改良模子,模子即抵达收敛形态。深度进修中,耗损值有时会最终下降之前的众次迭代中保持稳定或确实保持稳定,暂时变成收敛的假象。

耗损函数技能

数学优化,统计学,计量经济学,计划表面,板滞进修和盘算神经科学等范畴,耗损函数或资本函数是将一或众个变量的一个事情或值映照为可以直观地外示某种与之相关“资本”的实数的函数。

常识蒸馏技能

Hinton 的义务引入了常识蒸馏压缩框架,即通过遵照“学生-教师”的范式淘汰深度收集的教练量,这种“学生-教师”的范式,即通过软化“教师”的输出而惩办“学生”。为了却束这一点,学生学要教练以预测教师的输出,即实的分类标签。这种方法十分简单,但它同样种种图像分类义务中外现出较好的结果。

引荐作品
暂无评论
暂无评论~