作者 | kaiyuan   整理 | NewBeeNLP

一篇来自ICLR2020,facebook人工智能实验室的论文,关于改进Transformer推理速度的。论文地址:https://arxiv.org/abs/1910.10073

写在前面

大模型在困难任务上表现非常好,而小模型也可以在比较简单的任务上表现出色。但是目前大模型在应用简单任务时的运算量同复杂任务一样,这就导致了不必要的资源浪费,此外还会导致推理速度变慢。对此,提出了一种depth-adaptive transformer,可以在推理阶段针对不同的token自动选择在合适的层进行停止并输出,在不损失模型效果的同时大大提高推理速度。

Anytime Prediction

传统的transformer decoder,所有的token都需要经过N个block,且最后的分类器是唯一的。但是一些简单的任务并不需要推理如此多步,可能在第 层模型已经得出结果了,再往上走并没有意义,于是可以选择在第 层就输出,这称为「动态计算(Dynamic Computation)」,

并且,每一层的分类器 可以选择不同或者相同。接下去就是怎么去实现上面的想法,即对于每个输入token,如何自动确定其在哪一层退出?文中提出了两种策略:

Aligned training

对齐训练会同时优化所有分类器,并假设当前状态之前的所有状态 均可以被看见,然后计算 项loss,如下图(a)

其中, 是第 层所有 损失和, 是 的加权平均(论文附录A实验说明平均加权的效果最好)。

Mixed training

但是上述对齐训练是不好实现的,因为不是所有token都在同一层输出,那么当有的token在较早的层输出后,在后续层计算时就无法看见它。解决这个问题一个直观的想法就是将已经输出的单元直接copy到上面一层即可,如下图(b)。对输入序列采样 个退出序列 ,并对每个退出序列计算损失,

Adaptive Depth Estimation

自适应深度估计。上文还有一个问题待解决:如何采样退出序列?提出了两种策略:「sequence-specific」:对应于aligned training,所有token都在同一层退出;

「token-specific」:对应于mixed training,每个token可能在不同的层退出;

表示第 步对应的退出层参数分布,其中 表示 在第 层退出并得到预测 的概率, 表示真实分布,使用下式优化:

总体的损失函数为:

Sequence-Specific Depth

在该种模式下,所有token都在同一层退出,所以我们不考虑time-step 。通过将encoder输出的平均值 送到多项式分类器,我们得到分布 :

接下来怎么得到真实分布 呢?本文提出了两种策略:「Likelihood-based」:基于每个块之后整个序列的似然性,并且以Dirac delta为中心对退出进行了优化,从而使序列似然性最高,

并且还可以加入正则项鼓励更低的退出层「Correctness-based」:基于似然的方式无法判断最大的似然是不是正确的序列,因此基于正确性的方式选择正确字符最大分数的最低的层。具体来说,对每个层,我们计算在该层上所有正确预测的字符数,然后选择最大正确数的一层,并同样加上正则项:

Token-Specific Depth

基于token的方式对每个token自动学习在哪一层退出,提出两种exit distribution 的计算方式:「Multinomial」:多项分布, 表示第一层decoder的输出「Poisson Binomial」:泊松二项分布, 表示停止概率(halting probability),其对应有一个阈值 ,当 超过这个阈值时即退出否则继续往上走直至结束

接下去也是对真实分布的计算,提出了三种策略:「Likelihood-based」:基于似然的方式在每一步选择似然最大的层退出,

但是显然,这种方法是贪心做法,我们还想要考虑未来的字符,所以本文考虑一个光滑化(smoothed)似然,它考虑附近的几个字符:「Correctness-based」:基于正确性的方式,「Confidence thresholding」:基于自信度阈值,定义了一个自信度阈值 ,当当前输出 的最大得分超过阈值时,即选择退出。其中 是通过验证集确定的。

上述几种方法的示意图:

一些结论Aligned training效果要优于Mixed training;

用对齐训练方法得到的模型,在 的时候,差不多就能超过baseline模型(传统Transformer),而Possion方法大体上比多项分布好;

更多更详细的实验分析推荐阅读reference里的作者PPT分享;

整体感觉和之前介绍过的Universal Transformer很像,都是采用dynamic computation的思想。但是很多细节还是不同,比如没有大型共享的Transformer层,并且本文主要关注动态停止策略设计等等:There are a number of differences to universal transformer (UT): UT repeatedly applies the same layer for a number of steps, while as our approach applies different layers at every step. The dynamic computation in UT considers a single type of mechanism to estimate the number of steps (=network depth) while as we consider a number of mechanisms and supervision regimes. Moreover, dynamic computation was not actually used for the machine translation experiments in the UT paper (it was used for other tasks though), the authors used a fixed number of steps for every input instead.Open Review[1]DAT作者PPT分享[2]

本文参考资料[1]

Open Review: https://openreview.net/forum?id=SJg7KhVKPH[2]

