萬億參數(shù)狂歡!一文刷爆2025年七大頂流大模型架構(gòu)
從最初的GPT架構(gòu)問世以來,已經(jīng)過去七年了。
回顧2019年GPT-2,再看2024-2025年的DeepSeek-V3和Llama 4,你會發(fā)現(xiàn),這些模型的結(jié)構(gòu)依然驚人地相似。
當然,位置嵌入已從絕對位置編碼演變?yōu)樾D(zhuǎn)位置編碼(RoPE),多頭注意力(Multi-Head Attention)大多被分組查詢注意力(Grouped-Query Attention)取代,更高效的SwiGLU激活函數(shù)也逐漸取代了GELU。
但在這些細微改進之下,我們真的見證了突破性的變化嗎?還是只是在打磨相同的架構(gòu)?

圖1 本文提到的模型架構(gòu)
本文沒有聚焦于基準測試性能或訓(xùn)練算法,而是關(guān)注當今旗艦開源模型的架構(gòu)發(fā)展。
研究這些架構(gòu)本身的結(jié)構(gòu)變化仍然具有很大價值,可以追蹤2025年LLM研究者的最新動態(tài)。
DeepSeek V3/R1
DeepSeek R1在2025年1月發(fā)布時引起了巨大反響。
R1是一個基于DeepSeek V3構(gòu)建的推理模型,DeepSeek V3于2024年12月首次亮相。
本節(jié)重點介紹DeepSeek V3中引入的兩種關(guān)鍵架構(gòu)技術(shù),這顯著提升了計算效率:
- 多頭潛在注意力(Multi-Head Latent Attention, MLA)
- 混合專家模型(Mixture-of-Experts, MoE)
多頭潛在注意力
先從分組查詢注意力(Grouped-Query Attention, GQA)說起。
近年來,GQA已成為替代多頭注意力(Multi-Head Attention, MHA)的新標準,因為在計算和參數(shù)效率上表現(xiàn)更優(yōu)。
傳統(tǒng)的MHA中,每個注意力頭都有自己獨立的鍵和值。
而GQA為了降低內(nèi)存占用,會將多個注意力頭分組,讓它們共享相同的鍵和值投影。
舉個例子(如下圖2所示),假如有2個鍵-值組和4個注意力頭,那么頭1和頭2會共享一組鍵和值,頭3和頭4共享另一組。
這樣就減少了鍵和值的計算總量,從而降低了內(nèi)存使用量,提高了效率。
根據(jù)消融研究,這種方式在不明顯影響模型性能的情況下實現(xiàn)了更高的效率。

圖2 MHA與GQA的比較,組大小為2,其中兩個查詢共享一個鍵值對
GQA 的核心思想是通過讓多個查詢頭共享鍵和值來減少鍵和值頭的數(shù)量。這帶來了兩個好處:
- 降低了模型的參數(shù)量;
- 推理過程中減少了鍵和值張量的內(nèi)存帶寬使用,因為需要存儲和從鍵值緩存中檢索的鍵和值更少。
雖然GQA主要是為了提升MHA的計算效率,但消融研究表明,GQA在語言模型性能上與標準的MHA表現(xiàn)相當。
多頭潛在注意力提供了一種不同的內(nèi)存節(jié)省策略,尤其適合與鍵-值緩存搭配使用。
與GQA通過共享鍵和值頭不同,MLA的方法是將鍵和值張量壓縮到一個低維空間,然后再存儲到鍵值緩存中。
在推理時,這些壓縮的張量會在使用前被投影回原始尺寸,如圖3所示。
雖然會增加一次額外的矩陣乘法,但顯著降低了內(nèi)存使用量。

圖3 MLA工作流程(用于DeepSeekV3和R1)與常規(guī)MHA的比較
順便提一句,查詢在訓(xùn)練時也會被壓縮,但在推理時不會。
MLA并不是DeepSeek V3首創(chuàng)的技術(shù),它的前身DeepSeek-V2就已經(jīng)引入了這種技術(shù)。
此外,DeepSeek-V2論文中包含了一些有趣的消融研究,解釋了為什么DeepSeek團隊選擇MLA而不是GQA。

