这篇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
文章表征的标准化方差与不同层次的不同问题相匹配。我们将表示方差定义为从质心到所有表示向量的平均余弦距离。在该图中,对100个段落(每个段落对应5个不同的问题)的方差求平均值,并将其标准化为[0,1]。较低层次的方差越小,说明对问题的依赖程度越低;较高层次的方差越大,说明对问题的依赖程度越高。DeFormer
将变压器分解到第k层,使每一段从第1层独立编码到第k层。对原模型的上层信息进行辅助监督,进一步帮助分解后的模型弥补下层的信息损失。KD为知识蒸馏损失,LRS为逐层表示相似损失。首先,我们正式定义了包含两段文本( 和 )的配对任务的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