|亚马逊:我们提取了BERT的一个最优子架构,CPU速度升7倍( 二 )


de Wynter (2020b) 表明 ,对于任意架构而言 , 这都是一个 NP-Hard 问题 。 de Wynter (2020b) 中的 FPTAS 是一种近似算法 , 该算法依赖于对 i(·)、p(·) 和 e(·, ·) 代理函数的优化 , 这三个代理函数分别表示为 i?(·)、p?(·) 和 e?(·, ·) 。 执行过程中将它们表示为 Ξ 的函数 , 并通过选择一个参数最多、推理时间最长的架构 T∈B(T 被称为极大点 , maximum point)和 W - 系数指标对它们进行标量化处理 , 具体如下公式 2 所示:
|亚马逊:我们提取了BERT的一个最优子架构,CPU速度升7倍
本文插图

求取 i(·) 和 p(·) 的代理相对简单 , 事实上 , 的代理必须通过损失函数来获得 。 同样地 , 保证运行时和可逼近性依赖于两个额外的输入参数:选定的最大训练步数量 n > 0 , 预期间隔大小 1 ≤ ≤ |Ξ| 。 ? 的的选择直接影响该近似算法求得解的质量 。
用知识蒸馏进行预训练
尽管 FPTAS 能够确保我们获得描述最优子架构的架构参数集 , 但如何高效预训练参数化模型仍是一个待解决问题 。
根据以往的研究(详见论文第二章)可以得出结论 , 使用知识蒸馏(KD)来预训练上述语言模型可以在前述评估指标上达到良好的性能 。 鉴于代理误差函数 e?(·, ·) 是关于极大点的交叉熵 , 因此将上述评估通过 KD 进行扩展是很自然的事情 。
该研究还比较了 Bort 架构的自监督预训练和基于 KD 的预训练 , 发现与另一种方法相比 , 使用学生模型的最后一层和教师模型之间的一个简单交叉熵就足以找到一个优秀模型 , 该模型可以获得更高的遮蔽语言模型(MLM)准确率和更快的预训练速度 。
评估
为了验证在经过最佳子架构提取过程之后 , Bort 是否保留了 BERT 和 RoBERTa 的强大泛化性能 , 研究者在 GLUE、SuperGLUE 基准以及 RACE 数据集上微调了 Bort 。 结果表明 , Bort 比其他类似 BERT 的压缩模型要好得多 , 在多个任务上的性能都大大优于其他模型 。
GLUE
GLUE(Generalized Language Evaluation benchmark)包含一组常见的自然语言任务 。 主要是侧重于自然语言推理(NLI) , 它由十个数据集组成 。
研究者通过在所有任务中添加单层线性分类器来微调 Bort , 但 CoLA 除外 。 在 CoLA 中 , 研究者发现在 Bort 和分类器之间添加额外的线性层可以提高收敛速度 。 研究者使用 Agora 对所有任务进行了微调 。
结果如表 4.15 所示 。 除了 QQP 和 QNLI 以外 , Bort 几乎在所有任务上表现优异 , 它的性能比其他基于 BERT 的同等模型要好得多 。 相比于 BERT-large , Bort 的性能提高了 0.3%-31% 。 研究者将这种提升归功于 Agora 的微调 , 因为它允许模型更好地学习每个任务的目标分布 。
|亚马逊:我们提取了BERT的一个最优子架构,CPU速度升7倍
本文插图

SuperGLUE
SuperGLUE 包含一组常见的自然语言任务 , 它由十个数据集组成 。
研究者通过添加单层线性分类器来微调 Bort , 并在所有任务中运行 Agora 至收敛 。 结果如表 5 所示:Bort 在除了 ReCoRD 以外的所有任务中获得了超越或媲美 BERT-large 的结果 。
|亚马逊:我们提取了BERT的一个最优子架构,CPU速度升7倍
本文插图

RACE
RACE 数据集是一个文本阅读的多项选择题数据集 , 经过专业注释 , 被分成两个数据集:RACE-H(从高中考试题目中提取的数据集)和 RACE-M(从初中考试题目中提取的数据集) 。
与之前实验一样 , 研究者通过添加单层线性分类器来微调 Bort , 并运行 Agora 进行收敛 。
结果如表 6 所示 。 总体而言 , Bort 获得了良好的结果 , 在两个任务上都比 BERT-large 的性能高出 9-10% 。


推荐阅读