圖4 DeepSeek-V2論文中的表格,來自https://arxiv.org/abs/2405.04434
如圖所示,GQA的表現(xiàn)似乎不如MHA,而MLA在建模性能上優(yōu)于MHA。
MLA是一種能減少鍵值緩存的內(nèi)存使用量的技巧,同時在建模性能上略勝MHA一籌。
專家混合模型(MoE)
DeepSeek的另一個值得關(guān)注的架構(gòu)組件是其使用的專家混合(Mixture-of-Experts, MoE)層。
MoE的核心思想是將Transformer中的每個前饋網(wǎng)絡(luò)(FeedForward)模塊替換為多個專家層,而每個專家層本身也是一個前饋網(wǎng)絡(luò)模塊。
簡單來說,就是用多個前饋網(wǎng)絡(luò)塊替換單個前饋網(wǎng)絡(luò)塊,如下圖所示。

圖5 DeepSeek V3/R1中的MoE模塊(右)與標準前饋網(wǎng)絡(luò)模塊(左)
因此,用多個前饋網(wǎng)絡(luò)模塊替換單一前饋網(wǎng)絡(luò)模塊,會顯著增加模型的總參數(shù)量。
關(guān)鍵的技巧在于,不會為每個token激活所有專家。相反,一個router會為每個token選擇一小部分專家。
由于每次只激活少數(shù)專家,MoE模塊通常被稱為「稀疏」模塊。
通過MoE增加的大量總參數(shù)提升了模型的容量,這意味著模型在訓(xùn)練時可以吸收更多知識。
而稀疏性則保證了推理的高效,因為不會同時使用所有參數(shù)。
例如,DeepSeek-V3每個MoE模塊有256個專家,總計671B參數(shù)。但在推理過程中,每次只激活9個專家。
這意味著每次推理步驟只使用37B參數(shù),而不是全部參數(shù)。
DeepSeek-V3的MoE設(shè)計中一個特點是使用了一個共享專家。這個共享專家對每個token始終保持激活。

圖6 來自DeepSeekMoE論文,https://arxiv.org/abs/2401.06066
研究發(fā)現(xiàn),與沒有共享專家的情況相比,共享專家能提升整體建模性能。
DeepSeek-V3是一個擁有671B參數(shù)的超大規(guī)模模型,在發(fā)布時超越了其他開源模型,包括405B參數(shù)的Llama 3。
盡管參數(shù)量巨大,但得益于MoE架構(gòu),DeepSeek-V3在推理時的效率非常高,每個token僅激活一小部分參數(shù)。
另一個關(guān)鍵的區(qū)別是DeepSeek-V3使用了多頭潛在注意力(MLA)而非分組查詢注意力(GQA)。
MLA和GQA都是比標準多頭注意力(MHA)更高效的替代方案,尤其是在使用鍵值緩存時。
盡管MLA的實現(xiàn)更復(fù)雜,但DeepSeek-V2論文中的研究表明,MLA的建模性能優(yōu)于GQA。
Kimi 2
Kimi 2最近在AI社區(qū)引發(fā)了巨大反響,因為它是一個性能卓越的開源權(quán)重模型。
根據(jù)基準測試,Kimi 2的表現(xiàn)可與頂尖模型(如Gemini、Claude和ChatGPT)相媲美。
優(yōu)化器創(chuàng)新:Muon而非AdamW
一個值得注意的亮點是Kimi K2使用了一種相對較新的優(yōu)化器Muon的變體,而非業(yè)界標準的AdamW。
這是Muon首次在如此大規(guī)模的生產(chǎn)模型中取代AdamW。
這帶來了非常平滑的訓(xùn)練損失曲線,這很可能幫助Kimi K2在上述基準測試中名列前茅。

Kimi K2模型擁有1萬億個參數(shù),規(guī)模令人震撼。
Kimi K2的出現(xiàn)并非偶然,它基于本文開頭討論的DeepSeek-V3架構(gòu),只是規(guī)模更大,如下圖所示。

