您当前的位置:中国IT时代网>资讯>正文

TinyBERT模型小7倍速度快8倍华中科大华为出品

时间:2019-09-30 18:49:06  阅读:941+ 作者:责任编辑NO。姜敏0568

机器之心报导

参加:张倩、杜伟

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:不同映射战略的比照成果。

本文为机器之心报导,转载请联络本大众号取得授权。

------------------------------------------------

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!