DeFormer:分解预先训练的Transformers,以更快地回答问题

我的梦境 提交于 2020-05-09 14:22:08

这篇paper在去年盲审的时候就读过,这次终于读完了。

FASTER AND JUST AS ACCURATE: A SIMPLE DECOMPOSITION FOR TRANSFORMER MODELS(更快且同样准确:Transformer模型的简单分解

https://openreview.net/pdf?id=B1gKVeBtDHopenreview.net

Introduction

文本的研究基于先前的研究: @张俊林

AI科技大本营:张俊林:BERT和Transformer到底学到了什么 | AI ProCon 2019zhuanlan.zhihu.com图标

较低的层次倾向于对局部现象建模(如词性、句法范畴),而较高的层次倾向于对依赖于任务的语义现象建模(如词性、句法范畴),可以以很小的效率成本提供加速。

DeFormer引入一个简单的分解预训练的基于转换的模型,在分解的模型中,较低的层独立地处理问题和上下文文本,而较高的层联合地处理它们。假设我们允许n层模型中的k个更低的层独立地处理问题和上下文文本。DeFormer通过k个较低的层离线处理上下文文本,并缓存第k层的输出。在运行时,首先通过模型的k层处理问题,然后从缓存加载第k层的文本表示。这两个第k层表示被作为输入输入到第(k + 1)层,并通过与原始模型相同的更高的层继续进行进一步的处理。

这种方法的一个关键优点是不必重复昂贵的预训练,可以更快的使用任何预训练的基于转换的QA模型。与完整的模型相比,直接微调分解的模型只会带来很小的精度损失,这种准确性上的损失添加了两个类似蒸馏器的辅助损失,使得分解模型与原始模型之间的输出级和层级差异最小化。


原始Transformer采用全自注意编码连接后的问题和通道序列,而DeFormer问题进行编码并在较低的层中独立通过,在较高的层中共同处理。

Decomposing Transformers for Faster Inference

文章表征的标准化方差与不同层次的不同问题相匹配。我们将表示方差定义为从质心到所有表示向量的平均余弦距离。在该图中,对100个段落(每个段落对应5个不同的问题)的方差求平均值,并将其标准化为[0,1]。较低层次的方差越小,说明对问题的依赖程度越低;较高层次的方差越大,说明对问题的依赖程度越高。

DeFormer

将变压器分解到第k层,使每一段从第1层独立编码到第k层。对原模型的上层信息进行辅助监督,进一步帮助分解后的模型弥补下层的信息损失。KD为知识蒸馏损失,LRS为逐层表示相似损失。

首先,我们正式定义了包含两段文本( T_{a}T_{b} )的配对任务的Transformer的计算。令段 T_{a} 的token嵌入表示为 A = [a_1;a_2;…;a_q]T_b 表示为 B = [b_1;b_2;…;b_p] 。完整的输入序列X可以通过连接来自片段 T_aT_b 的令牌表示形式表示为 X = [A;B] 。Transformer编码器有n层(表示第i层的 L_i ),它们依次转换这个输入: X^{l+1} = L_i(X^l) 。我们将从第i层到第j层的一堆层的应用记为 L_{i:j} 。全变压的输出表示, A_nB_n 可表示为:

上图显示了模型的示意图。通过简单地移除 T_{a}T_{b} 表示之间的交叉交互,我们分解了较低层(直到第k层)的计算。这里k是超参数。分解后的Transformer的输出表示, A_nB_n 可以表示为:

基于转换的QA系统通过一组自我关注层处理输入问题和上下文。因此,将这种分解应用到QA的Transformer中,允许我们独立地处理问题和上下文文本,从而允许我们离线地计算低层的上下文文本表示。通过这种改变,每一下层的运行时复杂度从 O((p + q) ^2 ) 降低到 O(q^2 + c) ,其中c表示加载缓存表示的代价。

Auxiliary Supervision for DeFormer

DeFormer可以像原来的Transformer一样使用。由于DeFormer保留了大部分原始结构,我们可以使用原始Transformer的预训练权重初始化该模型,并直接对下游任务进行微调。然而,DeFormer在底层的表现形式中丢失了一些信息。上层可以学会在调整的过程中弥补这一点。然而,我们可以更进一步,使用原始的模型行为作为额外的监督来源。

为此,我们首先用一个预先训练好的全Transformer的参数初始化DeFormer的参数,然后对下游的任务进行微调。我们还增加了辅助损失,使DeFormer的预测和它的上层表示更接近全Transformer的预测和相应的层表示。

Knowledge Distillation Loss:我们希望DeFormer的预测分布更接近于全Transformer的预测分布。我们最小化分解后的DeFormer预测分布 P_A 与全Transformer预测分布 P_B 之间的Kullback-Leibler散度:

Layerwise Representation Similarity Loss : 希望DeFormer的上层表示法更接近于全Transformer的表示法。最小化了分解的DeFormer上层的token表示与整个DeFormer之间的欧氏距离。设 v^j_i 为全Transformer第i层第j个token的表示, u^j_i 为Transformer第i层第j个token的表示。对于每一个上层的k + 1到n,我们计算一个逐层表示相似度(lrs)损失如下:

我们加入了知识蒸馏损失(Lkd)和分层表示相似损失(Llrs)以及任务特定监督损失(Lts),并通过超参数调整来学习它们的相对重要性:

我们使用贝叶斯优化调γ,α和β,而不是简单的测试或网格/随机搜索。这是为了减少步骤的数量,需要找到超参数的组合,接近最佳的。

Implementation Details

对于DeFormer模型,我们使用贝叶斯优化对超参数进行调优,以对不同的损失进行加权,并在原始训练集的10%上进行50次迭代,并报告原始开发集上的性能。3个超参数的搜索范围为[0.1,2.0]。

Results

在三个不同的QA任务和句子对输入任务上评估了BERT和XLNet这两个基于Transformer的变形版本。DeFormer实现了显著的加速(2.7到4.3倍)和内存减少(65.8%到72.9%),而QA的效率损失很小(0.6到1.8点)。分析表明,引入的监督策略提供了有价值的精度改进,进一步的分析表明,DeFormer提供了良好的运行时与精度权衡。

Conclusion

DeFormer在推理速度、内存减少方面提供了实质性的改进,同时保留了原始模型的大部分准确性。该模型的一个关键优点是其架构与原始模型基本相同,这使得我们可以避免重复的预训练,并使用原始模型的权重进行细化。蒸馏技术进一步缩小了与原始模型的性能差距。这个分解模型为有效的QA模型提供了一个简单而强大的起点,因为NLP正在向处理更广泛的上下文的更大的模型发展。

本文也可用于Semantic Matching

sunshubing:Keyword-Attentive Deep Semantic Matchingzhuanlan.zhihu.com图标

参考文献:

1、DeFormer: Decomposing Pre-trained Transformers for Faster Question Answering

https://arxiv.org/pdf/2005.00697.pdfarxiv.org

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!