密集 LM 的共識架構:Pre-norm、RMSNorm、SwiGLU——以及仍在變的長上下文

現代密集解碼器 LM 的架構已高度收斂:pre-norm、RMSNorm、無 bias、SwiGLU。這是穩定性與 GPU 效率的權衡,不是優雅理論。真正仍在變的是長上下文——GQA、滑動視窗與混合注意力。

現代 LLM 共識架構與長上下文混合注意力的抽象示意

若你要訓練一個語言模型,或只是讀各家技術報告,很快會撞上同一種眩暈:LayerNorm 放前還是放後?要用 SwiGLU 還是 GELU?位置編碼選誰?詞表多大、FFN 幾倍寬?設計空間大到像動物園,而我們多半希望自己活在「幾個簡潔理論量就能說完」的世界裡。

現實不是那樣。現代解碼器 LM 的架構,比較像一串權衡:要能從資料裡學、要在 GPU 上訓得動、還不能在 loss 曲線上突然炸掉。好消息是——掃過 LLaMA 系、Gemma、Qwen 等近年密集模型後,有一大塊選擇其實已經高度收斂。真正還在劇烈演進的,多半集中在長上下文怎麼做得起、做得好。

本文整理一組「2020 年代中後期」仍站得住的預設配方,以及哪些地方別急著當永恆真理。最好的學習永遠是自己訓、自己試;次佳做法,是從眾人成功的模型裡,讀出哪些參數幾乎鎖死、哪些還可以動。

架構在優化什麼(三個約束)

把每個元件都問一遍:它服務的是哪一條約束?

約束 失敗長相
泛化/表徵 再多算力也學不動、下游全面崩
系統效率 FLOPs 看起來不多,wall-clock 卻被記憶體搬運吃掉
訓練穩定 深了就炸、梯度尖刺、必須天價 warmup 才勉強收斂

很多「不優雅」的設計——丟掉 bias、改 RMSNorm、到處加 norm——往往是後兩條逼出來的,不是審美淪陷。

歷史上一眼:從百花齊放到 LLaMA 後的收斂

粗線條可以這樣記:

  • 早期 Transformer → 約 GPT-3:大量實驗,沒有單一黃金標準。
  • LLaMA 2 前後:轉捩點。大家開始「我也要類似 LLaMA 的東西」,小改仿訓成為主流。
  • 近一、兩年:一股力氣花在更穩地訓;另一股力氣花在更長上下文。密集模型的全新變體變少,MoE 變多(專家混合是另一條線,本文不展開)。

有一句在從業圈幾乎成共識:原版 Transformer 論文幾乎把細節都做對了——除了 LayerNorm 放的位置。

共識一:把 Norm 移出殘差流(Pre-norm 系)

原版 post-norm 把 LayerNorm 放在殘差路徑上:注意力/FFN 算完、加回 residual 之後再 norm。深網時,反向傳播每過一層都在改梯度尺度,warmup 幾乎變成必需品,收斂也常比較彆扭。

現代主流是 pre-norm 思路:norm 在殘差流之外、在子層計算之前(注意力前、FFN 前)。口訣是:

保持殘差流乾淨。
主幹的 x 盡量直通到輸出,讓梯度有一條乾淨的高速公路。

好處被反覆驗證:更深、更穩、梯度尖刺較可控;早期研究甚至以「能不能拿掉 warmup」當動機,後來發現真正留下的價值是深度與穩定性

變體仍存在:有的模型在運算之後、但仍在 residual 外再 norm;有的不穩時乾脆到處加 norm(含注意力內部)——聽起來荒謬,實務上常常有效。例外也有(早期某些 OPT 變體仍 post-norm),但已不是你今天該當預設去抄的對象。

預設建議:新訓密集解碼器 → residual 外 pre-norm(或報告中已驗證的 pre/post 雙 norm 變體);不要無故回到 residual 上的經典 post-norm。

共識二:RMSNorm,並傾向丟掉 bias

LayerNorm 要減均值、除標準差再仿射;RMSNorm 不做減均值、通常也不帶那套多餘的 bias,只做尺度正規化。表徵能力在理論上 LayerNorm 更強,但大規模 LM 實務顯示:

  • 品質幾乎不掉(有時還略好)
  • 更快,尤其在記憶體帶寬敏感的設定

關鍵洞見往往來自系統課,而不是優美的統計推導:norm 這類算子 FLOPs 占比可以極小,卻佔可觀 runtime——因為它在搬活化值,不在做高算術強度的 matmul。算力貴重的不是「少做了 0.17% FLOPs」,而是別讓 GPU 空等搬運。

同理,原版 Transformer 線性層的 bias,現代多數實作直接拿掉:表徵貢獻有限、搬運不划算,有時還跟穩定性作對。

預設建議:RMSNorm + 線性層無 bias。這是「系統與架構協同設計」的典型免費午餐。

共識三:FFN 用門控(SwiGLU/GEGLU)

激活函數名多到像動物園,但現在真正的分界線比較簡單:

  • 普通 ReLU/GELU MLP:能用,GPT-3 等證明可行
  • 門控線性單元(GLU 家族):幾乎成為現代可靠模型的標配