圖7 DeepSeek V3與Kimi K2的架構(gòu)對比
Kimi K2的架構(gòu)與DeepSeek V3基本相同,區(qū)別在于它在專家混合(MoE)模塊中使用了更多的專家,并在多頭潛在注意力(MLA)模塊中減少了注意力頭的數(shù)量。
Kimi K2并非橫空出世。此前的 Kimi 1.5模型也表現(xiàn)不俗。
然而,Kimi 1.5不幸與DeepSeek R1的論文在同一天發(fā)布。
因此,Kimi K2團隊很可能吸取了這些教訓(xùn),在DeepSeek R2發(fā)布之前,將Kimi K2作為開源權(quán)重模型發(fā)布。
截至本文撰寫時,Kimi K2是最令人印象深刻的開源權(quán)重模型。
Qwen3
Qwen團隊始終在提供高質(zhì)量的開源LLM,位列排行榜前列。
Qwen3包括7個密集模型:0.6B、1.7B、4B、8B、14B和32B,以及2個專家混合模型:30B-A3B和235B-A22B。
Qwen3(Dense)
Qwen3 0.6B模型可能是當前一代開源模型中參數(shù)量最小的。
盡管規(guī)模小,但模型性能非常出色。如果在本地運行,它具有很高的token/秒吞吐量和低內(nèi)存占用。
此外,由于其小規(guī)模,它也非常適合本地訓(xùn)練(例如用于教育目的)。
因此,Qwen3 0.6B已經(jīng)取代了Llama 3 1B,成為大多數(shù)用途的首選模型。
以下是這兩種架構(gòu)的對比圖。

圖8 Qwen3 0.6B與Llama 3 1B的架構(gòu)對比
Qwen3整體架構(gòu)較小,隱藏層更小,注意力頭更少,因此內(nèi)存占用較小。
然而,它使用了比Llama 3更多的Transformer模塊,這導(dǎo)致運行速度較慢(生成token/秒的速度較低)。
Qwen3(MoE)
Qwen3還推出了兩種專家混合模型變體:30B-A3B和235B-A22B。
MoE變體有助于降低大模型的推理成本,針對推理的擴展性進行了優(yōu)化。
在固定的推理預(yù)算下,MoE模型可以實現(xiàn)更高的模型容量,而不會成比例增加推理成本。
通過同時發(fā)布這兩種類型的模型,Qwen3系列能夠支持更廣泛的用例:密集模型適用于穩(wěn)健性、簡單性和微調(diào),而MoE模型則適合大規(guī)模高效推理。

圖9 DeepSeek-V3與Qwen3 235B-A22B的架構(gòu)對比
Qwen3模型放棄了使用共享專家。團隊沒有透露放棄共享專家的具體原因。
OLMo 2
由非營利組織Allen人工智能研究所開發(fā)的OLMo系列模型,因其在訓(xùn)練數(shù)據(jù)和代碼的透明度而備受關(guān)注。
OLMo模型因透明度而廣受歡迎,它們的性能也并不差。
1月份發(fā)布時,OLMo 2在計算成本與性能的Pareto frontier上表現(xiàn)突出,如圖所示。

圖10 不同大模型的建模基準性能與預(yù)訓(xùn)練成本的對比,來自O(shè)LMo 2論文 https://arxiv.org/abs/2501.00656
OLMo 2有哪些有趣的架構(gòu)設(shè)計呢?
主要集中在normalization:RMSNorm層的位置以及新增的QK-Norm。
規(guī)范化層的位置
OLMo 2的架構(gòu)在很大程度上沿襲了GPT,與其他當代LLM相似。
與Llama、Gemma一樣,OLMo 2從LayerNorm切換到了RMSNorm。
不過,RMSNorm層的位置值得一提。
在原始Transformer中,兩個規(guī)范化層分別被放置在注意力模塊和前饋網(wǎng)絡(luò)模塊之后。這種方式被稱為后規(guī)范化。
GPT以及之后的大多數(shù)LLM將規(guī)范化層放在注意力模塊和前饋網(wǎng)絡(luò)模塊之前,這種方式被稱為前規(guī)范化。

