引言
回顾一下,LinearAttention系列解读1~3中,我们系统介绍了,linear attention通过将attention kernel function写成可拆解模式
从而将时刻的attention输出写成递推形式,具体如下:
令
显然可以得到如下递推式:
令为恒等映射,并忽略normalization term
相比softmax-based attention,linear attention没有随序列增长的kv-cache,只有一个恒定大小的memory 。
虽然上述特性使得linear attention在长序列上显存保持恒定,但vanilla linear attention(VLA)长序列的表现弱于softmax attention。本质原因是,VLA每个时间步都会将的外积用累加的方式更新到memory中,随着序列长度的增加,各个key-value的associations的crosstalk愈发严重,最终导致memory collision。
为了提升固定memory的利用率,有2种常用的手段:
- 添加delta-rule;
- 引入gating机制。
我们先来简单的回顾一下,这两种机制。
Delta Rule
delta rule的核心思想很简单,每一次更新先从历史memory中找到与当前key相关的value,再对memory进行增量修改。
整理一下上式
从fast weight的角度看,Delta rule的本质上是在对memory做online SGD,我们将memory 视作一个linear model,输入预测
训练目标:
两边对求梯度
根据梯度下降更新参数
该更新形式与前文delta-rule一致。因此从这个视角可见,memory可以视作key到value的映射,memory的更新可以视作沿prediction-error最小化的方向做online SGD。换言之,它做的是沿当前寻址的方向修改旧association,可以理解为“定点修改”
Gating
gating机制是提升memory的利用率的另一范式。核心思想是,给memory添加遗忘机制。gating linear attention(GLA)的memory更新机制可以抽象为:
根据gate 的构建方式可以分为:
- Data independent gate
- Data dependent gate
按照衰减的粒度,进一步可划分
Gate 粒度 | 控制方式 | 特点 | |
scalar | 整个memory共享衰减 | 计算最简单,但只能整体保留或遗忘 | |
one-side vector | 每个 key channel 独立衰减,同一行的 value channels 共享衰减率 | 兼顾表达能力与计算效率,GLA、KDA 等采用类似设计 | |
Two-side separable matrix | key 与 value 两个维度分别控制衰减 | 比 one-sided 更细粒度,但只能表示可分离的 rank-one gate | |
full matrix | 每个 memory element 独立衰减 | 表达能力最强,但参数量、计算量和并行化成本最高 |
从上面的介绍可见。delta rule和gating分别从两个维度来提升linear attention固定memory的利用率,他们不是互斥的。
ㅤ | 优势 | 局限性 |
delta rule | 沿当前的寻址方向做定点擦除与重写 | 无法大规模的清空旧memory,不擅长context切换的场景 |
Gating | 对旧memory进行快速大范围遗忘 | 无法基于prediction error精确重写association |
Delta Rule 与 Gating的互补路线
目前linear attention的最新研究进展,大多同时结合delta-rule与gating机制。下面具体来看。
注意:为了方便阐述,默认假设attention的head为1.
Gated DeltaNet (GDN)
GDN的核心是:data dependent scalar gating + delta rule
第一步,先给memory引入data dependent scalar gating
再引入delta rule的memory更新公式
整理得
GDN同样可以用online SGD来理解,GDN 先将 衰减为 ,再以它作为 online SGD 的更新起点,即
Kimi Delta-Attention (KDA)
KDA的核心是:data dependent one-side vector gating (或者说one-side channel-wise decay) + delta rule
先对做one-side channel-wise decay,得到
再引入delta rule update
整理得
论文还给了一个视角:KDA可以看成data-dependent position encoding。
KDA为何能视为data-dependent position encoding
对于RoPE我们很熟悉,它是作用于query,key的乘性位置编码,其注意力公式为:
注意,向量依旧用row-vector convention的规则来表示,是旋转矩阵。
根据旋转矩阵的性质:
从的累积旋转可以看作次固定旋转的叠加
因此可以将RoPE的注意力公式写作:
对于KDA而言,其状态更新方程为,不妨令:,随后对进行递归展开(假定):
其中
KDA的输出为
对于KDA的注意力score为
它与RoPE的形式非常相似,区别在于:
- RoPE的是固定的旋转矩阵,只依赖相对位置
- KDA的由构成,而这些变量由输入经过可学习参数的变换生成。因此KDA可以视作data-dependent、可学习的乘性隐式的相对位置编码。data-dependent、可学习和乘性比较好理解。隐式相对性体现在依赖次状态转移矩阵的乘积。
因为这个特性,为Kimi K3的NoPE提供了设计动机。
Gated DeltaNet-2 (GDN-2)
GDN-2核心: data dependent one side channel-wise decay + 改进的delta-rule
先对做one-side channel-wise decay,得到
在原始的delta-rule中,被称为write strength,通过对插值的方式,来同时控制写入和擦除。GDN-2认为用一个标量同时承担这两个责任限制了模型的表达能力。因此,GDN-2引入2个learnable的vector,用于写入和擦除强度的控制
此时
整理得:
大模型中的Linear Attention的用法
当下,Kimi K3和Qwen3.5到Qwen3.8都用了Linear attention + softmax-based attention的混合架构,之所以用这类混合架构,主要有3点考虑
- linear attention的memory是定值,可以极大降低long context的显存压力
- linear attention longcontext易发生memory collision,引入softmax-based attention可以缓解这个问题
- linear attention的memory是全局压缩的,对精确检索类任务表现不佳,引入softmax-based attention可以提升这部分能力。
具体的配置来看
Kimi K3:前92层3:1 交替KDA和Gated MLA,最后再增加一层Gated MLA。
Qwen3.5:3:1交替GDN和Gated GQA,即
PS: 最新的Qwen3.8-Flash-Next中将FA换成了QSA(qwen sparse attention)
小结
本文从linear attention的delta-rule和gating机制出发,引出目前linear attention的最新进展GDN,KDA,GDN-2。并进一步探讨其在当下LLM架构中的应用。受限于篇幅,文本并未详细探讨其训练阶段的并行化,这部分在后文再详细介绍。
如有疏漏之处,敬请指出~
参考文献
- 作者:莫叶何竹🍀
- 链接:http://www.myhz0606.com/article/linear_attention_p4
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章







.png?table=block&id=1f63c18f-f81c-808d-8829-cd2c12c40b3e&t=1f63c18f-f81c-808d-8829-cd2c12c40b3e)



