Esc
输入关键词开始搜索
News

Attention Residuals

Attention Residuals

原文链接:https://arxiv.org/abs/2603.15031 作者:Kimi Team (Moonshot AI) 机构:Moonshot AI(月之暗面) 发布日期:2026-03-16 代码:https://github.com/MoonshotAI/Attention-Residuals

速查卡

项目内容
一句话总结用 softmax 注意力替代固定权重的残差累加,让每层可以选择性地聚合之前各层的输出
大白话版传统 Transformer 每一层只能看到”前面所有层混在一起的结果”,就像把所有颜料搅在一起。AttnRes 让每层可以从之前的各层中”点菜”——需要哪层的信息就多用哪层的
核心数字Block AttnRes 等效于 1.25× 计算量的性能提升;48B 模型 GPQA-Diamond +7.5;推理延迟增加 <2%
评级A — 对 Transformer 基础架构的优雅改进,理论清晰、实验全面、工程可行
代码https://github.com/MoonshotAI/Attention-Residuals(开源)
关键词Residual Connection, Depth-wise Attention, PreNorm Dilution, Scaling Law, Block AttnRes, MoE

核心 Insight

残差连接(Residual Connection)是现代 LLM 的基石。从 2015 年 ResNet 提出以来,hl=hl1+fl1(hl1)h_l = h_{l-1} + f_{l-1}(h_{l-1}) 这个更新规则几乎从未被根本性地改变过。Kimi 团队观察到一个深刻的对偶性:

残差连接在”深度”维度上扮演的角色,与 RNN 在”时间”维度上扮演的角色完全一致。

展开残差递推式:hl=h1+i=1l1fi(hi)h_l = h_1 + \sum_{i=1}^{l-1} f_i(h_i)——每一层接收的是之前所有层输出的均匀加权求和。这就像 RNN 把整个序列历史压缩成一个隐藏状态一样。

在序列建模中,Transformer 用注意力机制替代了 RNN 的固定递推,让每个位置可以选择性地访问历史位置。AttnRes 对”深度”做了完全相同的事情。

为什么这个想法 work?

PreNorm(当前主流范式)的残差累加导致隐藏状态的幅值随深度 O(L)O(L) 增长。这产生了三个问题:

  1. 无选择性访问:不同类型的层(注意力层 vs MLP 层)接收到同样的混合状态,无法获取针对性信息
  2. 信息不可逆丢失:早期层的信息被淹没在累加的信号中,深层无法选择性地恢复
  3. 输出幅值膨胀:深层必须学习越来越大的输出才能在累积的残差中”发出声音”

AttnRes 通过引入 softmax 注意力让每层用学到的、输入依赖的权重来选择性聚合前面各层的输出,优雅地解决了所有三个问题。

方法详解

整体架构

标准残差:   h_l = h_{l-1} + f_{l-1}(h_{l-1})     【固定权重累加】
                        ↓ 对偶变换
Full AttnRes: h_l = Σ α_{i→l} · v_i             【softmax 注意力加权】
                        ↓ 工程优化
Block AttnRes: 分块累加 + 块间注意力             【O(Nd) 内存/通信】

关键技术组件

组件 1: Full Attention Residuals

做什么: 用 softmax 注意力替代固定权重的深度方向累加。

怎么做: 对第 ll 层,定义:

  • Query: ql=wlq_l = w_l(每层一个可学习向量,wlRdw_l \in \mathbb{R}^d
  • Key/Value: ki=vik_i = v_i,其中 v0=h1v_0 = h_1(token embedding),vi=fi(hi)v_i = f_i(h_i)(第 ii 层的输出)
  • 注意力权重:αil=ϕ(ql,ki)j=0l1ϕ(ql,kj)\alpha_{i \to l} = \frac{\phi(q_l, k_i)}{\sum_{j=0}^{l-1} \phi(q_l, k_j)}
  • 其中 ϕ(q,k)=exp(qRMSNorm(k))\phi(q, k) = \exp(q^\top \text{RMSNorm}(k))

关键公式:

hl=i=0l1αilvih_l = \sum_{i=0}^{l-1} \alpha_{i \to l} \cdot v_i

直觉解释: 每层有一个”偏好向量” wlw_l,通过与前面各层输出做点积来决定”想要什么信息”。RMSNorm 防止输出幅值大的层主导注意力权重。

开销分析: 对每个 token,Full AttnRes 需要 O(L2d)O(L^2 d) 计算和 O(Ld)O(Ld) 内存。因为深度 LL 远小于序列长度,计算开销微不足道。在标准训练中(无激活重计算),这些层输出本来就要为反向传播保存,所以无额外内存开销

组件 2: Block Attention Residuals(工程核心)

做什么: 在大规模分布式训练(流水线并行 + 激活重计算)中使 AttnRes 实用。

问题是什么: 在流水线并行中,Full AttnRes 需要将所有 LL 个层输出跨阶段传输,通信量 O(Ld)O(Ld) 不可接受。

怎么做:LL 层分成 NN 个块(block),每块 S=L/NS = L/N 层:

  • 块内:使用标准残差累加,将所有层输出求和为一个块表示 bn=jBnfj(hj)b_n = \sum_{j \in B_n} f_j(h_j)
  • 块间:对 NN 个块表示 + token embedding 应用 softmax 注意力

数值例子: 假设 48B 模型有 54 层(27 个 Transformer 块),每 6 层一个 AttnRes 块:

  • N=9N = 9 个块 + 1 个 token embedding = 10 个深度方向的”注意力源”
  • 内存/通信从 O(54d)O(54d) 降到 O(10d)O(10d),约 5.4× 减少

关键发现: 实验表明 N8N \approx 8 就能恢复 Full AttnRes 的绝大部分收益。

组件 3: 工程基础设施优化

跨阶段缓存(Cross-stage Caching): 流水线并行中,每个物理阶段处理多个虚拟阶段。缓存策略让已接收的块表示在后续虚拟阶段中被重用,通信从 O(C2)O(C^2) 降到 O(P2)O(P^2)VV 倍改进,VV 为虚拟阶段数)。