圖11 后規(guī)范化、前規(guī)范化以及OLMo 2版本的后規(guī)范化的對比
前規(guī)范化在初始化時能產(chǎn)生更穩(wěn)定的梯度。
此外,前規(guī)范化甚至在沒有精心設(shè)計的學(xué)習(xí)率預(yù)熱(learning rate warm-up)的情況下也能表現(xiàn)良好,學(xué)習(xí)率預(yù)熱對后規(guī)范化來說是至關(guān)重要的工具。
OLMo 2采用了一種后規(guī)范化的形式(但使用的是RMSNorm而不是LayerNorm,因此稱之為Post-Norm)。
在OLMo 2中,規(guī)范化層不再放在注意力模塊和前饋網(wǎng)絡(luò)模塊之前,而是放在之后。
與原始Transformer不同的是,OLMo 2的規(guī)范化層仍然位于殘差層內(nèi)部。
那么,為什么要改變規(guī)范化層的位置呢?原因在于這有助于提高訓(xùn)練穩(wěn)定性。

圖12 前規(guī)范化(如GPT-2、Llama 3)與OLMo 2的后規(guī)范化的訓(xùn)練穩(wěn)定性對比圖
遺憾的是,這同時展示了規(guī)范化層重新排列和QK-Norm的效果,因此很難單獨判斷規(guī)范化層位置調(diào)整的具體貢獻。
QK-Norm
QK-Norm實際上是另一個RMSNorm層。
它被放置在多頭注意力(MHA)模塊內(nèi)部,在應(yīng)用旋轉(zhuǎn)位置編碼(RoPE)之前,對查詢和鍵進行規(guī)范化。
以下是為Qwen3從頭實現(xiàn)的分組查詢注意力(GQA)層的代碼片段:
class GroupedQueryAttention(nn.Module): def __init__( self, d_in, num_heads, num_kv_groups, head_dim=None, qk_norm=False, dtype=None ): # ... if qk_norm: self.q_norm = RMSNorm(head_dim, eps=1e-6) self.k_norm = RMSNorm(head_dim, eps=1e-6) else: self.q_norm = self.k_norm = None def forward(self, x, mask, cos, sin): b, num_tokens, _ = x.shape # Apply projections queries = self.W_query(x) keys = self.W_key(x) values = self.W_value(x) # ... # Optional normalization if self.q_norm: queries = self.q_norm(queries) if self.k_norm: keys = self.k_norm(keys) # Apply RoPE queries = apply_rope(queries, cos, sin) keys = apply_rope(keys, cos, sin) # Expand K and V to match number of heads keys = keys.repeat_interleave(self.group_size, dim=1) values = values.repeat_interleave(self.group_size, dim=1) # Attention attn_scores = queries @ keys.transpose(2, 3) # ...
class GroupedQueryAttention(nn.Module):
def __init__(
self, d_in, num_heads, num_kv_groups,
head_dim=None, qk_norm=False, dtype=None
):
# ...
if qk_norm:
self.q_norm = RMSNorm(head_dim, eps=1e-6)
self.k_norm = RMSNorm(head_dim, eps=1e-6)
else:
self.q_norm = self.k_norm = None
def forward(self, x, mask, cos, sin):
b, num_tokens, _ = x.shape
# Apply projections
queries = self.W_query(x)
keys = self.W_key(x)
values = self.W_value(x)
# ...
# Optional normalization
if self.q_norm:
queries = self.q_norm(queries)
if self.k_norm:
keys = self.k_norm(keys)
# Apply RoPE
queries = apply_rope(queries, cos, sin)
keys = apply_rope(keys, cos, sin)
# Expand K and V to match number of heads
keys = keys.repeat_interleave(self.group_size, dim=1)
values = values.repeat_interleave(self.group_size, dim=1)
# Attention
attn_scores = queries @ keys.transpose(2, 3)
# ...QK-Norm結(jié)合后規(guī)范化能穩(wěn)定訓(xùn)練過程。
OLMo 2的亮點主要集中在RMSNorm的位置調(diào)整:將RMSNorm放置在注意力模塊和前饋網(wǎng)絡(luò)模塊之后,以及在注意力機制中對查詢和鍵添加RMSNorm(即QK-Norm)。
這兩者結(jié)合有助于穩(wěn)定訓(xùn)練過程中的損失,下圖進一步對比了OLMo 2和Llama 3的架構(gòu)。
除了OLMo 2仍然使用傳統(tǒng)的多頭注意力(MHA)而非分組查詢注意力(GQA)外,兩者的架構(gòu)相似。

