网站开发流程的三个部分,网站开发常用的开发工具,小型人力资源公司注册,网站空间域名一只小狐狸带你解锁炼丹术NLP秘籍作者#xff1a;曹庆庆#xff08;Stony Brook University 在读PhD#xff0c;关注Efficient NLP、QA方向#xff0c;详见awk.ai#xff09;背景BERT、XLNet、RoBERTa等基于Transformer[1]的预训练模型推出后#xff0c;自然语言理解… 一只小狐狸带你解锁炼丹术NLP秘籍作者曹庆庆Stony Brook University 在读PhD关注Efficient NLP、QA方向详见awk.ai背景BERT、XLNet、RoBERTa等基于Transformer[1]的预训练模型推出后自然语言理解任务都获得了大幅提升。问答任务Question AnsweringQA[2]也同样取得了很大的进步。用BERT类模型来做问答或阅读理解任务通常需要将问题和问题相关文档拼接一起作为输入文本然后用自注意力机制对输入文本进行多层交互编码之后用线性分类器判别文档中可能的答案序列。如下图虽然这种片段拼接的输入方式可以让自注意力机制对全部的token进行交互得到的文档表示是问题相关的反之亦然但相关文档往往很长token数量一般可达问题文本的10~20倍[3]这样就造成了大量的计算。在实际场景下考虑到设备的运算速度和内存大小往往会对模型进行压缩比如通过蒸馏distillation小模型、剪枝pruning、量化quantization和低轶近似权重共享等方法。但模型压缩还是会带来一定的精度损失。因此我们思考是不是可以参考双塔模型的结构提前进行一些计算从而提升模型的推理速度如果这种思路可行会有几个很大的优势它不需要大幅修改原来的模型架构也不需要重新预训练可以继续使用标准Transformer初始化目标数据集fine-tune的精调方式还可以叠加模型压缩技术经过不断地尝试我们提出了《DeformerDecomposing Pre-trained Transformers for Faster Question Answering》[4]在小幅修改模型架构且不更换预训练模型的情况下提升推理速度。下面将为大家介绍我们的思考历程。论文链接https://awk.ai/assets/deformer.pdf代码链接https://github.com/StonyBrookNLP/deformerArxiv访问慢的小伙伴也可以在订阅号后台回复关键词【0604】下载论文PDF。模型结构在开篇的介绍中我们指出了QA任务的计算瓶颈主要在于自注意力机制需要交互编码的token太多了。因此我们猜想是否能让文档和问题在编码阶段尽可能地独立这样的话就可以提前将最难计算的文档编码算好只需要实时编码较短的问题文本从而加速整个QA过程。部分研究表明Transformer 的低层lower layers编码主要关注一些局部的语言表层特征词形、语法等等到高层upper layers才开始逐渐编码与下游任务相关的全局语义信息。因此我们猜想至少在模型的某些部分“文档编码能够不依赖于问题”的假设是成立的。 具体来说可以在 Transformer 开始的低层分别对问题和文档各自编码然后再在高层部分拼接问题和文档的表征进行交互编码如图所示为了验证上述猜想我们设计了一个实验测量文档在和不同问题交互时编码的变化程度。下图为各层输出的文档向量和它们中心点cosine距离的方差可以看到对于BERT-Based的QA模型如果编码的文档不变而问题变化模型的低层表征往往变化不大。这意味着并非所有Transformer编码层都需要对整个输入文本的全部token序列进行自注意力交互。因此我们提出Transformer模型的一种变形计算方式称作 DeFormer在前层对文档编码离线计算得到第 层表征问题的第层表征通过实时计算然后拼接问题和文档的表征输入到后面到层。下面这幅图示意了DeFormer的计算过程值得一提的是这种方式在有些QA任务比如SQuAD上有较大的精度损失所以我们添加了两个蒸馏损失项目的是最小化Deformer的高层表征和分类层logits与原始BERT模型的差异这样能控制精度损失在1个点左右。实验这里简要描述下四组关键的实验结果1在三个QA任务上BERT和XLNet采用DeFormer分解后取得了2.7-3.5倍的加速节省内存65.8-72.0%效果损失只有0.6-1.8%。BERT-base在SQuAD上设置能加快推理3.2倍节省内存70%。Deformer results2实测了原模型和DeFormer在三种不同硬件上的推理延迟。DeFormer均达到3倍以上的加速。Deformer speed3消融实验证明,添加的两个蒸馏损失项能起到弥补精度损失的效果。Deformer ablation4测试DeFormer分解的层数对应折线图横轴对推理加速比和性能损失的影响。这个实验在SQuAD上进行且没有使用蒸馏trick。Deformer layers总结这篇文章提主要提出了一种变形的计算方式DeFormer使问题和文档编码在低层独立编码再在高层交互从而使得可以离线计算文档编码来加速QA推理和节省内存。创新之处在于它对原始模型并没有太大修改。部署简单而效果显著。 实验结果表明基于BERT和XLNet的Deformer均能取得很好的表现。笔者推测对其他的Transformer模型应该也同样有效并且其他模型压缩方法和技术应该也可以叠加使用到DeFormer上来进一步加速模型推理。Arxiv访问慢的小伙伴也可以在订阅号后台回复关键词【0604】下载论文PDF。本文收录于原创专辑《卖萌屋自然语言处理》重磅惊喜卖萌屋小可爱们苦心经营的 自然语言处理讨论群 成立三群啦扫描下方二维码后台回复「入群」即可加入。众多顶会审稿人、大厂研究员、知乎大V以及美丽小姐姐划掉????♀️等你来撩噢~手慢无夕小瑶的卖萌屋_关注星标小夕带你解锁AI秘籍订阅号主页下方「撩一下」有惊喜哦可能喜欢卖萌屋原创专辑首发算法镇魂三部曲GPT-3诞生Finetune也不再必要了NLP领域又一核弹ACL2020 | 线上搜索结果大幅提升亚马逊提出对抗式query-doc相关性模型别再蒸馏3层BERT了变矮又能变瘦的DynaBERT了解一下All in Linux一个算法工程师的IDE断奶之路参考文献[1]论文方面可以参考邱老师组的文献综述: Models for Natural Language Processing : A Survey ( https://arxiv.org/abs/2003.08271 )实例代码可以参见 huggingface 的 Transfomer 库[2]严格来说是机器阅读理解即给出问题从相关文章中提取答案一般QA系统还包括检索阶段来找到问题相关的文档[3]比如SQuAD问题平均10个token但文档平均有116个token[4]DeformerDecomposing Pre-trained Transformers for Faster Question Answering: https://awk.ai/assets/deformer.pdf