
月之暗面近年來在架構層面動作頻繁。他們發布了Kimi Linear(一種混合線性注意力架構)、Kimi K2(32B激活參數的開源MoE模型)、以及在FAST 2025拿下最佳論文的KV存儲系統Mooncake。這篇Attention Residuals報告延續了這種風格:不在應用層卷,去碰那些大家認為已經"解決了"的底層問題。Kimi創始人楊植麟曾公開表示,他們的目標是改掉AI領域"八九年前的老標準",包括優化器、注意力架構——現在又加上了殘差連接。
這篇報告發出後,收到了來自Andrej Karpathy等人的關注。更奇特的是,一個據說17歲的研究者寫了一篇相關解讀帖,被Elon Musk轉發按贊。
十年沒人動過的那根"管道"要理解這篇論文在說什麼,得先想清楚殘差連接到底是什麼。
2015年,微軟研究院的何愷明提出了殘差學習(Deep Residual Learning)。在這之前,訓練超過幾十層的深度網路極其困難:梯度在反向傳播時,經過層層相乘,會指數級縮小,到達靠前的層時已經幾乎為零——也就是梯度消失問題。
殘差連接的解法非常優雅:每一層不再只處理輸入,而是處理輸入之後,把結果加回輸入本身。用公式表示就是:
h? = h??? + f???(h???)
這一加,相當於給梯度開了一條"高速公路"——反向傳播時,梯度可以沿著恆等映射的路徑直通,不被層層變換吞沒。這個技巧從CNN遷移到Transformer,成為每一個現代大模型的標配。GPT系列、LLaMA、DeepSeek
……無一例外。
Kimi團隊的發現是:這根"管道"有一個長期被忽視的副作用。
把殘差連接展開看,第l層的隱狀態實際上是:
h? = h? + f?(h?) + f?(h?) + … + f???(h???)
每一層的輸出都以固定權重1累加進來。沒有任何機制讓某一層說"我現在需要更多第3層的資訊"或者"第20層的那個輸出跟我的任務關係不大"。所有層平等地疊在一起,權重永遠是1。
這就帶來了三個問題:
第一,沒有選擇性。 注意力層和MLP層(專家網路)的功能不同,但它們喝的是同一鍋湯——同一個累加狀態,哪怕不同類型的層可能需要不同權重的歷史資訊。
第二,資訊一旦混入就無法單獨取出。 第5層的某個有用表示,到了第50層,已經被其餘45層的輸出稀釋掉了。想"回頭看"第5層?沒有機制。
第三,隱狀態的量級隨深度線性增長。 隨著層數增加,累加和越來越大,每個新層的輸出相對於這個巨大的累加值越來越微不足道。為了維持影響力,越深的層被迫輸出越大的值。這在使用PreNorm(預歸一化)的架構里尤其嚴重,理論上隱狀態量級以O(L)增長,L是層數。這個現象被研究者稱為"PreNorm稀釋"(PreNorm dilution)。
這也解釋了一個經驗觀察:大模型里,相當多的層被剪掉之後,性能損失極小。如果每一層都真的有不可替代的貢獻,怎麼可能隨便裁?
把注意力機制"轉90度"Kimi團隊的核心洞察來自一個類比。
RNN(循環神經網路)在序列維度上也有同樣的問題:每一步只能看到前一步壓縮出來的狀態,無法有選擇地"回頭看"重要的早期資訊。2017年,Transformer用注意力機制解決了這個問題——讓每個位置可以直接訪問所有歷史位置,並且用數據驅動的權重來決定關注哪裡。
這篇論文說,殘差連接在深度維度上面臨的,正是RNN在序列維度上面臨的同一個問題。既然序列維度的"固定權重循環"可以被注意力取代,為什麼深度維度不行?
他們把這個思路直接實現了,叫做Attention Residuals(AttnRes):
h? = α?→? · h? + α?→? · f?(h?) + … + α???→? · f???(h???)
原來權重全是1,現在換成了softmax注意力權重α?→?。這些權重由一個簡單機制計算:每一層有一個可學習的"偽查詢向量"w?,維度就是模型的隱維度d,它對所有前面層的輸出打分,經過softmax歸一化,得到每一層的權重。
幾個關鍵設計細節值得注意:
查詢是層級固定參數,不依賴輸入。這意味著同一層對不同輸入序列的權重是一樣的——這是一個有意的簡化,雖然讓權重輸入依賴(即從當前隱狀態投影出查詢)能進一步降低Loss(從1.737降到1.731),但會引入額外的參數和推理時的順序訪存開銷,所以默認方案選了固定參數。
在鍵上加RMSNorm。防止某些層因為輸出量級特別大而在softmax里占據主導地位。
偽查詢向量初始化為零。這意味著訓練最開始,所有層的權重是均勻的,AttnRes退化成等權平均,跟標準殘差行為相近,不會引入訓練不穩定。
關鍵數字:完整版AttnRes(Full AttnRes)每層只新增一個d維向量w?,以及對應的RMSNorm——參數量增加幾乎可以忽略不計。
規模化的代價:從Full到Block理論上,Full AttnRes需要在每一層訪問所有前面層的輸出。
訓練小模型時,這不成問題——前向傳播已經需要保存這些激活值用於反向傳播,AttnRes只是復用,沒有額外記憶體開銷,計算量增加也微乎其微。
但大規模訓練時,兩個常規手段會改變這一點:
激活重計算(Activation Recomputation):為了節省顯示記憶體,前向傳播時不保存中間激活,反向傳播時重新計算。這樣一來,AttnRes需要的那些層輸出就要額外保留,記憶體開銷變成O(Ld)——L是層數,d是隱維度。
流水線並行(Pipeline Parallelism):大模型訓練時,不同層分布在不同GPU上。層輸出要跨GPU傳輸,Full AttnRes意味著要傳L個激活,通信量O(Ld),隨層數線性增長。
Kimi團隊為此設計了Block AttnRes(塊注意力殘差):
把L層劃分成N個塊,塊內用標準殘差累加,塊間才做注意力。每個塊被壓縮成一個代表向量,跨塊的注意力只需要訪問N個向量,記憶體和通信從O(Ld)降到O(Nd)。
實驗表明,N≈8(8個塊)就能恢復Full AttnRes大部分的增益。在128層的模型里,相當於每16層壓成一個塊。
這個設計背後還有一套精巧的工程:
跨階段緩存(Cross-stage Caching):流水線並行時,每次跨階段只傳增量塊(新產生的塊),而非全量歷史——前面階段已經傳過的塊在本地緩存,無需重傳。這把通信開銷從O(C²)降到O(P²V),C是總chunks數,P是物理階段數,V是虛擬階段數。穩定態時,通信開銷可以和計算完全重疊。
兩階段推理策略:推理時,一個塊內所有層的"偽查詢向量"都是已知的(它們是固定參數,不依賴輸入),可以一次性打包做一次矩陣乘法(Phase 1),而不是每層各做一次。只有塊內的增量依賴(intra-block attention)需要順序處理(Phase 2),最後用在線softmax合併兩部分結果。這把每層的記憶體訪問從O(L·N)降到接近標準殘差的水平。
最終數字:訓練開銷比標準殘差增加不超過4%,推理延遲增加不超過2%。
48B模型,1.4萬億token,實驗結果論文裡有三類實驗。
Scaling Law實驗
5個模型規模(激活參數從194M到528M),每個規模訓練三種變體:PreNorm基線、Full AttnRes、Block AttnRes。按照Chinchilla範式擬合冪律曲線:

