ACL20 | 让笨重的BERT问答匹配模型变快!

一只小狐狸带你解锁炼丹术&NLP秘籍

作者:曹庆庆(Stony Brook University 在读PhD,关注Efficient NLP、QA方向,详见awk.ai)

背景

BERT、XLNet、RoBERTa等基于Transformer[1]的预训练模型推出后,自然语言理解任务都获得了大幅提升。问答任务(Question Answering,QA)[2]也同样取得了很大的进步。

用BERT类模型来做问答或阅读理解任务,通常需要将问题和问题相关文档拼接一起作为输入文本,然后用自注意力机制对输入文本进行多层交互编码,之后用线性分类器判别文档中可能的答案序列。如下图:

虽然这种片段拼接的输入方式可以让自注意力机制对全部的token进行交互,得到的文档表示是问题相关的(反之亦然),但相关文档往往很长,token数量一般可达问题文本的10~20倍[3],这样就造成了大量的计算。

在实际场景下,考虑到设备的运算速度和内存大小,往往会对模型进行压缩,比如通过蒸馏(distillation)小模型、剪枝(pruning)、量化(quantization)和低轶近似/权重共享等方法。

但模型压缩还是会带来一定的精度损失。因此我们思考,是不是可以参考双塔模型的结构,提前进行一些计算,从而提升模型的推理速度?

如果这种思路可行,会有几个很大的优势:

  1. 它不需要大幅修改原来的模型架构

  2. 也不需要重新预训练,可以继续使用标准Transformer初始化+目标数据集fine-tune的精调方式

  3. 还可以叠加模型压缩技术

经过不断地尝试,我们提出了《Deformer:Decomposing Pre-trained Transformers for Faster Question Answering》[4],在小幅修改模型架构且不更换预训练模型的情况下提升推理速度。下面将为大家介绍我们的思考历程。

论文链接:
https://awk.ai/assets/deformer.pdf

代码链接:
https://github.com/StonyBrookNLP/deformer

Arxiv访问慢的小伙伴也可以在订阅号后台回复关键词【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 results

(2)实测了原模型和DeFormer在三种不同硬件上的推理延迟。DeFormer均达到3倍以上的加速。

Deformer speed

(3)消融实验证明,添加的两个蒸馏损失项能起到弥补精度损失的效果。

Deformer ablation

(4)测试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]

Deformer:Decomposing Pre-trained Transformers for Faster Question Answering: https://awk.ai/assets/deformer.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

POJ 1581 优先队列 priority_queue -- 比赛胜者求解

题目链接:http://poj.org/problem?id1581 题目大意: 给定选手姓名,及答题提交次数(提交正确前,错误一次罚20分),每题的做题时间罚分(未正确作答的不罚分),…

热点事件发现、演化及时间线Timeline、故事线Storyline自动生成

