FLASH:可能是近来最有意思的高效Transformer设计

本文介绍了Google的一项新工作,提出了一种名为GAU(Gated Attention Unit)的门控注意力单元,它融合了Transformer的注意力层和FFN层,实现了更快、更省显存且效果更好的模型。GAU通过一种线性化方案——FLASH,进一步降低了复杂度,同时保持了训练并行性。实验表明,即使只有一个头的GAU也能达到多头注意力的效果,而FLASH模型在速度和效果上优于标准Transformer。
摘要由CSDN通过智能技术生成

a3f4a57180074cf5b69c101e9d132fb0.gif

©PaperWeekly 原创 · 作者 | 苏剑林

单位 | 追一科技

研究方向 | NLP、神经网络

高效 Transformer,泛指所有概率 Transformer 效率的工作,笔者算是关注得比较早了,最早的博客可以追溯到 2019 年的《为节约而生:从标准 Attention 到稀疏 Attention》,当时做这块的工作很少。后来,这类工作逐渐多了,笔者也跟进了一些,比如线性 AttentionPerformerNyströmformer,甚至自己也做了一些探索,比如之前的“Transformer 升级之路”。再后来,相关工作越来越多,但大多都很无趣,所以笔者就没怎么关注了。

6c3990a5790c16a4ec510b0317701eb0.png

▲ 本文模型脉络图

大抵是“久旱逢甘霖”的感觉,最近终于出现了一个比较有意思的高效 Transformer工作——来自 Google 的《Transformer Quality in Linear Time》[1] ,经过细读之后,笔者认为论文里边真算得上是“惊喜满满”了~

a5c78debfe142092effaaae5f4ab645f.png

何喜之有

什么样的结果值得我们用“惊喜”来形容?有没有言过其实?我们不妨先来看看论文做到了什么:

1、提出了一种新的 Transformer 变体,它依然具有二次的复杂度,但是相比标准的 Transformer,它有着更快的速度、更低的显存占用以及更好的效果;

2、提出一种新的线性化 Transformer 方案,它不但提升了原有线性 Attention 的效果,还保持了做 Decoder 的可能性,并且做 Decoder 时还能保持高效的训练并行性。

说实话,笔者觉得做到以上任意一点都是非常难得的,而这篇论文一下子做到了两点,所以我愿意用“惊喜满满”来形容它。更重要的是,论文的改进总的来说还是比较自然和优雅的,不像很多类似工作一样显得很生硬。此外,笔者自己也做了简单的复现实验,结果显示论文的可复现性应该是蛮好的,所以真的有种“Transformer危矣”的感觉了。

4ff6a8aaef601b57953355fed99d20a3.png

门控注意

闲话少说,进入主题。我们知道标准的 Transformer 其实是 Attention 层和 FFN 层交替构建的,而这篇论文的核心是提出了一个融合了两者的新设计 GAU(Gated Attention Unit,门控注意力单元),它是新模型更快、更省、更好的关键,此外它使得整个模型只有一种层,也显得更为优雅。

8f5ba6cea5df0826c3b1a0505a9aba00.png

威力初显

怎么做到 Attention 和 FFN 的融合呢?首先,标准的 FFN 是两层 MLP 模型:

1cd7db70dccdc34788738d482da6188c.png

这里 而 是激活函数。后来,《GLU Variants Improve Transformer》[2] 发现使用了 GLU(Gated Linear Unit,门控线性单元)的 FFN 效果更好,并为后来的 mT5 所用,其形式为:

05011c7894500a317eeea9703de16c63.png

这里 而 是逐位对应相乘(Hadamard 积)。GLU 更有效并不是一件让人意外的事情,早在 2017 年 Facebook 的《Convolutional Sequence to Sequence Learning》[3] 中 GLU 就起到了关键作用,此外笔者之前研究的 DGCNN 也肯定了 GLU 的有效性。

一般情况下的 GLU 是 不加激活函数而 加 Sigmoid,但这篇论文 都加了激活函数 Swish [4](也叫 SiLU [5],Sigmoid Linear Unit),这可以在附录中的源码找到,此处跟主流 GLU 用法略有不同,特别指出一下。

f623db89ba57cc08153a7f354be13ed9.png

强强联合

既然 GLU 式的 FFN 更有效,那么我们就以它为基础进行修改。注意到 FFN 不能取代 Attention,是因为它的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值