三者斜率相近,說明AttnRes沒有改變scaling的規律,只是整體平移了效率曲線。在5.6 PFLOP/s-days的計算量下,Block AttnRes達到的Loss(1.692),基線需要1.25倍的計算才能達到。換句話說,同等計算量下,Block AttnRes免費獲得了約25%的計算等效提升。
消融實驗
在16層模型上對關鍵設計做了對照:

一個重要發現:DenseFormer(讓每層訪問所有歷史層輸出,但權重是固定的標量)相比基線毫無提升(1.767 vs 1.766)。這說明**"能訪問歷史層"本身不夠,關鍵是權重必須是輸入依賴的、動態計算的**。固定權重的跨層訪問跟沒有沒有區別。
另一個有意思的發現:多頭注意力(讓不同通道關注不同歷史層)反而比單頭更差(1.752 vs 1.746)。這說明最優的深度混合方式在各個通道上是基本一致的——一個層輸出有用,它就整體有用,不存在"對某些通道有用、對其他通道沒用"這種精細分工。
48B主模型實驗
Kimi Linear架構:48B總參數,3B激活參數,27個Transformer塊(54層,按注意力層+MLP層各算一層),8個路由專家加1個共享專家的MoE結構。訓練數據1.4T token,分兩階段:先1T token預訓練,再約400B高質量數據中期訓練,最後在32K token長度上繼續訓練。
Block AttnRes配置:每6層一個塊,共9個塊加token embedding,10個深度來源。
訓練動態上可以看到兩個現象:
輸出量級:基線模型的各層輸出量級隨深度單調增長(驗證了PreNorm dilution),到靠後的層已經比早期層大了十幾倍。Block AttnRes把這個增長限制在每個塊內,塊間有選擇性的聚合會重置這種累積,形成有界的周期性模式。
梯度量級:基線模型最早期的幾層梯度異常大,越深越小,分布非常不均勻。Block AttnRes的可學習softmax權重引入了層間的競爭(所有來源的權重加和為1),使梯度分布更均勻。
下游任務評測結果(基線 vs AttnRes):

