在我们之前的文章中,我们曾介绍过遗传算法在卷积模型结构搜索和Transformer结构搜索中的应用。如下:
今天我们介绍另外一种更进一步的尝试,即Primer。
Overall
谈到AutoML中的网络结构搜索,我们往往会强调搜索空间,搜索算法,搜索结果的分析等。
Primer, 是PRIMitives searched transfomER的缩写。primitive指的是使用Tensorflow中的原子API来作为搜索空间。
搜索算法则使用Regularized Evolution算法,这点在之前介绍过,传送门在AutoML - 遗传算法与网络结构搜索
搜索结果中,经过分析发现,Primer搜索得到的网络模型对于原始Transformer的改进主要在两个地方:
Squared ReLU
Q,K,V之后加Depthwise Convolution
基于Tensorflow API的搜索空间
在Primer的搜索空间中,只搜索Transformer的stackable decoder block部分,搜索的目标是优化自回归语言模型任务。输入预处理和权重的优化,不在primer的范围之内。
更具体来说,搜索的模型结构块的输入是长度n乘以维度d的矩阵,输出也是。其中最终的输出会被认为是对下一个位置的预测。
如下图所示,Tensorflow的操作会被组织成Instruction和TF Primitives Vocab,然后Primer在搜索的时候会把不同的操作给组合成subprogram,然后再组建模型。组建好的模型可以直接转化为TF的代码。
没有使用TF的eager mode,所以在构建好模型后,build graph的过程中会把对输出没有贡献的节点给去掉。如下图所示:
模型组建会有一些先验知识的使用,比如,在添加卷积的时候,为了保证不看到后面的词语,卷积操作的位置会往前偏移。又比如,为了让搜索算法能生成multi-head attention的结构,引入了branch的概念。
搜索过程
之前的搜索算法往往都关注一个step的训练时间,Primer做了一个改进,即关注总时间而不是单步时间。这样,有些优化虽然单步耗时多,但是样本利用率高,也能更快的进行训练。
搜索过程中的参数配置不在此赘述了。
搜索结果
搜索出来的结构如下,被称为Primer
在搜索出来的结构中,发现了两个重要的改进,如下:
这两个改进非常通用,可以直接丢到现有的Transformer实现中去,一般都能带来提升。原始的Transformer加上这两个优化的结构,被称为Primer-EZ,实验部分会分别对它们进行测试。
实验
除了Primer模型和Primer-EZ外,论文设置了三个baseline
原始的Transformer
Transformer+GELU
Transformer++: Transformer + RMS normalization, Swish activation, GLU multiplicative branch.
实验结果如下, 在训练速度上,达到原始Transformer训练24小时效果的加速比如下。
训练时间和validation loss的关系如下:
一起交流
想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)
参考文献
[1]. So, David R., et al. "Primer: Searching for Efficient Transformers for Language Modeling." arXiv preprint arXiv:2109.08668 (2021).
- END -
![0ea049ff91370a9c6b6b1c6cda25b5c5.png](https://i-blog.csdnimg.cn/blog_migrate/92c50378a36006e55f1ffa4101285cb9.png)
![2e3c4bb19ef3d1f30f07552d56f7e612.png](https://i-blog.csdnimg.cn/blog_migrate/bbfa2fd78f6f540c69acb92146acc89f.png)
![ac7df37402f63fc46577ad7a0eb13a09.png](https://i-blog.csdnimg.cn/blog_migrate/bef91dd88ef46dfe2619f77dde4ba417.png)
熬了一晚上,我从零实现了Transformer模型,把代码讲给你听
![44e422a9fa99c4a113de93dec5fdafcd.png](https://i-blog.csdnimg.cn/blog_migrate/b3ca1266fabd02921b8280d5e94bf5c0.png)