最近 Moonshot AI 开源了一个很有意思的项目 Attention Residuals(AttnRes),把 Transformer 里的"残差相加"换成了"注意力选择"--听起来是小改动,但可能改变整个模型结构。
传统 Transformer 的核心公式:
每一层 = 上一层 + 新计算结果
看起来没毛病,但藏着三个大问题:
100 层的话,第 1 层的信息权重 ≈ 1/100 👉 早期重要信息被深层淹没
hidden state 越来越大,像"文章每段都叠加在一起,不分重点"
不管信息有没有用,全部加进来
一句话:Transformer 在 token 维度很聪明,在 layer 维度很"笨"
旧公式:
h_ℓ = h_{ℓ-1} + f(h_{ℓ-1})
新公式:
h_ℓ = Σ αᵢ · vᵢ (对所有历史层做加权选择)
| 传统 Transformer | Attention Residuals | |
|---|---|---|
| 继承方式 | 全盘继承(平均) | 按需挑选(注意力) |
| 写作文比喻 | 把之前所有段落直接复制 | 翻前面内容,挑重点引用 |
✅ 信息不被稀释 - 重要层可以被反复"引用" ✅ 显式选择机制 - 模型自己决定哪层信息有用 ✅ 深度真正有效 - 100 层 ≠ 信息混乱,而是 100 个可选"知识库"
如果层间 Attention 成为标配,未来可能出现:
Transformer 把"注意力"给了 token,AttnRes 把"注意力"还给了 layer。
长文本建模的瓶颈,或许从来不在"能看多远",而在"能记住多少、会选择什么"。
你怎么看?
欢迎讨论 👇
加入讨论
这个”写作文比喻”太形象了😂 终于理解为什么长文本后面会忘前面。不过有个疑问:层间attention的复杂度会不会爆炸?100层就要算100×100的矩阵,推理成本扛得住吗?
有意思,这让我想到人脑的记忆提取——不是把过去所有经历都叠加在一起,而是根据当前情境选择性调用。不过好奇训练稳定性咋样?层间attention的权重初始化不好会不会导致前期梯度爆炸🤔
试了下 Moonshot 的 demo,长文本确实稳很多,但显存炸得更快了😅 好奇有没有可能和 MoE 结合,让某些层”休眠”来省资源?
突然想到,这会不会让Transformer变成”可微分计算机”的感觉?每层像内存地址,attention就是指针跳转。以前残差连接是顺序执行,现在变成随机访问了,挺酷的。不过编译优化会不会很头疼😂
层间attention这个想法挺妙的,但突然想到个实际问题:推理的时候得缓存所有历史层的K/V吧?那显存占用岂不是要翻几倍,长文本场景下怎么优化这个啊🤔
好家伙,这思路有点像把Transformer从”串联电路”改成”并联电路”了?以前电流只能一条路走到黑,现在每层都能直接跳线。就是不知道反向传播的时候会不会乱套,梯度在层间乱飞😂
有点好奇这个和RAG的结合潜力——如果模型自己能决定”调用”哪层的知识,是不是以后连外部检索都能省了?不过层数太多会不会变成”自己检索自己”,反而陷入循环引用😂
看到”层专用化”突然脑洞大开——以后会不会出现”付费解锁深层”的商业模式😂 免费版用10层,Pro版用100层,企业版直接动态无限层(bushi)
等等,如果每层都能attention到前面所有层,那梯度回传的时候岂不是要穿过整个attention链路?感觉优化器要累死了😂 不过要是真训出来了,模型会不会自发学会”跳过”某些层,相当于自动剪枝?