來源 | Ahead of AI, 機器之心
作者 | Sebastian Raschka
自首次提出 GPT 架構以來,轉眼已經過去了七年。
如果從 2019 年的 GPT-2 出發,回顧至 2024–2025 年的 DeepSeek-V3 和 LLaMA 4,不難發現一個有趣的現象:儘管模型能力不斷提升,但其整體架構在這七年中保持了高度一致。
當然,細節上仍有不少演進。例如,位置編碼從最初的絕對位置(Absolute Positional Encoding)發展為旋轉位置編碼(RoPE);注意力機制也從標準的多頭注意力(Multi-Head Attention)逐步過渡為更高效的分組查詢注意力(Grouped-Query Attention);而激活函數方面,則從 GELU 被更高效的 SwiGLU 所取代。
然而,這些變化中究竟有沒有「顛覆性創新」?七年來,大型語言模型的架構是否真正迎來了質的飛躍,還是仍在原有框架上不斷精雕細琢?
本文部落格來自 Sebastian Raschka,知名 AI 研究者和部落客,《Python 機器學習》作者。
部落格詳細列舉了 8 個主流大型語言模型,包含 DeepSeek 和 Kimi 等國產大型模型,硬核解析了每個大型模型的架構設計和革新思路,深度介紹了現代最新大型語言模型的架構設計以及大型模型的架構演進趨勢。
圖 1:本文所涵蓋的部分 LLM 架構示意圖。
DeepSeek V3/R1
DeepSeek R1 在 2025 年 1 月發布時引起了巨大反響。
DeepSeek R1 是一個以 DeepSeek V3 架構為基礎建構的推理模型,而 DeepSeek V3 最初於 2024 年 12 月推出。儘管本文重點討論 2025 年發布的架構,但作者認為應將 DeepSeek V3 納入其中。
本節將重點介紹 DeepSeek V3 引入的兩項關鍵架構技術,這些技術提升了其計算效率,也使其在眾多大型語言模型中脫穎而出。
若對 DeepSeek V3 關鍵技術感興趣,請參照技術報告:
論文標題:DeepSeek-V3 Technical Report
論文連結:https://arxiv.org/abs/2412.19437
多頭潛在注意力機制 (MLA)
在討論多頭潛在注意力機制之前,應從近年來被廣泛採用的分組查詢注意力機制(GQA)說起,它已成為相較於傳統多頭注意力機制(Multi-Head Attention, MHA)更具計算與參數效率的新標準替代方案。
下面是對 GQA 的簡要說明:與 MHA 中每個注意力頭都有自己的一組鍵(key)和值(value)不同,GQA 的做法是將多個注意力頭分組,讓它們共享相同的 key 和 value 投影,從而降低記憶體使用。
如圖 2 所示,假設有 2 組 key-value 和 4 個注意力頭,那麼注意力頭 1 和 2 可以共享第一組 key 和 value,而注意力頭 3 和 4 共享第二組。這種做法減少了總的 key 和 value 計算量,降低了記憶體使用,提高了效率。
圖 2:多頭注意力機制(MHA)與分組查詢注意力機制(GQA)的對比示意圖。
GQA 的核心思想是:透過讓多個 query 頭共享一組 key 和 value,從而減少 key 和 value 的總數。這帶來了兩個主要好處:
1. 降低模型參數總量;
2. 在推論時減少 KV 緩存中 key 和 value 張量的記憶體頻寬使用,因為需要存取的鍵值對變少了。
接下來介紹的 多頭潛在注意力機制(MLA),則提供了一種 不同的記憶體節省策略,並且它與 KV 緩存機制的配合更加緊密。
與 GQA 透過「共享鍵值頭」不同,MLA 是將 key 和 value 張量壓縮到一個低維潛在空間後再存入 KV 緩存。而在推論過程中,這些壓縮張量會被重新投影回原始維度再使用(如圖 3 所示)。這一過程中雖然引入了一次額外的矩陣乘法,但大大節省了記憶體使用。
圖 3:多頭潛在注意力機制(MLA,應用於 DeepSeek V3 和 R1)與常規多頭注意力機制(MHA)的對比。
值得說明的是,MLA 並不是 DeepSeek V3 首創的技術,它的前代模型 DeepSeek V2 就已經使用(甚至首次提出)了該機制。
MLA 是一種非常巧妙的技術手段,能夠在提升模型表現的同時,大幅降低 KV 緩存的記憶體佔用。相比之下,它甚至略優於傳統的 MHA。接下來將進入下一個架構模組的分析。
Mixture-of-Experts (MoE)
DeepSeek 架構中另一個值得重點關注的重要組成部分是它對 MoE(Mixture-of-Experts,專家混合)層的應用。雖然 MoE 並非由 DeepSeek 首創,但這一技術在 2025 年迎來了回歸,在後文介紹的許多架構中也能看到它的身影。
MoE 的核心思想是:將 Transformer 中的每個前饋模組(FeedForward)替換為多個「專家層」(每個專家層本質上也是一個前饋網路)。也就是說,原本單一的前饋結構被替換為多個並行的前饋子模組,具體如圖 5 所示。
圖 5:右圖展示了 DeepSeek V3/R1 中 Mixture-of-Experts(MoE)模組的結構,對比左圖中標準 LLM 所使用的普通前饋模組。
在 Transformer 區塊內部的前饋模組(上圖中的深灰色區塊)通常佔據了模型總參數量的很大一部分。
因此,將一個前饋模組替換為多個前饋模組(即建構 MoE 結構)會顯著增加模型的總參數量。不過,關鍵的技巧在於:並不為每個 token 啟用所有的專家模組(experts),而是由一個「路由器(router)」為每個 token 挑選出其中一小部分進行激活。MoE 的這種設計使得模型擁有極大的參數容量,在訓練階段能吸收更多知識;但在推論時由於稀疏激活,大幅降低了計算開銷。
舉個例子:DeepSeek-V3 每個 MoE 模組中擁有 256 個專家,總參數量高達 6710 億。但在推論時,每個 token 實際只激活其中 9 個專家(1 個共享專家 + 路由選出的 8 個專家)。
圖 6:DeepSeekMoE 的註釋圖
關於 DeepSeek MoE 的更多細節,請參閱以下論文:
論文標題:DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models
論文連結:https://arxiv.org/abs/2401.06066
在 DeepSpeedMoE 論文中首次指出,引入「共享專家」(shared expert)可以顯著提升模型整體的回歸(modeling)性能。其原理很可能是:對於通用或重複性強的模式,不需要多個專家分別學習;只需由共享專家統一處理,從而釋放出其他專家的容量,專注於學習更加專業的知識模式。
OLMo 2
由非營利機構 Allen Institute for AI 發布的 OLMo 系列模型,因其在訓練數據、程式碼和技術報告方面的高度透明而備受關注。
OLMo 模型結構清晰、設計規範,更重要的是,由於極高的透明度,它們為大型語言模型的開發提供了極佳的參考範式。
在 OLMo 2 中有哪些值得注意的架構設計選擇呢?
主要集中在歸一化策略上:包括 RMSNorm 層的位置安排,以及 QK-norm(Query-Key 歸一化)的引入。
另一個值得一提的是,OLMo 2 仍採用傳統的多頭注意力機制(MHA),並未採用 MLA 或 GQA 等新型注意力結構。
關於更多 OLMo 2 的細節資訊,請參照論文:
論文標題:2 OLMo 2 Furious
論文連結:https://arxiv.org/abs/2501.00656
歸一化層位置選擇
總體而言,OLMo 2 在架構上大體沿用了最初 GPT 模型設計,與目前多數主流大型語言模型相似。但它也存在一些值得關注的不同之處,先從歸一化層的設計說起。
與 Llama、Gemma 以及大多數現代 LLM 一樣,OLMo 2 將歸一化方法從 LayerNorm 替換為 RMSNorm。
真正值得討論的是 RMSNorm 的位置選擇。在最初的 Transformer 架構中,兩個歸一化層分別位於注意力模組和前饋模組之後,這種結構被稱為 Post-LN 或 後歸一化(Post-Norm)。
而 GPT 及其後大多數的 LLM 模型,則將歸一化層放在注意力模組和前饋模組之前,這種做法稱為 Pre-LN 或 前歸一化(Pre-Norm)。
下圖展示了 Post-Norm 與 Pre-Norm 的結構對比:
圖 8:Post-Norm、Pre-Norm 以及 OLMo 2 採用的 Post-Norm 變體的對比圖。
早在 2020 年,Xiong 等人就指出 Pre-LN 在模型初始化時可以帶來更穩定的梯度。此外,研究人員還提到,Pre-LN 即使在不使用學習率預熱的情況下也能正常訓練,而這是 Post-LN 通常難以做到的。
在 OLMo 2 中,歸一化層並不是放在注意力層和前饋網路之前,而是放在之後,如上圖所示。然而,與最初 Transformer 架構不同的是,這些歸一化層仍然嵌套在殘差層內部。
那麼,他們為何要調整歸一化層的位置呢?
原因在於這種設計有助於提升訓練的穩定性,這一點將在下圖中進行展示。
圖 9:展示了 Pre-Norm(如 GPT-2、Llama 3 等所採用)與 OLMo 2 所採用的 Post-Norm 變體在訓練穩定性方面的對比。
不過遺憾的是,這張圖展示的結果同時包含了歸一化順序調整和 QK-Norm 兩個因素,而後者是一個獨立的概念。因此很難明確判斷,歸一化位置的改變對訓練穩定性的提升到底貢獻了多少。
QK-Norm
QK-Norm 本質上是另一個 RMSNorm 層,它被放置在多頭注意力模組內部,在應用旋轉位置編碼(RoPE)之前,對 Query 和 Key 進行歸一化處理。
如前所述,QK-Norm 與 Post-Norm 結合使用,有助於穩定訓練過程。關於 QK-Norm 更多細節,請參閱以下論文:
論文標題:Scaling Vision Transformers
論文連結:https://arxiv.org/abs/2106.04560
簡而言之,OLMo 2 架構中的主要設計亮點是 RMSNorm 的放置方式:將 RMSNorm 放置在注意力模組和前饋模組之後(屬於 Post-Norm 的一種變體),並在注意力機制中對 query 和 key 引入額外的 RMSNorm(即 QK-Norm)。這兩項改動結合使用,有助於穩定訓練損失。
下圖展示了 OLMo 2 與 Llama 3 的架構對比;可以看到,除了 OLMo 2 仍使用傳統的 MHA 而非 GQA 外,二者在整體結構上相對接近。
圖 10:Llama 3 與 OLMo 2 的架構對比圖。
Gemma 3
Google 的 Gemma 系列模型一直表現非常出色,但相比於 Llama 系列等熱門模型,它們的關注度似乎總是略顯不足。
Gemma 3 在架構上使用了另一種「技巧」來降低計算成本:滑動視窗注意力(sliding window attention)。
藉助滑動視窗注意力機制,Gemma 3 團隊成功大幅降低了 KV 緩存的記憶體需求,具體效果如圖所示。
圖 11:Gemma 3 的 KV 緩存記憶體節省效果。
如果把常規的自注意力看作一種「全域」注意力機制,因為序列中的每個元素都可以訪問其他所有元素,那麼滑動視窗注意力則可以看作是一種「局部」注意力機制,因為它限制了目前查詢位置周圍的上下文範圍。下圖展示了這一機制的原理。
圖 12:常規注意力機制(左)與滑動視窗注意力機制(右)的對比圖。
需要注意的是,滑動視窗注意力機制既可以與多頭注意力配合使用,也可以與分組查詢注意力(GQA)一起使用;Gemma 3 就採用了 GQA。
如上所述,滑動視窗注意力也被稱為「局部注意力」,因為其關注的上下文僅限於圍繞目前查詢位置的一個局部視窗,並且該視窗會隨著查詢位置的移動而滑動。相對地,常規注意力機制則是「全域」的,每個 token 都可以訪問所有其他 token。
雖然滑動視窗注意力是 Gemma 3 架構中最顯著的特點,但作為對前文 OLMo 2 部分的補充,在此簡要介紹一下 Gemma 3 中歸一化層的放置方式。
一個小但有趣的細節是:Gemma 3 在其 GQA 模組周圍同時使用了 RMSNorm 的 Pre-Norm 和 Post-Norm 形式。
這與 Gemma 2 的做法類似,但依然值得強調,因為它不同於以下幾種主流做法:
1. 原始 Transformer 架構使用的 Post-Norm;
2. 由 GPT-2 推廣、並被許多後續架構採用的 Pre-Norm;
3. 前文在 OLMo 2 中看到的、特殊的 Post-Norm 變體。
Gemma 3 的這種雙重歸一化策略展示了一種不同尋常的歸一化設計選擇,可能與其在推論效率和訓練穩定性之間的權衡有關。
圖 14:OLMo 2 與 Gemma 3 的架構對比;請注意 Gemma 3 中額外的歸一化層。
這種歸一化層的放置方式相對直觀,因為它結合了 Pre-Norm 和 Post-Norm 的優勢。
作者認為,多加一點歸一化並無壞處。
關於 Gemma 3 的更多細節,請參閱技術報告:
論文標題:Gemma 3 Technical Report
論文連結:https://arxiv.org/abs/2503.19786
Mistral Small 3.1
Mistral Small 3.1 24B 於今年 3 月發布,緊隨 Gemma 3 之後。它值得關注的一個原因是,在多個基準測試中,其表現優於 Gemma 3 27B,同時推論速度更快。
造成 Mistral Small 3.1 推論延遲低於 Gemma 3 的主要原因,可能在於其定制的分詞器(tokenizer),以及更小的 KV 緩存和更少的層數。除此之外,它整體上採用的是標準架構,如圖所示。
圖 16:Gemma 3 27B 與 Mistral 3.1 Small 24B 的架構對比圖。
有趣的是,早期的 Mistral 模型曾使用滑動視窗注意力機制,但在 Mistral Small 3.1 中似乎放棄了這一設計。
與使用滑動視窗的 Gemma 3 不同,Mistral 採用了常規的 GQA。
作者推測,儘管滑動視窗注意力可以降低記憶體使用,但它並不一定能降低推論延遲,而這正是 Mistral Small 3.1 所優先關注的性能指標。
Llama 4
前文對專家混合模型(MoE)的詳細介紹又派上用場了。
Llama 4 同樣採用了 MoE 架構,其餘部分則延續了較為標準的設計,整體架構與 DeepSeek-V3 非常相似,如圖所示。
圖 17:DeepSeek V3(6710 億參數)與 Llama 4 Maverick(4000 億參數)架構對比圖。
儘管 Llama 4 Maverick 的整體架構看起來與 DeepSeek-V3 非常相似,但其中仍有一些值得注意的差異。
首先,Llama 4 採用了與其前代模型相同的 GQA,而 DeepSeek-V3 則使用了 MLA。
這兩款模型都是非常龐大的架構,DeepSeek-V3 的總參數量大約比 Llama 4 Maverick 多出 68%。但從實際推論中參與計算的參數數量來看,DeepSeek-V3 啟用的參數達 370 億,是 Llama 4 Maverick(170 億)的兩倍多。
在 MoE 設定方面,Llama 4 Maverick 使用的是更為傳統的架構:每次僅激活 2 個專家,每個專家的隱藏層維度為 8192;而 DeepSeek-V3 每次激活 9 個專家,每個專家的隱藏層維度為 2048。此外,DeepSeek 在除了前 3 層外的每個 Transformer 區塊中都插入了 MoE 層,而 Llama 4 則是交替使用 MoE 模組和密集(Dense)模組,即每隔一個 Block 加一次 MoE。
可以明確的一點是,MoE 架構在 2025 年迎來了顯著的發展與普及。
Qwen3
Qwen 團隊一直以來都在穩定輸出高品質的開源大型語言模型。在 NeurIPS 2023 的 LLM 效率挑戰賽時,最終獲勝的方案全部基於 Qwen2 建構。
而如今,Qwen3 系列再次成為各自參數規模下的榜單冠軍,表現依舊亮眼。
Qwen3 (Dense)
先來看看 Qwen3 Dense 模型架構。截至目前,Qwen3 0.6B 可能是目前世代中體量最小的開源權重模型之一。
在本地運行時,它具有很高的每秒生成 token 數(token/sec)和很低的顯示記憶體佔用,非常適合輕量部署。而且因為參數量小,對於想在本地進行訓練實驗(例如教學用途)的人來說,也非常友好。
圖 18:Qwen3 0.6B 與 Llama 3 1B 架構對比圖。可以看到,Qwen3 架構更深(有更多的 Transformer 層),而 Llama 3 架構更寬(具有更多的注意力頭)。
Qwen3 (MoE)
如前所述,Qwen3 系列還包括兩個 MoE(Sparse)變體。那麼,為什麼像 Qwen3 這樣的架構會同時發布普通(Dense)和 MoE(Sparse)版本呢?
正如本文開頭所提到的,MoE 變體旨在降低大規模基礎模型的推論成本。提供 Dense 和 MoE 兩種版本,可以讓使用者根據不同的目標與資源約束靈活選擇。
透過同時發布這兩類模型,Qwen3 系列能夠覆蓋更廣泛的應用場景:致密模型強調穩健性、簡單性和可微調性;MoE 模型則面向大規模部署中的推論效率。
圖 19:DeepSeek-V3 與 Qwen3 235B-A22B 架構對比。
如上圖所示,DeepSeek-V3 和 Qwen3 235B-A22B 在架構上非常相似。不過值得注意的是,Qwen3 模型取消了共享專家(此前的 Qwen2.5-MoE 等模型採用了共享專家機制)。
遺憾的是,Qwen3 團隊並未公開說明他們放棄共享專家的原因。
作者猜測,可能是因為在將專家數量從 Qwen2.5-MoE 的 2 個增加到 Qwen3 的 8 個之後,訓練穩定性已經不再依賴共享專家。因此,他們選擇省略共享專家,以節省額外的計算和顯示記憶體開銷(避免從 8 個增加到 8+1 個專家)。不過,這並不能解釋為何 DeepSeek-V3 至今仍保留共享專家機制。
SmolLM3
SmolLM3 或許不像本文其他提到的大型模型那樣廣為人知,但作者認為它依然值得納入討論,因為該模型在僅有約 30 億參數的體量下,展現出非常出色的回歸(modeling)性能,定位介於 Qwen3 的 17 億參數模型與 40 億參數模型之間,如圖所示。
此外,SmolLM3 也像 OLMo 一樣公開了大量訓練細節,這在業內並不常見,因此尤為值得稱讚。
圖 20:SmolLM3 相較於 Qwen3 1.7B 和 4B,以及 Llama 3 3B 和 Gemma 3 4B 的勝率比較。
如下面的架構對比圖所示,SmolLM3 的整體結構相對標準。不過,其中最有趣的一點或許是它採用了 無位置嵌入(NoPE)機制。
圖 21:Qwen3 4B 與 SmolLM3 3B 的並排架構對比圖。
在 LLM 的背景下,NoPE 是一種較早提出的理念,該方法旨在移除顯式的位置編碼資訊注入機制,例如早期 GPT 架構中常用的絕對位置嵌入,或目前主流的 RoPE(旋轉位置編碼)。
在基於 Transformer 的語言模型中,位置編碼通常是必要的,因為自注意力機制預設對輸入序列中的 token 順序不敏感,即每個 token 被獨立處理。為了解決這一問題,絕對位置嵌入透過添加一個額外的嵌入層,將位置資訊與 token 嵌入相加,從而為模型提供序列順序感知能力。
圖 22:展示了絕對位置嵌入的機制。
相比之下,RoPE 透過將 Query 和 Key 向量按 token 的位置進行旋轉來注入位置資訊。
而在 NoPE 層中,則完全不加入任何位置編碼資訊:沒有固定的、沒有可學習的,也沒有相對位置編碼 —— 什麼都沒有。
即使沒有顯式的位置編碼,模型依然可以透過因果注意力掩碼知道哪些 token 是在前面。這個掩碼會阻止每個 token 訪問其後的 token,從而保證了自回歸順序的正確性。也就是說,位於位置 t 的 token 只能「看到」位置小於等於 t 的 token。
總結來說,NoPE 不僅不需要注入位置編碼,還在序列長度泛化方面更具優勢。也就是說,隨著輸入序列長度的增加,模型的表現下降幅度更小。如圖所示:
圖 23:展示了 NoPE 在長度泛化上的優勢表現。
正因如此,SmolLM3 團隊在實際應用中,並未在每一層都使用 NoPE,而是選擇在每 4 層中使用一次 NoPE(或說每 4 層省略一次 RoPE),作為一種折衷策略。
關於 NoPE 的更多細節,請參閱以下論文:
論文標題:The Impact of Positional Encoding on Length Generalization in Transformers
論文連結:https://arxiv.org/abs/2305.19466
Kimi K2
Kimi K2 最近因其出色的性能在 AI 社群引起了巨大反響。作為一個開源權重模型,它在多個基準測試中表現堪比 Google 的 Gemini、Anthropic 的 Claude 和 OpenAI 的 ChatGPT 等頂級閉源模型。
一個值得注意的方面是,它在訓練中首次在此規模的生產級模型中使用了 Muon 優化器的變體,而非傳統的 AdamW。
據作者所知,這是 Muon 優化器首次在超大型模型中應用(此前僅在最多 160 億參數規模上展示過可擴展性)。這一選擇帶來了極為理想的訓練損失曲線,很可能正是 Kimi K2 能在上述各項基準測試中脫穎而出的重要原因。
Kimi K2 的參數規模達到了 1 兆(1T),這無疑令人印象深刻。它可能是目前這一代中最大的 LLM(截至本文撰寫時),在不考慮尚未發布的 Llama 4 Behemoth、閉源模型以及架構不同的 Google 1.6 兆 Switch Transformer(其為編碼器 - 解碼器模型)前提下,Kimi K2 幾乎是無出其右的。
從架構上看,Kimi K2 基於本文開頭提到的 DeepSeek-V3 架構,但進行了更大規模的擴展和增強,如圖所示(圖略)。這也標誌著一種「循環回歸」:Kimi K2 將 DeepSeek-V3 的設計理念推向了極致。
如上圖所示,Kimi K2 在整體架構上基本與 DeepSeek V3 保持一致,主要差異在於:
Kimi K2 在 MoE 模組中使用了更多的專家,
在 MLA 模組中使用了更少的注意力頭(heads)。
在歷經數年之後,LLM 的發布依然充滿驚喜與期待。新技術永遠讓人心潮澎湃,永遠期待更多的大型模型架構改進的出現。
更多資訊請參閱原部落格:
部落格連結:https://magazine.sebastianraschka.com/p/the-big-llm-architecture-comparison