|ACL2020| 模型压缩25倍,MIT韩松组提出高效适配不同硬件的HAT模型( 二 )
本文插图
图 1:HAT 为每个硬件设计一个高效专用网路 。
研究背景
在 Transformer 的性能测试中 , 研究者发现了两个常见且重要的陷阱:
第一 , 计算量(FLOPs)不能反映真正的运行时间 。 例如 , 在下图中 , 圈出的两个模型具有相同的计算量 , 但是不同的隐藏层大小和层数 , 导致了两个模型的运行时间有 5 倍的差距 。
本文插图
图 2:计算量(FLOPs)不能反映真正的运行时间 。
第二 , 不同的硬件需要有不同的高效模型设计策略 。 例如 , 在下图中 , 隐藏层的大小显著地影响树莓派的运行时间 , 但是对 GPU 的运行时间几乎没有影响 。
基于以上两点 , 研究者提出将硬件运行时间反馈到模型设计中来 , 并且为每个硬件平台设计一个专用 Transformer 架构 。
本文插图
图 3:不同的硬件需要有不同的高效模型设计策略 。
Hardware-Aware Transformers
搜索空间
通过打破传统 Transformer 设计的两个陈规 , 作者们构建了一个很大的搜索空间 。
1. 任意编码器 - 解码器注意力(Arbitrary Encoder-Decoder Attention)
不同的编码器层抽取不同抽象层的输入信息 , 在基线 Transformer 中 , 所有的解码层都必须以编码器的最后一层作为输入 。 这使得编码器和解码器之间形成了一个信息瓶颈 , 并强制所有的解码层只从高度抽象层解码信息而忽略了低层信息 , 对小模型设计不友好 。
研究者提出 “任意编码器 - 解码器注意力” 来打破信息瓶颈 , 并且学出编码器和解码器之间最合适的连接关系 。 每一个解码器层可以注意(attend)到任意且多个编码器层 。 从多个编码器层输出的 Key 和 Value 向量在句子长度的维度上进行拼接 , 并且被送到解码器中的“交叉注意力”(Cross-Attention)模块 。 因为这个机制没有引入多余的参数量 , 所以没有多余的内存开销 。 另外 , 它对运行时间的影响也几乎可以忽略 。 例如 , 当每个解码器层都注意两个编码器层时 , Transformer-Big 模型在 GPU 上的运行时间仅仅升高了 0.4% 。
本文插图
图 4: 任意编码器 - 解码器注意力 。
2. 异构层(Heterogeneous Layers)
传统的 Transformer 对所有的层重复同样的网络结构 。 在 HAT 中 , 所有的层都可以有不同的结构 , 例如不同的头数(Head Number) , 隐藏层维度(Hidden Dim) , 词向量长度(Embedding Dim)等等 。 在注意力机制层中 , Voita et al. (2019) 提出很多头是多余的 , 因此 , 研究者让头的数量成为弹性变化的(Elastic) , 每一层可以自行决定必要的头数 。 在 FFN 层中 , 输入特征向量被投射到一个更大的维度上(隐藏层维度)并被非线性函数激活 。 传统上 , 隐藏层维度的大小是词向量长度的 2 倍或者 4 倍 。 但是 , 因为每层需要的参数量会因抽取特征难度的不同而不同 , 所以固定的 2 倍或 4 倍是不合理的 。 因此在 HAT 中隐藏层维度也是弹性的 。 HAT 也支持弹性词向量长度 , 但要注意的是 , 编码器和解码器的词向量长度可以不同 , 但是在编 / 解码器内部的层之间 , 词向量长度保持一致 。 另外 , 编码器和解码器的层数也是弹性的 。
本文插图
图 5: 异构层 。
推荐阅读
- 中年|Carnot研发新型空气压缩机:噪音更低 寿命更长 成本更低
- 模型|REVIT技巧!如何创建能量模型,实现能量优化
- 技术编程|后台权限管理设计思路:三种模型分析
- |Carnot 研发新型空气压缩机:噪音更低 寿命更长
- 中年|Carnot研发新型空气压缩机:噪音更低 寿命更长
- AI人工智能|OpenAI新模型曝光:给它半张图片,能够猜测补全
- DeepTech深科技|OpenAI新模型曝光:给它半张图片,能够猜测补全
- |一套帮助你成长的思维模型
- 中年|8.6M超轻量中英文OCR模型开源,训练部署一条龙 | Demo可玩
- |1种策略控制多种模型,华人学生提出RL泛化方法,LeCun认可转发
