注意力残差
Kimi Team · Moonshot AI · 2026 · arXiv:2603.15031
这篇论文动的是深度学习里十年没人敢动的一根柱子:残差连接。别紧张——PreNorm、AttnRes、softmax、mHC,这些名字你一个都不用记。你只需要会一件事:给果汁兑水。因为一杯被规矩毁掉的果汁,就是每一个几十层大模型的日常。
一杯被规矩毁掉的浓缩汁
先打个工。你在一家果汁店的流水线上,店规只有一条:每经过一个工位,就必须往杯子里等量倒入一杯该工位的配料,不许多,不许少。第 1 站倒的是浓缩橙汁原液——整杯饮料的灵魂。听起来没什么大不了的吧?拖动滑块,把流水线加长,看看原液还剩多少存在感:
拉到 48 站,原液只占 2.1%——这杯"橙汁"基本是水。右边那条红色曲线就是全部的数学:占比 = 1 ÷ 工位数,一条无情的反比例曲线,每一站倒进来的东西都逃不掉。现在可以摊牌了:你刚才执行的店规,就是深度神经网络里的残差连接(Residual Connection)——每一层的输出,等量地加进一条公共的总和里,权重永远是 1。现代大模型用的 PreNorm 变体(归一化放在残差之前)尤其如此:48 层的模型里,任何一层的新发现,都只占总信号的约 2%。
论文在真实模型里抓到的两条现场证据(图 5b、5c)
① 各层的输出范数越训越大——为了在不断膨胀的总和里被听见,每一层都被迫把嗓门越练越大;② 最早几层的梯度异常巨大,整个网络的训练动态被扭曲。这个病不是推演出来的,是在基线模型身上量出来的。
然而先别急着骂这条店规——它可是功臣,而且是十年功臣。
传送带大楼:这条规矩为什么曾是英雄
2015 年,何恺明的 ResNet 论文解决了当时最头疼的难题:网络叠到几十层就训不动了。他的办法简洁到近乎粗暴——每一层的输出,直接加上它的输入,原样传下去。这条"高速公路"让梯度畅通无阻,152 层的网络从此成为现实。从 ResNet 到 GPT,十年,没有人动过这根柱子。
把它想成一栋 48 层的办公楼:楼里只有一条向上的传送带,每层办公室必须往带上倒恰好一箱自己的工作成果。规定动作的好处显而易见——带子永远畅通,谁也不能垄断带子。但天台上收货的人拿到的,永远是 48 箱等量混合的大杂烩:
想单独找回第 3 层当年那一箱东西?对不起,它早就和其他 47 箱融成一体,拆不出来了。于是问题变成:能不能让楼上的人自己挑要哪几箱,而不是照单全收?听起来需要一个全新的发明——其实不用。这病,我们十年前就治过一次。
这病我们治过:把注意力转个方向
回想一下(或者去读本站那篇《注意力,就是你所需要的一切》):Transformer 之前,RNN 读句子靠把全部历史压成一个向量逐步传话,距离就是遗忘;2017 年,注意力让每个词直接回望所有历史词,用 softmax(把一排分数变成加起来等于 1 的比例)自己决定听谁的。
Kimi 团队的整篇论文,核心就一次转向:层与层之间的传递,和词与词之间的传递,结构上是同一回事——都是把很多份历史压成一份往前送。论文第三节的标题就叫「时间与深度的统一视角」(A Unified View of Time and Depth)。时间方向的病被注意力治好了,深度方向呢?先押个注——如果让第 40 层自己决定怎么拿前面 39 层的箱子,它该怎么拿?
想看这次选择性聆听的真实算术?(可跳过,不影响后面)
假设第 4 层正要收货。它的购物清单(query)分别和前面每一层的"名片"(key)做点积——两个向量越像,分数越高。用一组 2 维的玩具数字跑一遍:
| 第 0 层(原貌) | 第 1 层 | 第 2 层 | 第 3 层(上一层) | |
|---|---|---|---|---|
| 清单 q₄ = [2, 1] 的点积分 | [1,1]→ 3.0 | [0,1]→ 1.0 | [1,0]→ 2.0 | [2,1]→ 5.0 |
| softmax 之后的权重 | 0.11 | 0.02 | 0.04 | 0.83 |
第 4 层的输入 = 0.83 × 第 3 层的箱子 + 0.11 × 原貌 + …——按权重把各层的输出加权混合。对比一下等权残差:同样四份历史,权重被钉死在 0.25、0.25、0.25、0.25。整个 AttnRes 就是把这排"钉死的 1",换成一排"学出来的 softmax"。和 2017 年那个 Attention(Q,K,V) 公式长得一模一样——只是 Q、K、V 现在住在层与层之间,不在词与词之间。
然而这张购物清单是网络自己学的——它到底学出了什么口味?
打开黑箱:每一层到底在回望谁
论文把训练完的模型解剖开,画出了每一层的听取权重。下面这张热力图按论文描述重现了那些模式(教学示意,非真实权重):纵轴是"正在收货的层",横轴是"它在听谁",颜色越深权重越高。先点下面三个按钮,逐个看网络自己长出来的三个习惯;再点任意一个格子,把那一层的整张购物清单读出来:
① 对角线最亮:绝大多数注意力仍投给上一层——残差连接的老直觉没被推翻,只是从"必须"变成了"自愿";② 第 0 列常亮:每一层都保留一条直通词嵌入(embedding,词的原貌)的小道,随时回原文核对;③ 左下角的亮斑:深层会跨过十几层,直接调取早期某层的箱子——这是等权传送带在原理上做不到的动作。没有任何一条是设计者规定的,全是 softmax 自己学出来的。
然而,自由是有账单的。
工程的讨价还价:Block AttnRes
Full AttnRes(全量版)要求每一层都存着、并且在流水线并行时跨机器传输前面所有层的输出——128 层就是 128 份,显存和通信开销随深度线性膨胀,大规模训练扛不住。论文的讨价还价干脆利落:把楼切成若干个块(block),块内维持普通残差(便宜、成熟),只在块与块之间做注意力(贵,但少)。拖动滑块切楼,看两本账怎么变:
甜点在 8 块附近:跨块只需要背 8 份历史,每层访存 5.5d——对比另一个替代方案 mHC 的 34d,只是零头;而收益几乎追平 Full 版,论文实测大模型上两者的 loss 差距缩到 0.001。块内认命,块间自由——好的工程设计,常常是给理想找一个便宜的近似。代价谈妥了,该看成绩了。
成绩单:一张电费单,多买四分之一的智力
在 scaling law 实验里,Block AttnRes 达到的 loss,基线要烧 1.25 倍算力才追得平。而它自己付出的代价是:训练开销增加不到 4%,推理延迟增加不到 2%。下游 15 个基准测试全线上涨——拖动滑块,让它们按涨幅从小到大登场,涨得最狠的压轴:
看压轴那一行:GPQA-Diamond(研究生级科学题)暴涨 +7.5,MATH-500 +3.6,DROP +2.8——最依赖多步推理的任务,恰恰是从"深层不再被稀释"里受益最大的任务,因为多步推理正需要深层做出新东西、而且被听见。论文还做了一组架构搜索:固定总算力扫了 25 种"深瘦 / 浅胖"体型,基线的最优点在 dmodel/L≈60(偏浅胖),AttnRes 的最优点移到了 ≈45——同样的预算,楼盖得更高变得划算了。深度曾经的浪费,现在能用上了。
杠精角落:四个你可能正想问的问题
"这不就是 DenseNet 吗?"——方向相近,机制不同。DenseNet 把前面所有层的特征原样拼接,通道数随深度爆炸,也没有"选择":全都收下。AttnRes 用 softmax 做加权聚合,维度不变,权重可学,Block 版还把访存压到了每层 5.5d。
"多付 4% 训练开销,值吗?"——它换来的是 1.25× 的等效算力。同一目标 loss,基线要多烧四分之一的电。这笔账在大模型的预算表上不是小数。
"你这些热图和柱状图是真的吗?"——不是模型原始输出。全文交互均为按论文描述构造的教学示意(模式对、数值近似),只有第 6 节的 15 项基准分数、1.25×、5.5d/34d、60→45 这些数字直接取自论文。这是本文的诚实边界。
"会不会只在实验那个规模有效?"——论文的 scaling law 覆盖了多档算力,而且模型越大,Block 与 Full 的差距越小(缩到 0.001),趋势是好的。但万亿参数级别的验证确实还没有——这是坦白的局限,不是被回答掉的问题。
楼交给你:架构师沙盒
零件都齐了:稀释(第 1 节的果汁)、选择性聆听(第 3 节的双柱图)、分块(第 5 节的两本账)。最后把它们装进同一块仪表盘,你来当架构师。三个挑战:① 把等权残差拉到 128 层,看"新层话语权"惨到什么程度;② 换 Full AttnRes,看"每层背的历史"炸到多少;③ 找一个开销不超过 10 份、等效算力又摸到 1.25× 的配置——找到了,你就亲手复现了论文的结论。
层与层之间,也是注意力
这篇论文没有发明新零件——softmax、query、残差,全是十年老将。它做的是把 2017 年那场胜利换一个方向重打一遍:那一年,注意力把词从"必须逐个传话"里解放出来;这一次,它把层从"必须等量上贡"里解放出来。你在第 3 节押的那个注(不管押没押中"挑着拿"),和《注意力》那篇里的喊话大厅,是同一个思想在两个方向上的回声。
回想你这一路亲手做过的事:你把一杯浓缩汁兑到只剩 2% 的橙子味,看着 48 根柱子在等权那边一起塌掉,点亮过热图里"常驻回望原貌"的第 0 列,把一栋楼切成 8 块换来 96% 的收益,最后在沙盒里亲手调出了论文的答案。这一切归结成一句话:凡是把很多份历史压成一份往前送的地方,都值得问一句——能不能让它自己挑?时间维度问过了,深度维度刚问完。下一个被这样问到的方向,会是哪儿?