两阶段推理(Two-phase Computation): 利用 pseudo-query wlw_l 与层计算解耦的特性:

  • Phase 1:批量计算一个块内所有层的块间注意力(并行化)
  • Phase 2:顺序计算块内注意力,通过 Online Softmax 合并

结果: 训练开销 <4%(流水线并行下),推理延迟 <2%。

与现有方法的关键区别

维度标准残差Highway/ReZeromHCAttnRes
权重类型固定(全 1)可学习/门控可学习矩阵输入依赖(softmax)
信息源仅前一层 hl1h_{l-1}仅前一层mm 个并行流所有前面的层
每层 I/O3d3d3d3d34d34dmm=4)5.5d5.5d(Block)
选择性有限有限完全选择性

实验结果

Scaling Law 实验

在 5 个模型规模(194M 到 528M 激活参数)上的拟合结果:

方法Scaling Law 拟合5.6 PFLOP/s-days 处的 Loss
Baseline (PreNorm)L=1.891×C0.057L = 1.891 \times C^{-0.057}1.714
Block AttnResL=1.870×C0.058L = 1.870 \times C^{-0.058}1.692
Full AttnResL=1.865×C0.057L = 1.865 \times C^{-0.057}1.692

解读: Block AttnRes 相当于 1.25× 的等效计算量提升。这是一个”免费午餐”级别的收益——几乎不增加计算成本就获得了显著的性能提升。Full AttnRes 和 Block AttnRes 在最大规模上的差距缩小到仅 0.001。

48B 模型主实验

将 Block AttnRes 集成到 Kimi Linear 架构(48B 总参数 / 3B 激活参数),在 1.4T token 上预训练。

类别基准测试BaselineAttnRes提升
通用MMLU73.574.6+1.1
通用GPQA-Diamond36.944.4+7.5
通用BBH76.378.0+1.7
数学Math53.557.1+3.6
数学GSM8K81.782.4+0.7
代码HumanEval59.162.2+3.1
代码MBPP72.073.9+1.9
中文CMMLU82.082.9+0.9
中文C-Eval79.682.5+2.9

解读:

  • 所有评估的任务上均有提升,无一退步
  • 提升在多步推理任务上最为显著(GPQA-Diamond +7.5, Math +3.6),这与”改进深度方向信息流有利于组合式任务”的假设一致
  • 知识导向的基准(MMLU, TriviaQA)也有稳定提升

消融实验

变体Val Loss与 Full AttnRes 差距说明
Full AttnRes1.737完整方法
+ 输入依赖 query1.731-0.006更好但增加 d×dd \times d 投影
输入无关混合(去掉 query/key)1.749+0.012输入依赖性是关键
用 sigmoid 替换 softmax1.741+0.004softmax 的竞争性归一化更好
去掉 RMSNorm1.743+0.006RMSNorm 防止大幅值层主导
多头注意力(H=16)1.752+0.015深度方向最优混合跨通道一致
Block AttnRes (S=4)1.746+0.009绝大部分收益保留
DenseFormer1.767+0.030固定系数不够,需要输入依赖
mHC1.747+0.010AttnRes 用更少 I/O 达到更好效果
Baseline (PreNorm)1.766+0.029基线