一、热点事件概述 热点事件具有不可预测性,这决定了热点事件往往是一个“事后诸葛亮”的产物,一个热点事件从刚开始出现之时并没有带有成为热点的性质,当然,重大事故或者突发事件(如总统被杀、日本地震、印尼海啸、巴黎圣母院火灾…

计算机网络安全知识汇总

一、计算机网络面临的安全性威胁计算机网络上的通信面临以下的四种威胁: 截获——从网络上窃听他人的通信内容。 中断——有意中断他人在网络上的通信。 篡改——故意篡改网络上传送的报文。 伪造——伪造信息在网络上传送。截获信息的攻击称为被动攻击&#xff0c…

天猫研发Java团队(4面全题目):并发压测+Mina+事务+集群+秒杀架构

天猫高级Java一面 常见集合类的区别和适用场景 并发容器了解哪些? 如何判断链表是否有环 concurrentHashMap如何实现 集群服务器 如何application 共享 JAVA网络编程中:BIO、NIO、AIO的区别和联系 jvm内存模型jmm 知道的全讲讲 JAVA的垃圾回收&am…

回顾经典,Netflix的推荐系统架构

这篇文章我们回顾一篇经典博客,Netflix官方博客介绍的推荐系统架构,虽然文章发布已有六年, 但是现在回看起来我自己还是蛮惊讶的,因为Netflix的推荐系统架构居然到现在依然是主流。当然,框架中的诸多技术在不断的迭代更…

CNCC 技术论坛 | 知识图谱赋能数字经济

2018中国计算机大会(CNCC2018)将于10月25-27日在杭州国际博览中心(G20会场)举行,大会主题为「大数据推动数字经济」(Big Data Drives the Digital Economy)。10月15日前报名可享优惠&#xff0c…

计算机网络:我把所有计算机网络的基础都汇总到这里了!

原文链接:https://cloud.tencent.com/developer/article/1388529 前言计算机网络基础 该是程序猿需掌握的知识,但往往会被忽略今天,我将献上一份详细 & 清晰的计算机网络基础 学习指南,涵盖 TCP / UDP协议、Http协议、Socket等…

算法--递归--走台阶问题(2种递归+递归改循环)

文章目录递归:注意事项:问题1思路1.递归代码(未考虑重复计算问题)2.循环代码3.递归代码(避免重复计算问题)测试运行时间问题2递归: 一个问题可以分解成若干子问题,且求解思路一样&a…

最新2019 蚂蚁金服4面(Java)面试题

蚂蚁金服Java一面 1 自我介绍和项目 2 Java的内存分区 3 Java对象的回收方式,回收算法。 4 CMS和G1了解么,CMS解决什么问题,说一下回收的过程。 5 CMS回收停顿了几次,为什么要停顿两次。 6 Java栈什么时候会发生内存溢出&…

论文浅尝 | 基于表示学习的大规模知识库规则挖掘

链接:www.ict.griffith.edu.au/zhe/pub/OmranWW18.pdf动机传统的规则挖掘算法因计算量过大等原因无法应用在大规模KG上。为了解决这个问题,本文提出了一种新的规则挖掘模型RLvLR(Rule Learning via LearningRepresentation),通过利用表示学习…

深度学习推荐系统中各类流行的Embedding方法

Embedding技术概览:对其它Embedding技术不熟悉,可以看我的上一篇文章:深度学习推荐系统中各类流行的Embedding方法(上)Graph Embedding简介Word2Vec和其衍生出的Item2Vec类模型是Embedding技术的基础性方法&#xff0c…

超强干货!7个腾讯最常用的用户研究方法

超强干货!7个腾讯最常用的用户研究方法调查知识2017-09-19每天都有互联网产品上市,人们电脑上、手机上的应用在短期之内就可能增增减减换了很多波,最终留下的、那些最经典的产品,都是以好的体验设计取胜。这些产品或许看似很“简单…

算法--递归--汉诺塔问题

文章目录1. 问题分析2. 面试题1. 问题分析 游戏规则:一次只能挪一片;小的只能在大的上面;把所有的从A柱挪到C柱。 递推公式: 上部 n - 1 个 A 到 B;最底下 1 个 A 到 C ;上部 n - 1 个 B 到 C;…

论文浅尝 | 面向跨语言实体对齐的知识图谱与实体描述协同嵌入方法

来源: IJCAI2018链接: https://www.ijcai.org/proceedings/2018/0556.pdf动机近年来,随着多语言知识图谱嵌入(Multilingual KG embedding)的研究,实体的潜在语义表示以及跨语言知识推理等任务均取得一定成效,因此也推动了许多知识驱动的跨语言…

最新阿里聚划算Java 5轮面试题,涵盖GC收集器、多线程锁等

一面 详细的介绍JVM的内存模型结构 JVM最常用的参数配置讲讲 GC垃圾收集算法、GC垃圾收集器有哪些,以及新生代老生代 分别用什么算法 多线程的几种加锁方式详细介绍 实现线程安全的方式?ThreadLocal原理?线程池了解吗说说看?自…

2004-2019十六年热点事件库HistoryHotEventBase项目

HistoryHotEventBase historyhotevent projrct ,which concentrate on the dayily hot event covers the time range from 2004 to 2019, 16 years in total,从2004年至2019年共16年的每日热点事件项目,目标包括构建起从2004年至今共16年的历时热点标题数…

OSI七层模型详解-开放系统互联参考模型详解

原文链接:https://blog.csdn.net/yaopeng_2005/article/details/7064869 OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 。 完成中继功能的节点通常称为中继系…

最新天猫Java3轮面试题目:虚拟机+并发锁+Sql防注入+Zookeeper

天猫一面 自我介绍、项目介绍 Spring拦截器、实现了哪些方法?底层原理 AOP如何配置,底层原理、2种动态代理,aop注解实现,xml定义切面 Bean的作用域,单例模式是否线程安全?恶汉模式是否线程安全&#xff…

NLP中的少样本困境问题探究

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者:JayLou娄杰(NLP算法工程师,信息抽取方向)前言在医疗、金融、法律等领域,高质量的标注数据十分稀缺、昂贵,我们通常面临少样本低资源问题。本文从「文本增强」和…

军事武器知识图谱构建与自动问答项目QAonMilitaryKG

QAonMilitaryKG QAonMilitaryKG,QaSystem based on military knowledge graph that stores in mongodb which is different from the previous one, 基于mongodb存储的军事领域知识图谱问答项目,包括飞行器、太空装备等8大类,100余小类&#…