文章摘要
KDA:按通道控制遗忘的轻量化注意力机制本文是对KIMIK3中KDA(KimiDeltaAttention)的深度解析,作为该系列内容的开篇,我们将围绕其设计思路、核心原理、实现细节展开,帮助读者理解

KDA:按通道控制遗忘的轻量化注意力机制

本文是对KIMI K3中KDA(Kimi Delta Attention)的深度解析,作为该系列内容的开篇,我们将围绕其设计思路、核心原理、实现细节展开,帮助读者理解这种新型注意力机制的独特价值。

设计背景:解决传统注意力的痛点

在注意力机制的发展中,传统线性注意力存在无选择性累积的问题,会随着序列长度增加而占用大量内存;Gated DeltaNet(GDN)虽然引入了delta规则,但遗忘粒度是每个头一个标量,无法对不同特征维度做差异化控制。KDA正是针对这些问题,将遗忘粒度细化到通道级,在保持并行性的同时实现更精准的记忆管理。

方案名 核心机制 优势 劣势
KDA delta rule + channel-wise对角decay gate + 有界sigmoid衰减 记忆可控、可稠密chunkwise、NoPE位置信息自洽 状态容量固定,长程精确检索弱于full attention
Gated DeltaNet delta rule + head-wise forget gate 简单、稳定 gate粒度粗,通道级记忆控制差

核心原理:状态矩阵的动态管理

KDA的核心是通过固定大小的状态矩阵来实现记忆管理,类似“记忆白板”的概念。每处理一个token,系统会完成“衰减”和“更新”两个核心动作:先按通道级别的遗忘因子淡化旧记忆,再通过delta规则写入新信息,且只写入与旧记忆的差异部分,避免重复累积。

其状态更新公式可以简化为:S_t = S_{t-1}·Diag(α_t) + β_t·k_t·(v_t - S_{t-1}·k_t)^T,其中α_t是通道级衰减因子,β_t是写入强度。这种机制让KDA的内存占用是O(1),不随序列长度增长,同时支持分块并行计算。

KIMI-K3-Arch
KIMI-K3架构图,左下为KDA模块

关键组件:实现细节拆解

KDA的实现包含多个关键组件:线性投影层将输入映射为query、key、value等;因果深度卷积为无位置编码的模型注入位移信息;beta投影控制写入强度;低秩衰减参数化实现通道级遗忘;还有输出门和RMSNorm保证训练稳定性。

状态递推与delta规则

KDA保留了delta rule的残差覆写机制,将GDN的标量遗忘门扩展为向量,每个key通道有独立的遗忘速度。状态矩阵的每一列对应一个key通道,实现了更精细的记忆控制。

有界衰减机制

KDA使用有界sigmoid函数将log-decay限制在固定范围内,避免数值溢出,确保可以用稠密Tensor-Core进行计算,提升硬件效率。

价值总结:KDA的独特优势

KDA通过固定大小的状态矩阵实现了O(1)的内存占用,支持分块并行计算,同时通过通道级遗忘和delta规则实现了精准的记忆更新,还具备NoPE位置自洽性,无需额外位置参数即可处理长上下文。

以上内容不代表本平台立场,仅供读者参考