线性 Transformer变长思路汇总Dilated Sliding window、LongFormer、BigBird、LongNet、Reformer、GAU、RWKV

Transformer默认是512,在 线性Transformer应该不是你要等的那个模型 中强调对于base版来说,当序列长度不超过1536时,Transformer的复杂度都是近乎线性的;当序列长度超过1536时,Transformer的计算量逐渐以Attention为主,复杂度慢慢趋于二次方,直到长度超过4608,才真正以二次项为主。 今天来梳理下真有更长的Transformer如何做的一些方法:

Sparse Transformer

来自于Generating Long Sequences with Sparse Transformers,以下转载自https://kexue.fm/archives/6853#Sparse%20Self%20Attention:
在这里插入图片描述

Longformer: The Long-Document Transformer

来自于 https://arxiv.org/abs/2004.05150
在这里插入图片描述
也就是说,从下图实现来看Longformer和Sparse Transformer的思路是一样的,只是这篇的实验更加充分
在这里插入图片描述

Big Bird

  • Random attention:对每个token随机选取其他的r个token计算attention,
    来源于图论中的Erdős–Rényi model:对于一个有N个节点的图,如果其每条边形成的概率为p,那么当p足够大时,就几乎会形成一个完全连通图;类比到Transformer中,不需要对每两个Token都计算attention,只要每个token以较大的概率对其他token做attention,那么整个序列就可以连通起来;
  • Window attention:和第一篇的local self attention一样;
  • Global attention:尽管Random attention已经保证整个序列大概率是联通的,选取一些global token在全局做attention还是会有更好的效果,同时不至于太过增加计算量。这里还分为internal和extended两种方法:a) internal:在序列中随机选取一些token作为global token;extended:在序列外额外补充一些token作为global token(例如[CLS]);
    在这里插入图片描述

LongNet(LongNet: Scaling Transformers to 1,000,000,000 Tokens)

这篇文章有两张亮炸眼的图:
在这里插入图片描述
然后看改进,其实和LongTransformer、Big Bird是一脉相承的,作者管这里叫Dilated Attention
在这里插入图片描述

Reformer: The Efficient Transformer

来自于https://arxiv.org/abs/2001.04451,以下转载自 https://kexue.fm/archives/7546

Reformer也是有代表性的改进工作,它将Attention的复杂度降到了𝒪(nlogn)。某种意义上来说,Reformer也是稀疏Attention的一种,只不过它的稀疏Pattern不是事先指定的,而是通过LSH(Locality Sensitive Hashing)技术(近似地)快速地找到最大的若干个Attention值,然后只去计算那若干个值。此外,Reformer通过构造可逆形式的FFN(Feedforward Network)替换掉原来的FFN,然后重新设计反向传播过程,从而降低了显存占用量。

所以,相比前述稀疏Attention,Reformer解决了它的第一个缺点,但是依然有第二个缺点:实现起来复杂度高。要实现LSH形式的Attention比标准的Attention复杂多了,对可逆网络重写反向传播过程对普通读者来说更是遥不可及~

FLASH(Fast Linear Attention with a Single Head)

来自于Google的《Transformer Quality in Linear Time》,简单来说就是GAU+分块融合【FLASH采取了“局部-全局”分块混合的方式,结合了“稀疏化”和“线性化”的优点。首先,对于长度为n的输入序列,我们将它不重叠地划分为n/c个长度为c的块(不失一般性,假设c
能被n整除,论文取c=256)】。更多细节可以参考 https://blog.csdn.net/taoqick/article/details/130543202

RWKV(Receptance Weighted Key Value )

大概搜了一下RWKV和Transformer类模型效果对比,暂时没发现优势,没空了先不看了,以下截图自https://www.zhihu.com/question/602564718/answer/3042600470,
在这里插入图片描述

Linear Recurrent Unit

来自Google的Resurrecting Recurrent Neural Networks for Long Sequences(https://arxiv.org/abs/2303.06349),中文版解释参考https://spaces.ac.cn/archives/9554,它是既可以并行又可以串行的极简线性RNN,训练和推断都具备高效的优势,先mark以后再细看

Mamba

Albert Gu 表示,这项研究的一个重要创新是引入了一个名为「选择性 SSM」的架构,该架构是 Albert Gu 此前主导研发的 S4 架构(Structured State Spaces for Sequence Modeling ,用于序列建模的结构化状态空间)的一个简单泛化,可以有选择地决定关注还是忽略传入的输入。一个「小小的改变」—— 让某些参数成为输入的函数,结果却非常有效。

部分转载自 https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650899414&idx=1&sn=b6c34617d6d0f45b3ad3da9ea6385206&chksm=84e447a8b393cebe030f1b2dc3e5372e3258f772bdf8510134e1d551d82558225a8454399619&scene=21#wechat_redirect, 先码后看

Hawk和Griffin

在谷歌 DeepMind 近日的一篇论文中,研究者提出了 RG-LRU 层,它是一种新颖的门控线性循环层,并围绕它设计了一个新的循环块来取代多查询注意力(MQA)。

他们使用该循环块构建了两个新的模型,一个是混合了 MLP 和循环块的模型 Hawk,另一个是混合了 MLP 与循环块、局部注意力的模型 Griffin。

部分转载自 https://mp.weixin.qq.com/s/RtAZiEzjRWgqQw3yu3lvcg,继续先mark后看

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值