直觀上,在 FFN 裡除了非線性,再加一條可學習的 gate 去調節通道,用不多的額外計算換穩定的品質提升。常見兩支:

變體 常出現的生態
SwiGLU LLaMA 系及大量後繼(更 mainstream)
GEGLU Google 系(Gemma、T5 等)

參數變多(多一個投影)時,常見經驗是把中間寬度縮成約 2/3,讓總參數與原 MLP 對齊——這是經驗法則,不是物理定律。系統性比較(含 Google 早期大規模架構掃描)大致支持:GLU 變體一致略優。

預設建議:新模型用 SwiGLU 或 GEGLU;除非你在復現特定古典配方,不必特意退回純 ReLU FFN。

曾流行、現已較冷:Attention 與 MLP 硬並行

有一度流行把注意力與 MLP 並行計算再加回 residual(GPT-J、PaLM 敘事裡都有),以便融合算子、共用 norm。近年多數又回到串聯:串聯路徑的系統優化已經夠好,並行換來的加速往往補償不了「有效深度/表徵」的損失。

這提醒我們:架構潮會退。讀報告時要分清「當年為了系統不得不做」與「今天預設仍該抄」。

仍在劇烈變化:位置編碼與長上下文

注意力本身對位置不敏感(沒有位置資訊時,打亂順序內積結構可不變),所以位置注入一直是核心。近年作業與開源底座常對齊 LLaMA 系起點:RoPE + 上述 pre-norm/RMSNorm/SwiGLU

真正還沒「收斂成單一答案」的,是超長上下文的成本與品質

方向 在解決什麼
GQA 等 壓 KV cache、推論記憶體
滑動視窗 × 全注意力交替 多數層只看局部,少數層看全局——長文成本可控
NoPE/混合位置策略 長距與短距用不同位置假設
SSM/線性注意力 × 全注意力混合 用便宜層換深度,偶插全局注意力

近一年開源模型(各家 Command/Llama/Gemma/OLMo/Qwen 等報告中的混合結構)大量出現「每 N 層一次全局、其餘局部或狀態空間層」的節奏。這比「全面換成某種純新注意力」更務實:在全全局太貴全局部太瞎之間找折衷。

預設建議:短中上下文的密集模型,先抄收斂配方;若產品本質是長文/長 agent 軌跡,再優先讀各家「local/global 或 SSM 混合」章節,而不是只比較總參數。

一張可釘在螢幕旁的配方卡

【密集解碼器 LM · 務實起點】
- Residual:乾淨主幹;norm 在外(pre-norm 系)
- Norm:RMSNorm
- Linear:無 bias
- FFN:SwiGLU(或 GEGLU)
- 位置:RoPE 起點
- 拓撲:串聯 block;長 context 再考慮 GQA + local/global(或 SSM)混合
- 不穩:檢查 residual 是否被污染;系統性加 norm / 穩定性技巧
- 系統觀:優先刪「算得少、搬得多、表徵貢獻小」的算子

超參數(寬高比、詞表、LR 與 weight decay)仍要依規模與資料調,但一次只動少數旋鈕是產業報告裡的常態——很少有人每次訓練把架構整碗翻掉。

和應用層怎麼分工(給做 Agent 的人)

若你的日常是 agent、產品與組織,而不是預訓練:

  • 底座已高度產品化:選開源或 API 時,把上述共識當「衛生條件」掃一眼報告即可。
  • 你的差異化多半不在再發明 pre-norm,而在資料、工具、記憶、評估與工作流。
  • 例外:你真的在訓域內小模型、或長 context 是產品生死線——那時長上下文混合架構與推論預算,才值得你下場讀論文。

簡單說:應用層用 agent 組樂高;底座 LM 的預設已經被產業試驗場篩過一輪。 知道共識,是為了少走冤旺路,不是為了每個人都去重訓 70B。

結語

架構課最容易令人沮喪的,是大量名稱與「今年又流行另一個縮寫」。若拉開距離看,畫面其實更乾淨:

殘差要乾淨、正規化要便宜且放對位置、FFN 要門控、位置與注意力拓撲則服務你的上下文長度帳單。

這些結論多半無法在 2017 年從第一性原理一次性推導完畢——它們是穩定性事故、GPU 利用率曲線與無數次對照實驗堆出來的。也因此,最好的直覺仍來自訓練現場;次好的直覺,來自誠實閱讀「大家都怎麼做、又在哪裡開始分歧」。

先抄收斂的,再在長上下文與穩定性上花錢做差異。
那才是面對「不想知道、卻不得不知道」的架構細節時,最省算力的態度。

延伸閱讀

  • Vaswani et al., Attention Is All You Need(原版 Transformer 與 post-norm)
  • LLaMA/LLaMA 2 技術報告(現代密集模型「預設套餐」的重要參照)
  • Shazeer, GLU Variants Improve Transformer(門控 FFN)
  • 各家近年開源報告中的長上下文章節(GQA、sliding window、SSM 混合等)
  • 當實作不再是瓶頸:把「選擇與驗證」工程化(應用層瓶頸;與底座架構正交但可並讀)

我是江中喬,專注於 AI Agent Architecture、Memory Governance 與 Cognitive Diversity,持續研究如何打造能夠長期協作、可信任且可治理的 AI 系統。