引言

回顾一下,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种常用的手段:
  • 引入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点考虑
  1. linear attention的memory是定值,可以极大降低long context的显存压力
  1. linear attention longcontext易发生memory collision,引入softmax-based attention可以缓解这个问题
  1. 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架构中的应用。受限于篇幅,文本并未详细探讨其训练阶段的并行化,这部分在后文再详细介绍。
如有疏漏之处,敬请指出~

参考文献

给身边考研的小伙伴diffusion model(一):DDPM技术小结 (denoising diffusion probabilistic)
Loading...