文章摘要
Kimi Delta Attention是一种现代线性注意力变体,通过状态更新方程实现高效序列建模。其核心机制包括:使用对角矩阵对状态进行衰减,基于当前键从状态中检索预测值,并计算预测误差作为更新信号。该方法在保持线性复杂度的同时,通过误差驱动更新来增强模型表达能力。
文章总结
好的,这是对原文主要内容的中文重述,已保留关键细节并删减了与主题无关的表述。
文章核心:从零推导Kimi Delta Attention(KDA)
本文旨在通过清晰的逻辑链条,逐步推导出Kimi Delta Attention(KDA)这一复杂的线性注意力机制。作者认为,KDA看似复杂,但其核心思想源于对隐藏状态(记忆)的一系列简单而合理的改进。
推导路径: 从最基础的Softmax注意力开始,逐步演变为线性注意力,再经过DeltaNet、Gated DeltaNet,最终到达KDA。
1. 起点:从二次复杂度的Softmax注意力出发
标准的因果Softmax注意力需要计算所有键-查询对(共T²个),导致计算量随序列长度二次增长。其核心障碍是Softmax函数,它使得计算无法被有效重组。
2. 简化:移除Softmax,获得线性注意力
移除Softmax后,注意力机制简化为一个线性递归形式。关键在于,所有历史信息可以被压缩进一个固定大小的状态矩阵 Sₜ,该矩阵是所有键值对外积的和。
- 状态更新: Sₜ = Sₜ₋₁ + |vₜ⟩⟨kₜ|
- 输出: |oₜ⟩ = Sₜ |qₜ⟩
这使得计算复杂度从二次降为线性。但代价是失去了Softmax的归一化和选择性,并且带来了一个关键问题:加法不是赋值。当用同一个键查询时,新写入的值会与旧值叠加,而非替换,导致记忆混乱。
3. 改进一:DeltaNet——写入误差,而非原始值
DeltaNet通过“增量规则”解决了上述问题。其核心思想是:在写入新信息前,先根据当前键从记忆中读取预测值,然后只写入预测值与真实值之间的误差。
- 预测: |v̂ₜ⟩ = Sₜ₋₁ |kₜ⟩
- 计算误差: |eₜ⟩ = βₜ (|vₜ⟩ - |v̂ₜ⟩) (βₜ是学习到的写入强度)
- 状态更新: Sₜ = Sₜ₋₁ + |eₜ⟩⟨kₜ|
这个更新规则可以理解为:在键的方向上,用新值替换旧值,同时保持其他方向的信息不变。它也可以从在线学习的角度推导,即对重建损失函数执行一步梯度下降。
4. 改进二:Gated DeltaNet——让旧信息有时消失
DeltaNet虽然能精确写入,但无法有选择地遗忘旧信息。为此,Gated DeltaNet引入了一个标量遗忘门 αₜ,在应用Delta规则之前,先对整个状态矩阵进行全局衰减。
- 遗忘: (S̃)ₜ = αₜ Sₜ₋₁
- 预测与写入: 基于遗忘后的状态 (S̃)ₜ 执行DeltaNet的预测和写入步骤。
标量门解决了全局遗忘的问题,但无法对不同信息通道进行差异化处理。
5. 最终形态:KDA——为每个通道独立设置遗忘率
KDA将Gated DeltaNet的标量遗忘门 αₜ 升级为一个向量,并将其放在对角矩阵 Dₜ 上。这样,状态矩阵的每一列(对应一个键通道)都可以拥有独立的遗忘率。
- 通道级遗忘: (S̃)ₜ = Sₜ₋₁ Dₜ
- 后续步骤: 与Gated DeltaNet相同(预测、计算误差、写入)。
这个看似微小的改变带来了显著效果:模型可以同时保留某些通道的信息并清除另一些通道的信息。从数学上看,KDA的状态转移矩阵是一个“对角加低秩”(DPLR)矩阵,兼具了全局衰减和定向替换的能力。
总结四种机制的演进:
| 机制 | 状态更新核心 | 新增能力 | | :--- | :--- | :--- | | 线性注意力 | S + |v⟩⟨k| | 固定大小的循环记忆 | | DeltaNet | S + β(|v⟩ - S|k⟩)⟨k| | 定向替换 | | Gated DeltaNet | 先 αS,再执行Delta更新 | 全局遗忘 | | KDA | 先 S D,再执行Delta更新 | 逐通道遗忘 |
6. 两种执行模式:循环与分块
KDA有两种主要的执行方式,以适应不同的场景:
- 融合循环模式: 适用于自回归解码。它逐token更新状态,计算量小,延迟低。在Triton内核中,每个程序处理一个序列、一个值头和一个值块,循环执行状态更新。
- 分块模式: 适用于训练和长序列预填充。它将一个块(Chunk)内的C个token一起处理,将循环操作重组为矩阵乘法,从而充分利用GPU的张量核心。其核心是解决块内token之间的因果依赖关系,通过构建一个下三角矩阵并求解,来修正每个token的“临时误差”,最终实现状态和输出的并行计算。
结论: 循环和分块模式并非两种不同的注意力机制,而是同一KDA递归公式的两种不同调度策略。
评论总结
根据评论内容,总结如下:
主要观点与论据:
对Kimi Delta Attention的认可与自嘲
- 多数评论者承认自己无法独立提出该算法,如rekshaw:“after a cursory read, I can confidently say I could not, in fact, have come up with Kimi Delta Attention.”
- piterrro自嘲:“I have problems with writing binary search... No way I could have come up with Kimi Delta Attention.”
对数学符号(bra-ket notation)的讨论
- 部分评论者认为符号选择有助于清晰表达,如neutrinobro:“You know its a doozy when the author writes a disclaimer... bra-ket notation was chosen... to make the algorithm and data structures clearer.”
- 也有评论者质疑符号使用,如mnky9800n:“why are you using braket notation?”
- TrackerFF指出ML领域缺乏统一符号,但本文明确解释符号是优点:“inconsistent notation... is friction... the author explicitly explains the notation at the very start.”
对算法创新性的评价
- spwa4认为该算法并非重大创新,而是依赖计算资源:“Attention is one of those innovations that came mostly from realizing you had better hardware... nobody else was really capable of making this leap.”
- 评论者普遍认为该算法是“增量进化”(davide:“Loved this incremental evolution”),而非颠覆性突破。
对交互功能的正面反馈
- 多位评论者赞赏“数学/物理符号切换”功能,如scarmig:“I like the math vs physics toggle.”
- Kushagra125:“The toggle is really useful. Liked it!!”
平衡性说明:
- 正面观点:认可算法清晰性、符号解释、交互功能。
- 负面/质疑观点:符号选择争议、算法创新性不足、依赖计算资源。
- 中立观点:多数评论者承认自己无法独立提出该算法,但认为其是合理演进。