[NAS论文][Transformer]HAT: Hardware-Aware Transformers.....

网友投稿 624 2022-05-29

[HAT: Hardware-Aware Transformers for Efficient Natural Language Processing]

论文地址:https://arxiv.org/abs/2005.14187

论文代码:https://github.com/mit-han-lab/hardware-aware-transformers.git

【总览】

1、一个足够的设计空间中使用一个高效的权重共享SuperTransformer进行硬件感知的神经结构搜索[NAS],并发现高性能低延迟模型,消耗的成本比之前的Evolved Transformer少四个数量级

2、在评估Transformer的时候,往往有两个问题,1是FLOPs并不反映测量的latency。虽然在现有很多论文里,FLOPs被用作效率的衡量标准,但是其实在不同硬件下,FLOPs和latency之间并不完全对应,下图可见,同样的FLOPs模型的latency其实可以差很远。2是不同的硬件偏好的模型结构不同。ARM 对于Hidden Dim, Embedding Dim 和 Layer Num都比较敏感下图(a),大致呈线性关系。但是Intel CPU和NVIDIA GPU却基本只和layer num呈线性关系(下图bc),这也本文的动机,为不同的硬件提供他们喜欢的模型架构。

【方法】

为了使得Transformer可以变成超网络,提供可选的op,也就是从Transformer --> superTransformer这个过程,有两点改变:

1、Arbitrary Encoder-Decoder Attention

传统的transformer只从encoder最后一层抽取信息,迫使虽有的解码器只从高抽象层学习,而忽略了低级信息,形成了信息瓶颈。因此,本文对transformer做的第一个改变是允许每个解码器层可以选择多个编码器层,它允许关注不同的抽象级别,从而提高了模型的容量,如下图所示。

2、 Heterogeneous Transformer Layers

传统的 Transformer 对所有的层重复同样的网络结构。在本文中,所以层的结构可以不相同,例如有不同的头数(Head Number),隐藏层维度(Hidden Dim),词向量长度(Embedding Dim)等等( with different numbers of heads, hidden dim, and embedding dim)。

① hidden dim elastic

传统的transformer的hidden dim是embedding dim 的2倍、4倍,但这不是最优的,因为不同的层需要不同的能力,这取决于特征提取的难度

② elastic embedding dim

也支持编码器和解码器的elastic embedding dim,但在编码器/解码器内部是尺度一致的

[NAS论文][Transformer]HAT: Hardware-Aware Transformers.....

③ elastic layers

【superTransformer构建】

因为训练每个架构然后再BLEU上比较不显示,所以,类似于CNN的supernet,这里也构建一个超网络涵盖了所有的子架构,叫做superTransformer,同样的,也采样权重共享的方案。对于 elastic embedding dim,所有子架构(subtransformer)共享最长单词embedding的前端部分和相应的FC层权值。对于elastic FFN dim,前端FC权重共享, Elastic layer numbers共享前几层,对于 elastic head number的注意模块中,全部Q;K;V向量(长度在NAS空间中是固定的 Q; K; V

vector dim fixed as 512)通过划分头部数部分来共享,上述看下图。

superTransformer采用uniformly sample训练。

【如果不是共享前面部分,比如说共享中间部分会怎么样?】

【Evolutionary Search for SubTransformer】

【Result】

结果可以直接看图:,在机器翻译任务上,以transformer-big为基准,在GPU上可以加速2.7倍和1.8倍推理速度在WMT'14 En-De/WMT'14 EN-FR任务上

【结论分析】

1、从搜到的结果来看,GPU的网络搜到的网络偏向于又宽又浅,树莓派的则又窄又深

神经网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Google Docs 介绍
下一篇:并发编程-06线程安全性之可见性 (synchronized + volatile)
相关文章