全部任務AttnRes均優於或持平基線。提升最大的是GPQA-Diamond(+7.5分),這個benchmark測的是博士級別的科學推理——多步組合推理恰好需要後面的層能回溯訪問前面層的特定表示,AttnRes的機制直接命中這個需求。
最優架構向"深而窄"偏移一個頗有意思的副產品分析:AttnRes改變了最優的模型架構配置。
在固定FLOPs(≈6.5×10¹?)和固定參數量(≈2.3×10?)下,研究者掃描了25種架構配置,橫軸是dmodel/Lb(模型寬度相對深度的比值),縱軸是H/Lb(注意力頭數相對深度的比值)。
基線模型的最優點在dmodel/Lb≈60(1.847 Loss)。AttnRes的最優點偏移到了dmodel/Lb≈45(1.802 Loss)。
在固定參數量下,dmodel/Lb更小意味著:每層的寬度更窄,但層數更多——也就是更深更窄的網路。
這說明AttnRes能更有效地利用深度。從部署角度看,更深的模型推理延遲更高(層是順序計算的),所以這個發現並不直接給出"應該用更深的模型"的建議,而是說明了AttnRes在什麼維度上最受益。
它學會了什麼樣的跨層模式論文可視化了每一層實際學出來的注意力權重(α?→?),結果有三個值得關注的規律:
局部性主導,但有顯式跳躍連接。每一層主要關注它的直接前驅(對角線上權重最高),這和標準殘差的行為一致——但除此之外,有些層對更早的來源有明顯的非零權重,相當於模型自己學出了跳過若干層的"快捷路徑",完全由數據驅動。
嵌入層的持續影響。token embedding(第0個來源)在很多層都有相當的權重,尤其是在注意力層之前。這意味著模型傾向於保持對原始詞表示的直接訪問,而不僅僅依賴層層變換之後的壓縮狀態。
注意力層和MLP層有不同偏好。注意力層之前的輸入顯示出更寬的感受野(關注更多不同深度的來源),MLP層之前的輸入則更集中於最近的幾層。這跟人們對這兩類子層功能的直覺一致:注意力負責跨層路由資訊,MLP在局部做變換。
Block AttnRes的權重可視化保留了上述所有模式,只是在塊級別上更粗粒度、更集中——塊間的壓縮起到了隱式正則化的效果。
https://arxiv.org/pdf/2603.15031
Q&A
Q1:Attention Residuals跟普通殘差連接的根本區別在哪裡?
標準殘差是把所有歷史層的輸出以固定權重1全部加起來。AttnRes用softmax注意力代替這個固定權重,讓每一層通過一個可學習的"查詢向量",根據內容動態決定從歷史層的哪裡取多少資訊。關鍵差別在於:前者沒有選擇,後者有選擇;前者權重固定,後者權重是數據驅動的。實驗表明,僅僅讓每層"能看到"歷史層但用固定權重(如DenseFormer),對性能毫無幫助——動態權重才是核心。
Q2:Block AttnRes在實際部署中的開銷是多少?
訓練階段,在不開流水線並行時,額外開銷可忽略不計;開流水線並行時,端到端開銷不超過4%。推理階段,延遲增加不超過2%。記憶體方面,每token只需緩存約8個額外向量(對應8個塊),極低。參數量增加幾乎為零(每層一個d維向量和一個RMSNorm),完全是一個可以無縫替換標準殘差的drop-in方案。
Q3:這個工作的最大意義是什麼?
它指向的是一種更普遍的模式:注意力機制最初是為序列維度設計的,逐漸被擴展到圖像的空間維度、多模態對齊……現在是神經網路的深度維度。每次這樣的擴展,本質上都是把一個固定操作替換成了有選擇性的、數據驅動的操作。這篇論文表明,殘差連接這個自2015年以來幾乎未被觸碰的基礎組件,在深度維度上同樣有空間做這個替換——而且做了確實有效,而且效果相當明顯。如果這種增益在更多架構上被復現,"注意力殘差"很可能成為下一代大模型的默認配置。






