URL
TL;DR
- 本文提出一种名为
GatedDeltaNet 的神经网络架构,其类型属于状态空间模型 SSM,属于 Mamba2 的改进版本
Algorithms
核心公式
St=St−1(αt(I−βtktktT))+βtvtktT
ot=qtTSt
- 其中:
- t:序列位置,0≤t<L,L 为序列长度,之后统称为时间步
- qt∈Rd:时间步
t 的查询向量
- kt∈Rd:时间步
t 的键向量
- vt∈Rd:时间步
t 的值向量
- St∈Rd×d:时间步
t 的状态矩阵,存储的是历史键值相关性矩阵
- αt∈R:时间步
t 的遗忘因子,0<αt≤1,控制历史信息的遗忘程度
- βt∈R:时间步
t 的更新因子,0≤βt<1,控制当前信息的更新程度
- 对比
Mamba2 的状态更新公式
St=αtSt−1+vtktT
SSM 结构的优势
transformer 的自注意力矩阵是 S∈RL×L,计算和存储成本为 O(L2),其中 L 是序列长度
SSM 的状态矩阵是 S∈RL×d×d,由于 d≪L,计算和存储成本为 O(L),大大降低了计算复杂度
分块加速
- 作者对
GatedDeltaNet 的实现做了数学等价的分块加速,repo 名就是 flash-linear-attention
- 类似
attention 和 flash-attention 的关系
关于 GatedDeltaNet 和 RWKV-7 两位作者互撕的一些看法
- 背景:https://zhuanlan.zhihu.com/p/1915054612559426430
- 省流版本:
GatedDeltaNet 的作者 Songlin Yang 在自己的论文中,把 RWKV-7 的表现压的很低,比原论文低很多,然后 RWKV-7 原作者 Peng Bo 质疑 GatedDeltaNet 对比实验中对 RWKV-7 的实现有问题
GatedDeltaNet 作者 Songlin Yang 在微信群怒喷 RWKV-7 作者 Peng Bo,让其要么给自己的 fla Repo 提 PR 修复实现,要么闭嘴,随后还将其踢出微信群
- 个人看法:
- 对于论文中引用别人论文做
baseline 常出现的无意的有意压低表现的情况,算是行业通病了,但被指出来立正挨打就完了,作者竟然还怒喷对方,要求其帮自己修复实现,合着你发论文,bug 我帮你修?实验我帮你做?这是什么逻辑
- 虽然
fla 在社区有一些影响力,也有 3.3k 的 star,但其显然还不是唯一主流的实现库(像 Pytorch、Transformers 这种级别),写论文必须用 fla 显然不是行业共识,不能要求原作者必须用 fla 去实现自己的算法(who think you are),竟然还要求要么给 PR,要么就把把自己 fla 中 RWKV-7 相关实现全删了。原作者也开源了自己的实现库,这个库可以完全复现论文结果,这一点想必 GatedDeltaNet 作者也清楚
- 虽然
GatedDeltaNet 能被 Qwen3-Next 这种大模型用上,说明含金量还是有的,但作者的这种行为,实在让人不齿,世界就是一个大的回旋镖,不能等回旋镖打到自己身上才喊疼