圖13 Llama 3與OLMo 2的架構(gòu)對比
Gemma 3
與Llama等熱門模型相比,谷歌Gemma似乎被低估了。
Gemma的顯著特點是其超大的詞匯量,以及對27B模型的特別重視。
Gemma 3也提供了更小規(guī)模的版本:1B、4B和12B。
27B模型恰好達到了一個非常理想的平衡點:它的能力遠超8B模型,但又不像70B模型那樣需要大量計算資源。在Mac Mini上運行27B模型完全沒有問題。
Gemma 3還有什么有趣的地方呢?
正如之前討論的,DeepSeek-V3/R1采用了專家混合架構(gòu),通過推理時只激活部分參數(shù)來降低內(nèi)存需求。
Gemma 3則使用了另一種方法來降低計算成本,即滑動窗口注意力(sliding window attention)。
滑動窗口注意力
滑動窗口注意力讓Gemma 3團隊大幅降低了鍵值緩存的內(nèi)存需求,如下圖所示。

圖14 Gemma 3論文(https://arxiv.org/abs/2503.19786)通過滑動窗口注意力實現(xiàn)的鍵值緩存內(nèi)存節(jié)省
如果把常規(guī)的自注意力(self-attention)看作一種全局注意力機制(因為每個序列元素可以訪問所有其他序列元素)。
那么滑動窗口注意力可以看作一種局部注意力機制,它限制了當前查詢位置周圍的上下文范圍。

圖15 常規(guī)注意力(左)與滑動窗口注意力(右)的對比
滑動窗口注意力可以與多頭注意力(MHA)和分組查詢注意力(GQA)一起使用;Gemma 3使用的是分組查詢注意力。
如上所述,滑動窗口注意力也被稱為局部注意力,因為局部窗口會圍繞當前查詢位置并隨其移動。
相比之下,常規(guī)注意力是全局的,因為每個token都可以訪問所有其他token。
Gemma 2也已經(jīng)使用了滑動窗口注意力。
Gemma 3的不同之處在于調(diào)整了全局注意力(常規(guī)注意力)和局部注意力(滑動窗口)的比例。
Gemma 2使用了一種混合注意力機制,將滑動窗口(局部)注意力和全局注意力以1:1的比例結(jié)合,每個token可以關(guān)注附近4096個token的上下文窗口。
在Gemma 3中,這一比例調(diào)整為5:1,即每5個滑動窗口(局部)注意力層才有一個全局注意力層;此外,滑動窗口的大小從Gemma 2的4096縮小到Gemma 3的1024。
這使得模型更專注于高效的局部計算。
根據(jù)消融研究,使用滑動窗口注意力對模型性能的影響微乎其微,如圖所示。

圖16 Gemma 3論文(https://arxiv.org/abs/2503.19786)顯示滑動窗口注意力對模型輸出的困惑度(perplexity)幾乎沒有影響
Gemma3規(guī)范化層位置
Gemma 3在其分組查詢注意力(GQA)模塊周圍同時使用了前規(guī)范化和后規(guī)范化的RMSNorm設(shè)置。
這與Gemma 2的做法類似,但仍值得強調(diào),因為它與以下情況不同:
- 原始Transformer使用的后規(guī)范化(Post-Norm);
- GPT-2推廣并被許多后續(xù)架構(gòu)采用的前規(guī)范化(Pre-Norm);
- 之前提到的OLMo 2中使用的后規(guī)范化變體。

圖17 OLMo 2與Gemma 3的架構(gòu)對比;注意Gemma 3中額外的規(guī)范化層
Gemma 3是一款性能優(yōu)異的開源LLM,它在開源社區(qū)中有些被低估。
最引人注目的是使用滑動窗口注意力來提高效率(未來與專家混合模型MoE結(jié)合可能會很有趣)。
此外,Gemma 3在規(guī)范化層的位置上也有獨特的設(shè)計,在注意力模塊和前饋網(wǎng)絡(luò)模塊前后都放置了RMSNorm層。
Gemma 3n
Gemma 3發(fā)布幾個月后,谷歌推出了Gemma 3n,這是針對小型設(shè)備(如手機)優(yōu)化的模型。
為了提升效率,Gemma 3n引入的一項變化是所謂的逐層嵌入(Per-Layer Embedding, PLE)參數(shù)層。
其核心思想是將模型的一部分參數(shù)保留在GPU內(nèi)存中,而特定于token層的嵌入(例如文本、音頻和視覺模態(tài)的嵌入)則根據(jù)需要從CPU或SSD流式傳輸。
下圖展示了PLE的內(nèi)存節(jié)省效果。

圖18 谷歌Gemma 3n博客(https://developers.googleblog.com/en/introducing-gemma-3n/)
另一個有趣的技巧是MatFormer。
例如,Gemma 3n使用單一的共享大型語言模型(Transformer)架構(gòu),可以將其切片為更小的、獨立可用的模型。
每個切片都經(jīng)過訓(xùn)練可以獨立運行,因此在推理時,可以只運行所需的切片(而不是整個大模型)。
Mistral Small 3.1
Mistral Small 3.1是繼Gemma 3之后于3月發(fā)布的一款模型,擁有24B參數(shù)。
它在多項基準測試中超越了Gemma 3 27B,除了數(shù)學(xué)任務(wù)外表現(xiàn)更優(yōu),同時推理速度更快。
Mistral Small 3.1推理延遲較低的原因可能包括:
- 定制分詞器(Tokenizer):優(yōu)化的分詞器可能提高了處理效率。
- 減少KV緩存和層數(shù):通過縮小鍵值緩存(KV cache)和模型層數(shù),降低了計算和內(nèi)存需求。
- 標準架構(gòu):如下圖所示,Mistral Small 3.1采用了較為常規(guī)的架構(gòu)設(shè)計。

圖19 Gemma 3 27B與Mistral Small 3.1 24B的架構(gòu)對比
早期Mistral模型曾使用滑動窗口注意力,但Mistral Small 3.1中似乎放棄了這一機制。
Mistral Small 3.1使用的是常規(guī)的分組查詢注意力,而不是像Gemma 3那樣的帶滑動窗口的GQA。
這可能帶來額外的推理計算節(jié)省,因為可以利用更優(yōu)化的代碼。
雖然滑動窗口注意力可以減少內(nèi)存使用量,但并不一定能降低推理延遲,而Mistral Small 3.1的重點正是優(yōu)化推理延遲。
Llama 4
Llama 4同樣采用了MoE架構(gòu),其整體架構(gòu)與DeepSeek-V3非常相似,如下圖所示。

圖20 DeepSeek V3(671B參數(shù))與Llama 4 Maverick(400B參數(shù))的架構(gòu)對比
雖然Llama 4 Maverick的整體架構(gòu)看起來與DeepSeek-V3非常相似,但仍有一些值得注意的差異。
Llama 4沿用了其前身的分組查詢注意力(GQA),而DeepSeek-V3使用了多頭潛在注意力(MLA)。
DeepSeek-V3和Llama 4 Maverick都是超大規(guī)模架構(gòu),但DeepSeek-V3的總參數(shù)量比Llama 4大約多68%。
然而,在活躍參數(shù)方面,DeepSeek-V3每次推理使用37B個參數(shù),是Llama 4 Maverick(17B活躍參數(shù))的兩倍多。
Llama 4 Maverick使用了更經(jīng)典的MoE設(shè)置,專家數(shù)量較少但規(guī)模較大(每次激活2個專家,每個專家的隱藏層大小為8192)。
而DeepSeek-V3的MoE設(shè)置則有更多但較小的專家(每次激活9個專家,每個專家的隱藏層大小為2048)。
此外,DeepSeek-V3在每個Transformer中都使用了MoE層,而Llama 4則在每隔一個Transformer中交替使用MoE和密集模塊。




























