更深的编码器+更浅的解码器=更快的自回归模型
论文标题:
Deep Encoder, Shallow Decoder: Reevaluating the Speed-Quality Tradeoff in Machine Translation
论文作者:
Jungo Kasai, Nikolaos Pappas, Hao Peng, James Cross, Noah A. Smith
论文链接:
https://arxiv.org/pdf/2006.10369.pdf
自回归模型一般认为在推理时效率比非自回归模型低得多,但是,简单改进自回归模型编码器和解码器的深度可以使其有更高的“效果-效率”平衡。
本文探究了让Transformer模型的编码器变深,让解码器变浅可以提高推理时的效率,并且丝毫不影响效果。并且,不同的衡量效率的标准也会有所影响。
自回归模型与非自回归模型的效率
自回归模型指在生成文本时,词是一个接一个生成的,所以要生成长度为N的文本,需要经过模型解码器N次。
而非自回归模型则可以一次生成多个甚至所有词,这就减少了经过解码器的次数,从而提高生成的效率。
但是,由于非自回归模型缺乏解码端的依赖性建模,所以一般来说,它们的效果要弱于自回归模型。
过去很多研究都关注设计更好的非自回归模型以提高效果,但鲜有工作研究如何提高自回归模型在推理时的效率。
无论是自回归模型还是非自回归模型,在推理时的效率大都来自于解码端:经过编码器的次数越多,生成同样一句话,效率就越低。
从另一个方面看,如果解码器更小(即层数更少),那么即使是自回归模型,是不是也可以显著提高生成效率呢?
这就是本文要回答的问题:当模型解码器变浅、编码器变深时,模型是否还能在保持原来效果的前提下,提升生成效率。这可以用下面的图表示:
上图是解码器只有一层时的图示,可以看到,由于Transformer模型的解码器每一层都是由三个部分组成,所以多层解码器很显然会降低生成速度。
本文探究了模型效果、效率随编码器和解码器层数变化的情况。
结果发现,对自回归模型而言,令编码器更深、解码器更浅,可以显著提高生成效率且丝毫不影响最终的效果;但对非回归模型而言,更深的解码器则是更好效果的前提。
这个发现启发我们进一步思考自回归模型和非自回归模型如何保持“效果-效率”上的平衡。
计算延时(Latency)的两种方法
在开始实验之前,还需要指出当前比较模型“效率”的方法,即计算延时(Latency)——从数据输入到数据输出经历的时间。
然而,当前也有两种方法计算延时,记为S1和S(max)。S1计算的是生成一个句子所用的平均时间,而S(max)计算的是内存一次所能容纳的最大量句子的平均时间。
对不同的模型而言,这两个标准所得的结果会所有差异,和会在实验部分得到展现。
下面先来从理论上分析自回归和非自回归模型的复杂度。这里非自回归模型采用迭代修改式。
约定N是句子长度(源句子和目标句子都是N),T是非自回归模型的迭代次数,且T < N,E是编码器的层数,D是解码器的层数。下表是不同模型的复杂度:
直接看并行化(w/ parallelization)一列。可以看到,自回归(AT)解码器仍然需要平方级的复杂度,而非自回归模型(NAT)解码器的复杂度仅是O(NT),低于N^2。
在可以并行化的条件下,S1更多地被并行化支配。那么在有D层解码器的情况下,非自回归模型就比自回归模型有显著的复杂度优势(前者是NDT,后者是NND)。
如果二者都只有一层解码器,即D=1,那么二者的复杂度差异就会缩小(前者是NT,后者是NN)。
而S(max)更多和Total Complexity相关,这时候,每个词,无论是自回归还是非自回归,都要和已经生成的词进行计算,非自回归的优势就无法体现。
实验
下面我们重点看一下实验部分,探究解码器深度对两种模型效果、效率以及它们之间平衡的影响。
自回归模型是Transoformer-Base,非自回归模型有CMLM、DisCo。
数据集有WMT14 EN-DE (4.5M pairs), WMT16 EN-RO (610K), WMT17 EN-ZH (20M)和WMT14 ENFR (36M, EN→FR only),而计算效率则用S1和S(max)两种。
首先来看这几个模型在不同编码器深度(E)和解码器深度(D)上的效果和效率,如下图所示:
从图(A)和图(B)来看,加深自回归模型编码器、变浅其解码器可以在不损失效果的情况下获得显著的加速(2x-3x),但是如果不加深编码器只变浅解码器会让效果变差(图中6-1)。
另一方面,对非自回归模型而言,加深编码器变浅解码器也会提高效率,但是同时也会显著降低效果。
从图(C)来看,S(max)的效率评价指标对自回归模型更有利,但是加深编码器变浅解码器后的趋势变化和前两个图是相同的。
下表是详细的结果数据,可以看到,AT Deep-Shallow在效果上和AT没有差别,但是在S1上速度提高了3倍,在S(max)上提高了近2倍。即使是在S1上,改进后的AT模型已经很接近非自回归模型CMLM了。
那么在同样的latency下,进一步增大非自回归模型能否超过AT模型的效果呢?答案是否定的,如下图所示。
下图是以AT 12-1的Latency为基准,考察不同非自回归模型不同深度的编码器的效果(尽可能多地加深解码器以达到Latency约束)。
可以看到,加深编码器可以提高非自回归模型的效果,但是始终不能达到AT 12-1的结果,这也说明了当前非自回归模型在本质上和自回归模型的差异。
另一个问题是,在E+D为常数的情况下,怎样分配E和D才能使得效果最好。结果如下图所示。
对自回归模型而言,当编码器大于4层的时候效果就已经很好了,而对非自回归模型而言,E和D保持平衡可以取得最好的结果。
最后来看看批量大小和效率之间的关系,结果如下图所示。可以看到,当一个batch中句子越多的时候,AT 12-1相比非自回归模型就更有优势,这在我们的第二节已经分析过了,这是因为Batch越大,模型复杂度就和total complexity越接近,因而非自回归模型就相对更慢。
小结
本文详细探究了自回归模型、非自回归模型不同深度的编码器和解码器对最终效果和效率的影响,发现仅用一层解码器和更深的编码器就可以大大提高自回归模型的效率,并且保持效果不变。
同时,本文还比较了两种计算Latency方法对不同模型的影响。如何分配层数、如何更科学地计算延时,都需要进一步讨论和研究。
????
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。
更深的编码器+更浅的解码器=更快的自回归模型相关推荐
- 获取颜色的更深级和更浅级颜色
获取颜色的更深级和更浅级颜色 预览效果: .content div{height: 100px;width: 100px;margin: 10px;float: left;text-align: ce ...
- “非深度网络”12层打败50层,普林斯顿+英特尔:更深不一定更好
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI "深度" ...
- 12层打败50层,ParNet 普林斯顿+英特尔:更深不一定更好
网友实现的: https://github.com/Pritam-N/ParNet/blob/main/parnet.py 2021.11.1,还没代码: https://github.com/ima ...
- 更深更宽的孪生网络,有效提升目标跟踪精度,代码开源
点击我爱计算机视觉标星,更快获取CVML新技术 本文为52CV群友Mr.Chen投稿,深入解读了CVPR 2019 跟踪方向的论文Deeper and Wider Siamese Networks f ...
- 你真的了解爬虫吗?看完你会对网络爬虫有更深更全面的认识
前言 爬虫是门很有意思的技术,可以通过爬虫技术获取一些别人拿不到或者需要付费才能拿到的东西,也可以对大量数据进行自动爬取和保存,减少时间和精力去手动做一些累活. 可以说很多人学编程,不玩点爬虫确实少了 ...
- 图像分类经典卷积神经网络—GoogLeNet论文翻译(中英文对照版)—Going Deeper with Convolutions(走向更深的卷积神经网络)
图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为中英文对照版,纯中文版请稳步:[GoogLeNet纯中文版] Going Deeper with Convolution ...
- 基于更深卷积网络的大规模图像识别
本文是 "VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION" 文章的翻译,第一次读外文文献,不知 ...
- 图像分类经典卷积神经网络—GoogLeNet论文翻译(纯中文版)—Going Deeper with Convolutions(走向更深的卷积神经网络)
图像分类经典论文翻译汇总:[翻译汇总] 翻译pdf文件下载:[下载地址] 此版为纯中文版,中英文对照版请稳步:[GoogLeNet纯中英文对照版] Going Deeper with Convolut ...
- 更深、更轻量级的Transformer!Facebook提出:DeLighT
点击上方"CVer",选择加"星标"置顶 重磅干货,第一时间送达 本文转载自:AI人工智能初学者 DELIGHT: DEEP AND LIGHT-WEIGHT ...
最新文章
- HTML4.0标准语法--字体
- 级联人脸检测--Detecting Faces Using Inside Cascaded Contextual CNN
- SQL Server 执行计划
- 二叉树的遍历(包括递归和非递归方法)
- JSTL1.1函数标签库(functions)如fn:length
- 不同表主键能相等吗_视频 |【搞机实验室】测血氧有啥,你见过能“开车”的表吗?...
- 【工具使用系列】关于 MATLAB 有限元分析,你需要知道的事
- Gym 101102C---Bored Judge(区间最大值)
- mysql 备份配置文件_mySQL配置文件、备份与恢复
- 软件工程博客---团队项目---个人设计2(算法)
- nginx1.10.2源码安装配置参数参考
- 黑色精美Mxone电影先生在线影视网站源码 苹果cmsV10模板
- mysql分组随机取数据_MySql分组后随机获取每组一条数据的操作
- [WCF]终结点与服务寻址(一)
- Android入门笔记12
- Android手机端脚本录制
- 大一计算机知识总结,大学计算机基础超详细知识点(高手总结)免费
- 获取网易云音乐开放接口api的推荐歌单
- 微服务架构的简单实现-Stardust
- 问题分析——Maven打包后发版,静态资源找不到
热门文章
- webstorm如何自动换行_怎样在word中自动生成目录
- Mybatis_映射文件配置
- 【LeetCode】002 Add Two Numbers
- 开源云计算平台 abiCloud
- 2019小程序没必要做了_企业有必要开发微信小程序吗?
- java collection join_java – @ElementCollection @CollectionTable在一对多映射中
- mysql教程 api_Mysql入门系列:MySQL可用的API
- android layout background,Android LinearLayout Gradient Background
- python多进程编程 多个函数并发执行_python并发编程之多进程编程
- nginx location匹配优先级_一分钟搞清楚:Nginx之Location优先级