Depth mixing · Kimi K3

Attention Residuals(AttnRes)

普通残差连接让所有前层输出以固定权重累加。AttnRes 提出一个不同问题:当前层能否像在 token 维度做 attention 一样,在“网络深度”维度选择更有用的历史表示?

按内容选层AttnRes 的权重依赖当前 token 与历史层状态;Block AttnRes 用分块控制内存和通信。
问题机制分块算例证据资料

一、PreNorm 残差为什么会稀释单层贡献

标准 PreNorm Transformer 反复执行 (x_{l+1}=x_l+F_l(Norm(x_l)))。展开后,深层残差流包含此前所有子层输出,并且每项的显式系数都是 1。

这条恒等捷径是深层网络可训练的关键,不能被描述为“错误设计”。问题出现在模型非常深时:残差状态幅度持续增长,新层输出在总和中的相对占比下降,网络需要用归一化和权重尺度不断适应这一混合。

二、把深度当成另一条 attention 轴

AttnRes 保存此前若干层的表示,为当前 token 计算内容相关权重,再用 softmax 加权得到当前子层输入。与标准残差固定加 1 不同,不同 token 可以选择不同深度的表示。

AttnRes 的深度选择当前层通过伪查询为多个历史残差状态分配 softmax 权重。Layer 0历史表示Layer 4历史表示Layer 8历史表示Depth softmax内容相关权重Layer 12聚合后输入
概念图:真正的 AttnRes 会同时处理多个历史表示;箭头被压成一条流程,仅用于展示“存储—打分—聚合”。
x̃ₗ = Σᵢ<ₗ softmax(score(xₗ, hᵢ)) · hᵢ
xₗ₊₁ = x̃ₗ + Fₗ(Norm(x̃ₗ))

三、为什么 Kimi K3 使用 Block AttnRes

Full AttnRes 若让每层访问全部历史层,会增加激活内存、pipeline stage 之间的通信和打分成本。Block AttnRes 把连续层分组,只把块级表示推入可访问栈;块内仍保留便宜的普通残差路径。

Kimi K3 公开配置的 attn_res_block_size 为 12。它不是“每 12 层重置模型”,而是用 12 层作为深度记忆的管理粒度。

四、一个三状态混合算例

假设某 token 对三个块级状态的 logits 为 ([2,1,0]),softmax 权重约为 ([0.665,0.245,0.090])。当前层不再平均继承全部历史,而是主要读取第一个状态,同时保留其他深度的信息。

66.5%状态 A
24.5%状态 B
9.0%状态 C

这只是说明机制;实际权重由 token、层和训练数据共同决定,不能从一个注意力权重直接推断语义因果。

五、证据与未决问题

AttnRes 论文报告 scaling-law 实验、消融和一个 48B 总参数/3B 激活的 Kimi Linear 预训练实验,并称深度方向的输出幅度与梯度分布更均匀。Kimi K3 随后将 Block AttnRes 用于 2.8T MoE。

还不能推出“残差连接将被淘汰”。

论文证据来自 Kimi 团队自己的架构与训练设置。它证明 AttnRes 在这些约束下有可扩展收益,但尚不足以说明所有 Transformer、所有深度或所有硬件拓扑都应采用它。

评论加载中...