关键发现:

  1. 输入依赖权重是核心:从固定系数(DenseFormer, 1.767)到可学习系数(mHC, 1.747)到输入依赖(AttnRes, 1.737),每一步都有显著提升
  2. 单头优于多头:深度方向的最优混合在不同通道间是一致的——“当一层的输出相关时,它整体都相关”
  3. RMSNorm 不可或缺:在 Block AttnRes 中尤其关键,因为块级表示在多层上累加后幅值差异更大
  4. Block 大小优雅退化S=2,4,8S = 2, 4, 8 的效果接近,N8N \approx 8 块是实践中的最佳折衷

最优架构分析

在固定计算量和参数量下的 25 种架构配置搜索中:

  • Baseline 最优点dmodel/Lb60d_{model}/L_b \approx 60(较宽较浅)
  • AttnRes 最优点dmodel/Lb45d_{model}/L_b \approx 45(较窄较深)

含义: AttnRes 能更有效地利用深度,使得最优架构偏向更深的网络。这与”改进深度方向信息流”的设计目标完美一致。

复现评估

维度评分(1-5)详细说明
数据可得性⭐⭐⭐论文使用内部训练数据,但方法对数据不敏感,可用公开数据集验证
代码可得性⭐⭐⭐⭐⭐GitHub 开源,包含 PyTorch 伪代码(论文 Figure 2 直接可用)
算力需求⭐⭐Scaling law 实验需要多规模训练;48B 模型需要大量 GPU
工程复杂度⭐⭐⭐⭐Block AttnRes 是 drop-in replacement,集成复杂度低
预期收益⭐⭐⭐⭐⭐1.25× 等效计算量提升,几乎无额外成本,对所有使用标准残差连接的模型都适用

复现建议: Block AttnRes 的实现非常简洁(论文 Figure 2 的伪代码可以直接用),建议先在小模型上验证 scaling law 趋势,然后集成到现有训练流程中。关键要注意 pseudo-query 必须零初始化。

批判性分析

局限性

论文自述的局限:

  1. 48B 模型实验只训练了 1.4T token——与完整训练(通常 10T+)相比仍是早期
  2. 最优架构搜索在固定预算下进行,不同预算下结论可能不同

我们额外发现的问题:

  1. 长序列场景未充分验证:论文提到了 32K 上下文扩展,但没有在超长上下文(128K+)下系统评估。Block 表示在 prefill 阶段占用 NTdN \cdot T \cdot d 内存,对超长序列可能成为瓶颈。
  2. 与其他架构创新的交互:论文只在 Kimi Linear(MoE + KDA/MLA 混合)上验证。AttnRes 与其他架构创新(如 State Space Models、线性注意力)的交互效果未知。
  3. 训练稳定性:论文提到 pseudo-query 必须零初始化以避免训练不稳定,但没有详细分析为什么其他初始化策略会失败,以及在更大规模下是否还有其他稳定性陷阱。

改进方向

  1. 自适应 Block 大小: 当前 Block 大小是超参数。可以让模型自动学习在哪里放置 Block 边界——不同深度区域可能需要不同粒度的跨层访问。
  2. 与 Post-Training 的结合: AttnRes 只在预训练中验证。它对 SFT、RLHF、DPO 等后训练阶段的影响值得探索——更好的深度信息流可能也有利于对齐训练。
  3. 推广到其他”固定累加”场景: 论文揭示的”时间-深度对偶”可能在更多场景中适用,例如 MoE 中的专家聚合、或多模态融合中的模态混合。

独立观察

  • 深层理论意义: 论文通过统一的结构化矩阵分析(Section 6.2)证明了标准残差和所有现有变体都对应深度方向的”线性注意力”,而 AttnRes 是第一个实现深度方向”softmax 注意力”的方法。这完成了与序列维度相同的”线性→softmax”转换——这个类比非常优雅。
  • 对模型压缩的启示: AttnRes 学到的注意力权重(Figure 8)显示强烈的对角主导模式(局部性)+ 选择性跳跃连接 + 持续的 embedding 权重。这意味着模型确实需要选择性跨层访问——传统的层剪枝可能丢失了重要信息。
  • 对 Transformer 架构演进的意义: 这是继 RoPE(改进位置编码)、GQA/MLA(改进注意力效率)、MoE(改进前馈网络)之后,对 Transformer “最后一个未被改进的核心组件”——残差连接——的首次成功大规模改进。

对领域的影响

这篇论文可能会改变 LLM 架构设计的默认选项。Block AttnRes 的”drop-in replacement”特性意味着它可以几乎无成本地集成到任何现有训练流程中。如果社区广泛验证了 1.25× 等效计算量的收益,这可能成为未来所有 LLM 的标准配置——就像 RMSNorm 取代 LayerNorm 一样。