DAT作者PPT分享: http://elbayadm.github.io/assets/talks/anytime/decore_04102019.pdf

transformer论文解读_【论文解读】ICLR2020 | 深度自适应Transformer相关推荐

  1. 【论文解读】ICLR2020 | 深度自适应Transformer

    作者 | kaiyuan   整理 | NewBeeNLP 一篇来自ICLR2020,facebook人工智能实验室的论文,关于改进Transformer推理速度的. 论文地址:https://arx ...

  2. ccf论文分级_论文等级如何划分

    论文等级如何划分?可能很多没有发表过论文的作者对这个问题不是很清楚,很多作者首先想到的是省级论文.国家级论文.核心级论文,这种划分是按照我们的习惯进行的划分,其实并不算很科学,学术界有权威的论文级别划 ...

  3. dnn解读_论文学习+解读1--受优化算法启发的DNN网络设计

    今天学习论文:[Optimization Algorithm Inspired Deep Neural Network Structure Design]https://zhouchenlin.git ...

  4. vins 解读_代码解读 | VINS 视觉前端

    AI 人工智能 代码解读 | VINS 视觉前端 本文作者是计算机视觉life公众号成员蔡量力,由于格式问题部分内容显示可能有问题,更好的阅读体验,请查看原文链接:代码解读 | VINS 视觉前端 v ...

  5. python 论文写作_论文编辑神器Sublime Text,让论文写作过程事半功倍

    经常有小伙伴询问我们:我的论文是用LaTeX写的,你们能进行润色编辑吗? 今天我们就来告诉大家,咱们各学科编辑专家里也都是卧虎藏龙,LaTeX对于他们来说也是常用工具之一,今天我们就带来一篇咱们华人翻 ...

  6. 论文翻译_论文翻译的注意事项有什么?

    针对不同题材的文稿有不同的翻译标准,论文翻译是比较严谨的一种翻译类型,下面小编给大家分享论文翻译的注意事项有什么? 注意"从一而终" 所有的论文,在权威平台上发布的时候都必须译为英 ...

  7. python自动修改论文格式_论文格式自动修改

    分享 关于硕士毕业论文自动生成目录和参考文献上标的一些小技巧 2009-10- 22 00:18 | ( 分类 : 默认分类 ) 关于硕士毕业论文自动生成目录和参考文献上标的一些小技巧 毕业论文不同于 ...

  8. matlab 毕业论文题目,与matlab相关主题论文_基于matlab的论文题目_论文翻译器

    学年论文"xxx问题的数值算法与Matlab实现",写什么问题好呢,请高手帮忙! 写偏微分方程类,或者统计类的问题方便些.数值算法一般没问题,Matlab实现就要求有比较好的例子了 ...

  9. 音乐与计算机摘要,音乐教育论文摘要_论文摘要_论文摘要范例

    根据幼教专业,写一篇关于理想的论文!1500字! 幼师:在人的一生中,幼儿期是最重要的阶段,而幼儿期的音乐教育对人的成长有着极其重要的作用.目前在幼儿音乐教育中,幼师的教育教学水平,已不适应现代教育理 ...

最新文章

  1. 彩云国物语片头曲_はじまりの風
  2. Flink中的状态与容错
  3. MongoDB中如何优雅地删除大量数据
  4. linux 内存 段,Linux内存储器管理之分段机制
  5. 推荐系统的封闭和禁锢问题
  6. Lucence.Net学习+盘古分词
  7. 大数据开发:剖析Hadoop和Spark的Shuffle过程差异
  8. linux下eclipse找不到插件位置,Linux 下安装Eclipse时所遇到的问题
  9. matlab在伪随机码,MATLAB在伪随机码的生成及仿真中的应用
  10. 什么是MySQL视图
  11. 【Android UI设计与开发】第04期:引导界面(四)仿人人网V5.9.2最新版引导界面...
  12. 自旋锁原理及java自旋锁
  13. vue 前端导出xlsx文件
  14. c#运用——简体字转繁体字
  15. 华为荣耀启动“二级火箭”战略,加速向线下突进
  16. PhysX FluidMark发布 支持多核心处理器
  17. buu-misc刷题
  18. python dll_python3.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  19. 【PTA题目】7-1 计算摄氏温度 (5 分)
  20. 13/6/21 Hella Intern Interview

热门文章

  1. android oneshot自动播放bug,移动端常见bug汇总001
  2. java编程50_java经典50编程题(1-10)
  3. 机器学习系统:设计与实现 计算图
  4. html计算x的y,HTML5画布:旋转时计算x,y点
  5. lisp 标记形心_标记-整理算法
  6. nova8pro能升级鸿蒙吗,华为将有48款产品可以升级到鸿蒙 2.0系统
  7. spark算子_Spark篇之持久化算子
  8. python中dlib库_python 基于dlib库的人脸检测的实现
  9. LaTeX:equation, aligned 书写公式换行,顶部对齐
  10. LDAP命令介绍---dsreplication--initialize