这篇paper在去年盲审的时候就读过,这次终于读完了。
FASTER AND JUST AS ACCURATE: A SIMPLE DECOMPOSITION FOR TRANSFORMER MODELS(更快且同样准确:Transformer模型的简单分解)
https://openreview.net/pdf?id=B1gKVeBtDH openreview.netIntroduction
文本的研究基于先前的研究: @张俊林
AI科技大本营:张俊林:BERT和Transformer到底学到了什么 | AI ProCon 2019 zhuanlan.zhihu.com较低的层次倾向于对局部现象建模(如词性、句法范畴),而较高的层次倾向于对依赖于任务的语义现象建模(如词性、句法范畴),可以以很小的效率成本提供加速。
DeFormer引入一个简单的分解预训练的基于转换的模型,在分解的模型中,较低的层独立地处理问题和上下文文本,而较高的层联合地处理它们。假设我们允许n层模型中的k个更低的层独立地处理问题和上下文文本。DeFormer通过k个较低的层离线处理上下文文本,并缓存第k层的输出。在运行时,首先通过模型的k层处理问题,然后从缓存加载第k层的文本表示。这两个第k层表示被作为输入输入到第(k + 1)层,并通过与原始模型相同的更高的层继续进行进一步的处理。
这种方法的一个关键优点是不必重复昂贵的预训练,可以更快的使用任何预训练的基于转换的QA模型。与完整的模型相比,直接微调分解的模型只会带来很小的精度损失,这种准确性上的损失添加了两个类似蒸馏器的辅助损失,使得分解模型与原始模型之间的输出级和层级差异最小化。

Decomposing Transformers for Faster Inference

DeFormer

首先,我们正式定义了包含两段文本( 和
)的配对任务的Transformer的计算。令段
的token嵌入表示为
和
表示为
。完整的输入序列X可以通过连接来自片段
和
的令牌表示形式表示为
。Transformer编码器有n层(表示第i层的
),它们依次转换这个输入:
。我们将从第i层到第j层的一堆层的应用记为
。全变压的输出表示,
和
可表示为:

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

基于转换的QA系统通过一组自我关注层处理输入问题和上下文。因此,将这种分解应用到QA的Transformer中,允许我们独立地处理问题和上下文文本,从而允许我们离线地计算低层的上下文文本表示。通过这种改变,每一下层的运行时复杂度从 降低到
,其中c表示加载缓存表示的代价。
Auxiliary Supervision for DeFormer
DeFormer可以像原来的Transformer一样使用。由于DeFormer保留了大部分原始结构,我们可以使用原始Transformer的预训练权重初始化该模型,并直接对下游任务进行微调。然而,DeFormer在底层的表现形式中丢失了一些信息。上层可以学会在调整的过程中弥补这一点。然而,我们可以更进一步,使用原始的模型行为作为额外的监督来源。
为此,我们首先用一个预先训练好的全Transformer的参数初始化DeFormer的参数,然后对下游的任务进行微调。我们还增加了辅助损失,使DeFormer的预测和它的上层表示更接近全Transformer的预测和相应的层表示。
Knowledge Distillation Loss:我们希望DeFormer的预测分布更接近于全Transformer的预测分布。我们最小化分解后的DeFormer预测分布 与全Transformer预测分布
之间的Kullback-Leibler散度:

Layerwise Representation Similarity Loss : 希望DeFormer的上层表示法更接近于全Transformer的表示法。最小化了分解的DeFormer上层的token表示与整个DeFormer之间的欧氏距离。设 为全Transformer第i层第j个token的表示,
为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 Matching zhuanlan.zhihu.com
参考文献:
1、DeFormer: Decomposing Pre-trained Transformers for Faster Question Answering
https://arxiv.org/pdf/2005.00697.pdf arxiv.org来源:oschina
链接:https://my.oschina.net/u/4360916/blog/4271875