現(xiàn)代LLM架構設計一覽:從DeepSeek-V3到Kimi K2
主要內容
現(xiàn)代LLM架構的演進主要圍繞以下幾個核心目標:
- 提高推理效率:通過GQA、MLA、滑動窗口注意力、MoE等技術減少內存占用和計算量。
- 增強訓練穩(wěn)定性:通過歸一化層(如RMSNorm)的放置和QK-Norm等技術優(yōu)化訓練過程。
- 優(yōu)化模型容量與性能:通過MoE實現(xiàn)更大參數(shù)量和知識吸收能力,同時保持推理效率。
- 探索位置編碼的替代方案:如NoPE,挑戰(zhàn)傳統(tǒng)位置編碼的必要性。
這些架構創(chuàng)新共同推動了LLM在性能、效率和可擴展性方面的持續(xù)進步。
I. 核心架構演進與效率提升
1. 注意力機制的演變:
- 多頭注意力(MHA):傳統(tǒng)機制。
- 分組查詢注意力(GQA):MHA的計算和參數(shù)高效替代方案,通過共享鍵(key)和值(value)投影來減少內存使用和推理帶寬。
- 多頭潛注意力(MLA):DeepSeek V3/R1采用,通過將鍵和值張量壓縮到較低維空間來節(jié)省KV緩存內存,并在推理時解壓縮。相比GQA,MLA在建模性能上可能更優(yōu)。
- 滑動窗口注意力:Gemma 3采用,限制每個Token的上下文大小,實現(xiàn)局部注意力,大幅減少KV緩存內存需求。Gemma 3調整了局部與全局注意力的比例(5:1),并縮小了窗口大小。
2. 專家混合(MoE)架構:
- 概念:用多個專家層(每個也是一個前饋模塊)替換Transformer塊中的前饋模塊。
- 優(yōu)勢:大幅增加模型總參數(shù)量(提高容量),但通過路由器僅激活少數(shù)專家(保持推理效率),實現(xiàn)稀疏性。
- 應用:DeepSeek V3/R1和Llama 4廣泛采用。DeepSeek V3引入了“共享專家”機制,進一步提升性能。
- 模型對比:DeepSeek V3(671B參數(shù),9個活躍專家)和Llama 4 Maverick(400B參數(shù),2個活躍專家)在專家數(shù)量和活躍參數(shù)量上存在差異。Qwen3也提供了MoE變體。
II. 訓練穩(wěn)定性與歸一化策略
1. 歸一化層放置:
- Post-Norm:原始Transformer架構,歸一化層在注意力模塊和前饋模塊之后。
- Pre-Norm:GPT-2及多數(shù)LLM采用,歸一化層在注意力模塊和前饋模塊之前,有助于梯度行為和訓練穩(wěn)定性。
- OLMo 2的Post-Norm變體:歸一化層在注意力模塊和前饋模塊之后,但仍在殘差層內部,旨在提高訓練穩(wěn)定性。
- Gemma 3的混合歸一化:在分組查詢注意力模塊周圍同時使用Pre-Norm和Post-Norm的RMSNorm,兼顧兩者優(yōu)點。
2. QK-Norm:
概念:在多頭注意力模塊內部,對查詢(q)和鍵(k)在應用旋轉位置嵌入(RoPE)之前添加另一個RMSNorm層。
作用:與Post-Norm結合,有助于穩(wěn)定訓練。OLMo 2和Gemma 2/3都使用了QK-Norm。
III. 位置編碼的探索
1. 傳統(tǒng)位置編碼:
- 絕對位置嵌入:早期GPT架構通過額外嵌入層添加位置信息。
- 旋轉位置嵌入(RoPE):通過旋轉查詢和鍵向量相對于其Token位置來編碼位置信息。
2. 無位置嵌入(NoPE):
概念:SmolLM3采用,不顯式添加任何位置信號(不固定、不學習、不相對)。
原理:模型通過因果注意力掩碼(阻止關注未來Token)隱含地保留了方向感。
優(yōu)勢:研究表明,NoPE可能不需要位置信息注入,并具有更好的長度泛化能力。
IV. 特定模型亮點與優(yōu)化
1. DeepSeek V3/R1:
特點:龐大的671B參數(shù)MoE模型,推理時僅激活37B參數(shù),效率高。
關鍵技術:多頭潛注意力(MLA)和專家混合(MoE)與共享專家。
2. OLMo 2:
特點:非營利組織AI2的模型,以訓練數(shù)據(jù)和代碼透明度著稱。
關鍵技術:RMSNorm的Post-Norm變體放置,以及QK-Norm,共同穩(wěn)定訓練損失。
3. Gemma 3/3n:
特點:Google模型,注重27B規(guī)模,詞匯量大。
關鍵技術:滑動窗口注意力(大幅減少KV緩存內存),獨特的混合歸一化層放置。
Gemma 3n:針對小型設備優(yōu)化,引入逐層嵌入(PLE)和MatFormer概念。
4. Mistral Small 3.1:
- 特點:24B參數(shù),在多項基準測試中超越Gemma 3 27B,速度更快。
- 可能原因:自定義Token分詞器,縮小KV緩存和層數(shù),放棄滑動窗口注意力而使用常規(guī)GQA(可能結合FlashAttention)。
5. Llama 4:
- 特點:采用MoE架構,與DeepSeek-V3相似,但使用GQA。
- MoE配置:更經(jīng)典的MoE設置,專家數(shù)量更少但規(guī)模更大。
6. Qwen3:
- 特點:提供密集模型和MoE模型兩種變體,性能優(yōu)秀。
- MoE變體:235B-A22B,不再使用共享專家(與DeepSeek V3不同)。
7. SmolLM3:
- 特點:相對較小的3B參數(shù)模型,性能良好。
- 關鍵技術:無位置嵌入(NoPE),通過因果注意力掩碼實現(xiàn)順序感知。
8. Kimi 2:
- 特點:1T參數(shù)的開源模型,性能卓越,與DeepSeek-V3架構高度相似。
- 關鍵技術:MoE模塊中更多專家,MLA模塊中更少注意力頭。使用了Muon優(yōu)化器變體。
自最初的GPT架構開發(fā)至今已有七年。乍一看,從GPT-2(2019年)回顧到DeepSeek-V3和Llama 4(2024-2025年),這些模型在結構上仍然如此相似,或許令人驚訝。
當然,位置嵌入(positional embeddings)已從絕對位置嵌入(absolute)演變?yōu)樾D位置嵌入(Rotary Positional Embedding, RoPE),多頭注意力(Multi-Head Attention, MHA)已在很大程度上被分組查詢注意力(Grouped-Query Attention)取代,而更高效的SwiGLU也取代了GELU等激活函數(shù)。但除了這些細微的改進,我們是否真正看到了突破性的變革,或者僅僅是在完善相同的架構基礎?
對比LLM以確定哪些關鍵要素有助于其良好(或不佳)性能是出了名的挑戰(zhàn):數(shù)據(jù)集、訓練技術和超參數(shù)差異巨大,且通常文檔記錄不詳。
然而,我認為深入研究架構本身的結構變化,以了解2025年LLM開發(fā)者正在探索的方向,仍然具有重要價值。(其中一部分如圖1所示。)
圖1:本文涵蓋的部分架構
因此,在本文中,我將重點關注定義當今旗艦開源模型的架構發(fā)展,而非基準性能或訓練算法。
(您可能還記得,我前不久撰寫了關于多模態(tài)LLM的文章;在本文中,我將重點關注近期模型的文本能力,并將多模態(tài)能力的討論留待下次。)
提示:這是一篇相當全面的文章,因此我建議使用導航欄訪問目錄(只需將鼠標懸停在Substack頁面的左側)。
1. DeepSeek V3/R1
您可能已經(jīng)不止一次聽說過,DeepSeek R1在2025年1月發(fā)布時產(chǎn)生了巨大影響。DeepSeek R1是一款基于DeepSeek V3架構構建的推理模型,DeepSeek V3于2024年12月推出。
盡管我在此處的重點是2025年發(fā)布的架構,但我認為將DeepSeek V3納入其中是合理的,因為它是在2025年DeepSeek R1發(fā)布后才獲得廣泛關注和采用的。
在本節(jié)中,我將重點介紹DeepSeek V3中引入的兩種關鍵架構技術,它們提高了其計算效率,并使其區(qū)別于許多其他LLM:
- 多頭潛注意力(Multi-Head Latent Attention, MLA)
- 專家混合(Mixture-of-Experts, MoE)
1.1 多頭潛注意力(MLA)
在討論多頭潛注意力(MLA)之前,讓我們簡要回顧一下其背景,以闡明其使用動機。為此,我們從分組查詢注意力(Grouped-Query Attention, GQA)開始,近年來,GQA已成為MHA的一種計算和參數(shù)效率更高的新型替代方案。
簡而言之,GQA的總結如下。與MHA中每個注意力頭都擁有自己的鍵(key)和值(value)集不同,為了減少內存使用,GQA將多個注意力頭分組以共享相同的鍵和值投影。
圖2:MHA與GQA的對比其中,分組大小為2,表示一個鍵值對由兩個查詢共享
例如,如圖2所示,如果存在2個鍵值組和4個注意力頭,那么頭1和頭2可能共享一組鍵和值,而頭3和頭4共享另一組。這減少了鍵和值計算的總量,從而降低了內存使用并提高了效率(根據(jù)消融研究,對模型性能沒有顯著影響)。
因此,GQA的核心思想是通過在多個查詢頭之間共享鍵和值頭來減少它們的數(shù)量。這(1)降低了模型的參數(shù)數(shù)量,(2)減少了推理期間鍵和值張量(tensor)的內存帶寬使用,因為需要存儲和從KV緩存中檢索的鍵和值更少。
雖然GQA主要是一種針對MHA的計算效率優(yōu)化方案,但消融研究(例如原始GQA論文和Llama 2論文中的研究)表明,在LLM建模性能方面,其表現(xiàn)與標準MHA相當。
現(xiàn)在,多頭潛注意力(MLA)提供了一種不同的內存節(jié)省策略,它與KV緩存特別契合。MLA不像GQA那樣共享鍵和值頭,而是將鍵和值張量壓縮到較低維空間中,然后將其存儲在KV緩存中。
圖3:MLA(用于DeepSeek V3和R1)與常規(guī)MHA的對比
在推理時,這些壓縮后的張量會在使用前被投影回原始大小,如圖3所示。這增加了一次額外的矩陣乘法,但減少了內存使用。
(順便提一下,查詢(query)也在訓練期間被壓縮,但推理時不會。)
順便說一句,MLA并非DeepSeek V3的新技術,其前身DeepSeek-V2也使用了(甚至引入了)它。此外,V2論文包含了一些有趣的消融研究,可能解釋了DeepSeek團隊選擇MLA而非GQA的原因(參見圖4)。
圖4:DeepSeek-V2論文中的標注表格,https://arxiv.org/abs/2405.
如圖4所示,GQA的性能似乎不如MHA,而MLA在建模性能方面優(yōu)于MHA,這可能是DeepSeek團隊選擇MLA而非GQA的原因。(如果能看到MLA和GQA在“每Token KV緩存節(jié)省”方面的對比,那會很有趣?。?/p>
在進入下一個架構組件之前,總結一下本節(jié):MLA是一種巧妙的技巧,可以減少KV緩存內存使用,同時在建模性能方面甚至略優(yōu)于MHA。
1.2 專家混合(MoE)
DeepSeek中另一個值得強調的主要架構組件是其專家混合(MoE)層的使用。雖然DeepSeek并非MoE的發(fā)明者,但它在今年重新興起,我們稍后將介紹的許多架構也采用了它。
您可能已經(jīng)熟悉MoE,但快速回顧一下可能會有所幫助。
MoE的核心思想是用多個專家層替換Transformer塊中的每個前饋(FeedForward)模塊,其中每個專家層也是一個前饋模塊。這意味著我們將單個前饋塊替換為多個前饋塊,如圖5所示。
圖片
圖5:DeepSeek V3/R1中專家混合(Mixture-of-Experts, MoE)模塊(右)與采用標準前饋(FeedForward)塊的LLM(左)的示意圖
Transformer塊內部的前饋塊(圖中深灰色塊所示)通常包含模型總參數(shù)的很大一部分。(請注意,Transformer塊以及前饋塊在LLM中會重復多次;在DeepSeek-V3的例子中,重復了61次。)
因此,用多個前饋塊替換單個前饋塊(如MoE設置中所做)會大幅增加模型的總參數(shù)數(shù)量。然而,關鍵的技巧在于我們不會為每個Token都使用(“激活”)所有專家。相反,一個路由器(router)會為每個Token選擇一小部分專家。
由于一次只激活少數(shù)專家,MoE模塊通常被稱為稀疏(sparse),與始終使用完整參數(shù)集的密集(dense)模塊形成對比。然而,通過MoE實現(xiàn)的大量總參數(shù)增加了LLM的容量(capacity),這意味著它可以在訓練期間吸收更多知識。但稀疏性保持了推理效率,因為我們不會同時使用所有參數(shù)。
例如,DeepSeek-V3每個MoE模塊有256個專家,總參數(shù)量為671B。但在推理期間,一次只有9個專家處于活躍狀態(tài)(1個共享專家加上路由器選擇的8個)。這意味著每個推理步驟只使用了37B參數(shù),而不是全部671B。
DeepSeek-V3的MoE設計的一個顯著特點是使用了共享專家(shared expert)。這是一個始終對每個Token都活躍的專家。這
圖片
圖6:“DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models”論文中的標注圖,https://arxiv.org/abs/2401.06066
個想法并不新鮮,在DeepSeek 2024 MoE和2022 DeepSpeedMoE論文中已經(jīng)引入。
共享專家的好處首次在DeepSpeedMoE論文中被提及,他們發(fā)現(xiàn)它比沒有共享專家更能提升整體建模性能。這可能是因為常見或重復的模式不必由多個獨立專家學習,這使得它們有更多空間學習更專業(yè)的模式。
1.3 DeepSeek總結
總而言之,DeepSeek-V3是一個龐大的671B參數(shù)模型,在發(fā)布時其性能超越了其他開源模型,包括405B參數(shù)的Llama 3。盡管參數(shù)量更大,但由于其專家混合(MoE)架構,它在推理時效率更高,每個Token僅激活一小部分(僅37B)參數(shù)。
另一個關鍵的顯著特點是DeepSeek-V3使用了多頭潛注意力(MLA)而非分組查詢注意力(GQA)。MLA和GQA都是標準多頭注意力(MHA)的推理高效替代方案,尤其是在使用KV緩存時。雖然MLA實現(xiàn)起來更復雜,但DeepSeek-V2論文中的一項研究表明,它比GQA提供了更好的建模性能。
2. OLMo 2
非營利組織Allen Institute for AI的OLMo系列模型因其在訓練數(shù)據(jù)和代碼方面的透明度以及相對詳細的技術報告而引人注目。
雖然您可能不會在任何基準測試或排行榜上找到OLMo模型名列前茅,但它們非常簡潔,更重要的是,由于其透明度,它們是開發(fā)LLM的絕佳藍圖。
盡管OLMo模型因其透明度而受歡迎,但它們也并非表現(xiàn)不佳。事實上,在1月發(fā)布時(在Llama 4、Gemma 3和Qwen 3之前),OLMo 2模型處于計算性能的帕累托前沿,如圖7所示。
圖片
圖7:不同LLM的模型基準性能(越高越好)與預訓練成本(FLOPs;越低越好)對比圖這是OLMo 2論文中的標注圖,https://arxiv.org/abs/2501.00656
如本文前面所述,我旨在僅關注LLM架構細節(jié)(而非訓練或數(shù)據(jù)),以保持文章篇幅適中。那么,OLMo2中有哪些有趣的架構設計選擇呢?主要歸結為歸一化:RMSNorm層的放置以及QK-norm的添加,我將在下面討論。
另一件值得一提的是,OLMo 2仍然使用傳統(tǒng)的多頭注意力(MHA)而不是MLA或GQA。
2.1 歸一化層放置
總體而言,OLMo 2在很大程度上遵循了原始GPT模型的架構,類似于其他當代LLM。然而,也有一些值得注意的偏差。讓我們從歸一化層開始。
與Llama、Gemma和大多數(shù)其他LLM類似,OLMo 2從LayerNorm切換到了RMSNorm。
但由于RMSNorm已是老生常談(它基本上是LayerNorm的簡化版本,可訓練參數(shù)更少),我將跳過RMSNorm與LayerNorm的討論。
然而,RMSNorm層的放置位置值得討論。原始Transformer(來自“Attention is all you need”論文)將兩個歸一化層分別放置在Transformer塊中的注意力模塊和前饋模塊之后。
這也被稱為Post-LN或Post-Norm。
GPT和之后的大多數(shù)其他LLM將歸一化層放置在注意力模塊和前饋模塊之前,這被稱為Pre-LN或Pre-Norm。Post-Norm和Pre-Norm的對比如圖所示。
圖8:Post-Norm、Pre-Norm和OLMo 2的Post-Norm變體的對比
2020年,Xiong等人表明,Pre-LN在初始化時能產(chǎn)生更良好的梯度行為。此外,研究人員提到,Pre-LN即使在沒有仔細學習率預熱的情況下也能很好地工作,而學習率預熱對于Post-LN來說是至關重要的工具。
現(xiàn)在,我之所以提到這一點,是因為OLMo 2采用了一種Post-LN的形式(但使用RMSNorm而不是LayerNorm,所以我稱之為Post-Norm)。
在OLMo 2中,歸一化層不是放置在注意力層和前饋層之前,而是放置在之后,如圖所示。然而,請注意,與原始Transformer架構不同,歸一化層仍然在殘差層(跳躍連接)內部。
那么,他們?yōu)槭裁匆淖儦w一化層的位置呢?原因是它有助于訓練穩(wěn)定性,如下圖所示。
圖片
圖9:顯示Pre-Norm(如GPT-2、Llama 3等)與OLMo 2的Post-Norm變體訓練穩(wěn)定性對比圖這是OLMo 2論文中的標注圖,https://arxiv.org/abs/2501.00656
不幸的是,這張圖顯示的是重排序與QK-Norm結合的結果,而QK-Norm是一個獨立的概念。因此,很難判斷歸一化層重排序本身貢獻了多少。
2.2 QK-Norm
既然上一節(jié)已經(jīng)提到了QK-norm,并且我們稍后討論的其他LLM,如Gemma 2和Gemma 3,也使用了QK-norm,那么讓我們簡要討論一下這是什么。
QK-Norm本質上是另一個RMSNorm層。它放置在多頭注意力(MHA)模塊內部,并在應用RoPE之前應用于查詢(q)和鍵(k)。為了說明這一點,下面是我為Qwen3從零實現(xiàn)編寫的分組查詢注意力(GQA)層的一個摘錄(GQA中QK-norm的應用類似于OLMo中的MHA):
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與Post-Norm一起,穩(wěn)定了訓練。請注意,QK-Norm并非由OLMo 2發(fā)明,而是可以追溯到2023年的《Scaling Vision Transformers》論文。
2.3 OLMo 2總結
簡而言之,OLMo 2值得注意的架構設計決策主要是RMSNorm的放置:RMSNorm放置在注意力模塊和前饋模塊之后而非之前(一種Post-Norm變體),以及在注意力機制內部為查詢和鍵添加RMSNorm(QK-Norm),兩者共同有助于穩(wěn)定訓練損失。
圖片
圖10:Llama 3與OLMo 2的架構對比
下面是進一步并排比較OLMo 2和Llama 3的圖;可以看出,除了OLMo 2仍然使用傳統(tǒng)的MHA而不是GQA之外,這兩種架構在其他方面相對相似。(然而,OLMo 2團隊在3個月后發(fā)布了一個使用GQA的32B參數(shù)變體。)
3. Gemma 3
Google的Gemma模型一直表現(xiàn)出色,我認為與Llama系列等其他熱門模型相比,它們一直有點被低估。
Gemma的一個顯著特點是其相當大的詞匯量(以更好地支持多種語言),以及更側重于27B規(guī)模(而非8B或70B)。但請注意,Gemma 2也有較小規(guī)模的版本:1B、4B和12B。
27B的規(guī)模達到了一個非常好的平衡點:它比8B模型能力強得多,但又不像70B模型那樣資源密集,并且在我的Mac Mini上本地運行良好。
那么,Gemma 3還有哪些有趣之處呢?如前所述,Deepseek-V3/R1等其他模型使用專家混合(MoE)架構來在給定模型大小的情況下減少推理時的內存需求。
Gemma 3使用了一種不同的“技巧”來降低計算成本,即滑動窗口注意力(sliding window attention)。
3.1 滑動窗口注意力
通過滑動窗口注意力(最初在2020年的LongFormer論文中引入,并且Gemma 2也已使用),Gemma 3團隊成功大幅減少了KV緩存中的內存需求,如下圖所示。
圖片
圖11:Gemma 3論文(https://arxiv.org/abs/2503.19786)中的標注圖,展示了通過滑動窗口注意力(sliding window attention)實現(xiàn)的KV緩存內存節(jié)省
那么,什么是滑動窗口注意力呢?如果我們把常規(guī)自注意力(self-attention)看作一種全局注意力機制,因為每個序列元素都可以訪問所有其他序列元素,那么我們可以把滑動窗口注意力看作局部注意力,因為它限制了當前查詢位置周圍的上下文大小。這在下圖中有所說明。
圖12:常規(guī)注意力(左)與滑動窗口注意力(右)的對比
請注意,滑動窗口注意力可以與多頭注意力(Multi-Head Attention)和分組查詢注意力(Grouped-Query Attention)一起使用;Gemma 3使用的是分組查詢注意力。
如上所述,滑動窗口注意力也被稱為局部注意力,因為局部窗口圍繞并隨當前查詢位置移動。相比之下,常規(guī)注意力是全局的,因為每個Token都可以訪問所有其他Token。
現(xiàn)在,如上文簡要提及,Gemma 2的前代架構也曾使用滑動窗口注意力。Gemma 3的不同之處在于,它們調整了全局(常規(guī))注意力與局部(滑動)注意力之間的比例。
例如,Gemma 2使用一種混合注意力機制,以1:1的比例結合滑動窗口(局部)和全局注意力。每個Token可以關注附近4k Token窗口的上下文。
Gemma 2在每隔一層使用滑動窗口注意力,而Gemma 3現(xiàn)在采用5:1的比例,這意味著每5個滑動窗口(局部)注意力層只有1個完整的注意力層;此外,滑動窗口大小從4096(Gemma 2)減少到僅1024(Gemma 3)。這使得模型的重點轉向更高效的局部計算。
根據(jù)他們的消融研究,滑動窗口注意力的使用對建模性能的影響微乎其微,如下圖所示。
圖片
圖13:Gemma 3論文(https://arxiv.org/abs/2503.19786)中的標注圖,顯示滑動窗口注意力對LLM生成輸出的困惑度影響甚微
雖然滑動窗口注意力是Gemma 3最顯著的架構特征,但我想簡要回顧一下歸一化層的放置,作為對之前OLMo 2部分的補充。
3.2 Gemma 3中的歸一化層放置
一個雖小但有趣的細節(jié)是,Gemma 3在其分組查詢注意力模塊周圍同時使用了Pre-Norm和Post-Norm設置的RMSNorm。
這與Gemma 2類似,但仍然值得強調,因為它不同于(1)原始Transformer(“Attention is all you need”)中使用的Post-Norm,(2)由GPT-2推廣并在之后許多其他架構中使用的Pre-Norm,以及(3)我們之前看到的OLMo 2中的Post-Norm變體。
圖14:OLMo2與Gemma 3的架構對比;請注意Gemma 3中額外的歸一化層
我認為這種歸一化層放置是一種相對直觀的方法,因為它兼顧了Pre-Norm和Post-Norm的優(yōu)點。在我看來,額外的一點歸一化不會有什么壞處。在最壞的情況下,如果額外的歸一化是冗余的,這會通過冗余增加一點效率低下。然而,在實踐中,由于RMSNorm在整體上相對廉價,這應該不會產(chǎn)生任何明顯的影響。
3.3 Gemma 3總結
Gemma 3是一款表現(xiàn)良好的開源LLM,在我看來,它在開源社區(qū)中有點被低估了。最有趣的部分是使用滑動窗口注意力來提高效率(未來將其與MoE結合會很有趣)。
此外,Gemma 3具有獨特的歸一化層放置,將RMSNorm層放置在注意力模塊和前饋模塊之前和之后。
3.4 額外內容:Gemma 3n
在Gemma 3發(fā)布幾個月后,Google發(fā)布了Gemma 3n,這是一個為小型設備效率而優(yōu)化的Gemma 3模型,目標是在手機上運行。
Gemma 3n為實現(xiàn)更高效率而進行的一項改變是所謂的逐層嵌入(Per-Layer Embedding, PLE)參數(shù)層。其核心思想是僅將模型參數(shù)的一個子集保留在GPU內存中。然后,文本、音頻和視覺模態(tài)等Token層特定的嵌入會按需從CPU或SSD流式傳輸。
下圖說明了PLE內存節(jié)省,列出了標準Gemma 3模型的5.44B參數(shù)。這可能指的是Gemma 3的4B參數(shù)變體。
圖片
圖15:Google的Gemma 3n博客(https://developers.googleblog.com/en/introducing-gemma-3n/)中的標注圖,說明了PLE內存節(jié)省
5.44B與4B參數(shù)之間的差異是因為Google在報告LLM參數(shù)數(shù)量時有一種有趣的方式。他們通常會排除嵌入?yún)?shù),以使模型看起來更小,除非在這種情況下,為了使模型看起來更大而方便地包含它們。這并非Google獨有,這種方法已成為該領域的普遍做法。
另一個有趣的技巧是MatFormer概念(Matryoshka Transformer的縮寫)。例如,Gemma 3n使用一個共享的LLM(Transformer)架構,可以將其切片成更小、可獨立使用的模型。每個切片都經(jīng)過訓練以獨立運行,因此在推理時,我們只需運行您需要的部分(而不是整個大型模型)。
4. Mistral Small 3.1
Mistral Small 3.1 24B于3月發(fā)布,緊隨Gemma 3之后,其值得注意之處在于在多項基準測試中(數(shù)學除外)超越了Gemma 3 27B,同時速度更快。
Mistral Small 3.1比Gemma 3推理延遲更低的原因可能在于其自定義Token分詞器,以及縮小了KV緩存和層數(shù)。除此之外,它是一個標準架構,如下圖所示。
圖16:Gemma 3 27B與Mistral 3.1 Small 24B的架構對比
有趣的是,早期的Mistral模型曾使用滑動窗口注意力,但它們似乎在Mistral Small 3.1中放棄了它。因此,由于Mistral使用常規(guī)分組查詢注意力而非Gemma 3中帶滑動窗口的分組查詢注意力,也許能夠通過使用更多優(yōu)化的代碼(即FlashAttention)來節(jié)省額外的推理計算。例如,我推測雖然滑動窗口注意力減少了內存使用,但它不一定減少推理延遲,而這正是Mistral Small 3.1關注的重點。
5. Llama 4
本文前面關于專家混合(MoE)的廣泛介紹再次發(fā)揮了作用。Llama 4也采用了MoE方法,并且遵循了與DeepSeek-V3非常相似的相對標準架構,如下圖所示。(Llama 4包含原生多模態(tài)支持,類似于Gemma和Mistral等模型。然而,由于本文重點關注語言建模,我們只關注文本模型。)
圖17:DeepSeek V3(671B參數(shù))與Llama 4 Maverick(400B參數(shù))的架
雖然Llama 4 Maverick架構總體上與DeepSeek-V3非常相似,但仍有一些值得強調的有趣差異。
首先,Llama 4像其前身一樣使用分組查詢注意力(Grouped-Query Attention),而DeepSeek-V3使用多頭潛注意力(Multi-Head Latent Attention),我們在本文開頭討論過。現(xiàn)在,DeepSeek-V3和Llama 4 Maverick都是非常大的架構,DeepSeek-V3的總參數(shù)量大約比Llama 4 Maverick大68%。然而,DeepSeek-V3的活躍參數(shù)量(37B)是Llama 4 Maverick(17B)的兩倍多。
Llama 4 Maverick使用更經(jīng)典的MoE設置,專家數(shù)量更少但規(guī)模更大(2個活躍專家,每個隱藏層大小為8192),而DeepSeek-V3則有更多活躍專家(9個活躍專家,每個隱藏層大小為2048)。此外,DeepSeek在每個Transformer塊(除了前3個)都使用MoE層,而Llama 4則在每隔一個Transformer塊中交替使用MoE和密集模塊。
鑒于架構之間存在許多細微差異,很難確定它們對最終模型性能的確切影響。然而,主要結論是,MoE架構在2025年顯著流行起來。
6. Qwen3
Qwen團隊持續(xù)提供高質量的開源LLM。當我協(xié)助共同指導NeurIPS 2023的LLM效率挑戰(zhàn)賽時,我記得獲勝的頂級解決方案都基于Qwen2。
現(xiàn)在,Qwen3是另一個熱門模型系列,在其規(guī)模類別中位居排行榜前列。它有7個密集模型:0.6B、1.7B、4B、8B、14B和32B。還有2個MoE模型:30B-A3B和235B-A22B。
6.1 Qwen3(密集模型)
我們首先討論密集模型架構。截至本文撰寫之時,0.6B模型很可能是目前最小的當前代開源模型。根據(jù)我的個人經(jīng)驗,考慮到其小巧的尺寸,它的性能確實非常出色。如果您打算在本地運行它,它具有出色的Token/秒吞吐量和較低的內存占用。更重要的是,由于其體積小巧,它也易于本地訓練(用于教育目的)。
因此,Qwen3 0.6B已經(jīng)取代了Llama 3 1B,滿足了我大部分的需求。這兩種架構的對比圖如下。
圖片
圖18:Qwen3 0.6B與Llama 3 1B的架構對比;請注意,Qwen3是層數(shù)更深(deeper)的架構,而Llama 3是注意力頭數(shù)更寬(wider)的架構
如果您對不依賴外部第三方LLM庫、可讀性強的Qwen3實現(xiàn)感興趣,我最近從零開始(純PyTorch)實現(xiàn)了Qwen3。
上圖中顯示的計算性能數(shù)據(jù)基于我在A100 GPU上運行的從零開始的PyTorch實現(xiàn)。可以看出,Qwen3的內存占用更小,因為它整體架構更小,而且隱藏層和注意力頭也更少。然而,它使用的Transformer塊比Llama 3更多,這導致運行時間更慢(Token/秒生成速度更低)。
6.2 Qwen3(MoE模型)
如前所述,Qwen3也有兩種MoE變體:30B-A3B和235B-A22B。為什么有些架構,如Qwen3,會同時提供常規(guī)(密集)和MoE(稀疏)變體呢?
如本文開頭所述,MoE變體有助于降低大型基礎模型的推理成本。提供密集和MoE版本使用戶可以根據(jù)其目標和限制靈活選擇。
密集模型通常更易于微調、部署和在各種硬件上進行優(yōu)化。
另一方面,MoE模型則針對規(guī)?;评磉M行了優(yōu)化。例如,在固定的推理預算下,它們可以實現(xiàn)更高的整體模型容量(即,由于模型更大,訓練期間可以吸收更多知識),而不會按比例增加推理成本。
通過發(fā)布這兩種類型,Qwen3系列可以支持更廣泛的使用場景:密集模型適用于魯棒性、簡單性和微調,而MoE模型則適用于大規(guī)模高效服務。
為了總結本節(jié),讓我們來看看Qwen3 235B-A22B(請注意,A22B代表“22B活躍參數(shù)”)與DeepSeek-V3的對比,后者擁有近兩倍的活躍參數(shù)(37B)。
圖19:DeepSeek-V3與Qwen3 235B-A22B的架構對比
如上圖所示,DeepSeek-V3和Qwen3 235B-A22B的架構非常相似。然而,值得注意的是,Qwen3模型不再使用共享專家(早期的Qwen模型,如Qwen2.5-MoE,確實使用了共享專家)。
不幸的是,Qwen3團隊沒有透露他們?yōu)楹畏艞壒蚕韺<业脑?。如果我不得不猜測,也許在他們將專家數(shù)量從2個(在Qwen2.5-MoE中)增加到8個(在Qwen3中)時,對于他們的設置來說,共享專家對于訓練穩(wěn)定性來說并非必需。然后他們能夠通過只使用8個而不是8+1個專家來節(jié)省額外的計算/內存成本。(然而,這并不能解釋為什么DeepSeek-V3仍然保留了他們的共享專家。)
更新:Qwen3的開發(fā)者之一Junyang Lin回應如下:
當時我們沒有發(fā)現(xiàn)共享專家有足夠顯著的改進,并且我們擔心共享專家可能導致的推理優(yōu)化問題。老實說,這個問題沒有直接的答案。
7. SmolLM3
SmolLM3可能不像本文中介紹的其他LLM那樣受歡迎,但我認為它仍然是一個有趣的模型,因為它在相對較小且方便的3B參數(shù)模型尺寸下提供了非常好的建模性能,介于1.7B和4B的Qwen3模型之間,如下圖所示。
圖片
圖20:SmolLM3發(fā)布帖(https://huggingface.co/blog/smollm3)中的標注圖,對比了SmolLM3與Qwen3 1.7B、4B以及Llama 3 3B和Gemma 3 4B的勝率
此外,它還分享了許多訓練細節(jié),類似于OLMo,這很罕見,也總是值得贊賞!
如下圖所示的架構對比圖,SmolLM3架構看起來相當標準。然而,最有趣的方面可能是它使用了無位置嵌入(No Positional Embeddings, NoPE)。
圖19:DeepSeek-V3與Qwen3 235B-A22B的架構對比
7.1 無位置嵌入(NoPE)
在LLM語境中,NoPE是一個較舊的概念,可以追溯到2023年的一篇論文(《The Impact of Positional Encoding on Length Generalization in Transformers》),旨在移除顯式的位置信息注入(例如通過早期GPT架構中的經(jīng)典絕對位置嵌入層或現(xiàn)今的RoPE)。
在基于Transformer的LLM中,位置編碼通常是必需的,因為自注意力機制獨立于順序處理Token。絕對位置嵌入通過添加一個額外的嵌入層來解決這個問題,該層向Token嵌入添加信息。
圖22:絕對位置嵌入
另一方面,RoPE通過旋轉查詢和鍵向量相對于其Token位置來解決這個問題。
然而,在NoPE層中,根本沒有添加任何此類位置信號:不固定、不學習、不相對。什么都沒有。
即使沒有位置嵌入,模型仍然知道哪些Token在前,這得益于因果注意力掩碼(causal attention mask)。此掩碼阻止每個Token關注未來的Token。因此,位置t的Token只能看到位置$\le$t的Token,這保留了自回歸順序。
因此,雖然沒有顯式添加位置信息,但模型的結構中仍然隱含著方向感,并且LLM在常規(guī)的基于梯度下降的訓練中,如果發(fā)現(xiàn)它對優(yōu)化目標有益,則可以學習利用它。(有關更多信息,請查看NoPE論文的定理。)
因此,總的來說,NoPE論文不僅發(fā)現(xiàn)不需要位置信息注入,而且還發(fā)現(xiàn)NoPE具有更好的長度泛化能力,這意味著LLM回答性能隨序列長度增加而下降的程度更小,如下圖所示。
圖片
圖23:NoPE論文(https://arxiv.org/abs/2305.19466)中的標注圖,顯示NoPE具有更好的長度泛化能力
請注意,上面所示的實驗是在一個相對較小的GPT風格模型上進行的,大約有0.1B參數(shù),上下文大小也相對較小。這些發(fā)現(xiàn)如何推廣到更大、更現(xiàn)代的LLM尚不清楚。
因此,SmolLM3團隊可能只在每第四層“應用”了NoPE(或者說省略了RoPE)。
8. Kimi 2
Kimi 2最近在AI社區(qū)引起了巨大轟動,因為它是一個開源模型,性能令人難以置信。根據(jù)基準測試,它與Google的Gemini、Anthropic的Claude和OpenAI的ChatGPT等最優(yōu)秀的專有模型不相上下。
一個值得注意的方面是它使用了相對較新的Muon優(yōu)化器的一種變體,而非AdamW。據(jù)我所知,這是Muon首次用于如此規(guī)模的生產(chǎn)模型(此前,它只被證明可以擴展到16B)。這帶來了非常好的訓練損失曲線,這可能有助于將該模型推向上述基準測試的頂端。
雖然人們評論說損失異常平滑(因為沒有尖峰),但我認為它并非異常平滑(例如,參見下圖中OLMo 2的損失曲線;此外,梯度的L2范數(shù)可能是一個更好的衡量訓練穩(wěn)定性的指標)。然而,值得注意的是損失曲線的衰減程度。
然而,如本文引言所述,訓練方法論是另一個話題。
圖片
圖24:Kimi K2發(fā)布博客文章(https://moonshotai.github.io/Kimi-K2/)和OLMo 2論文(https://arxiv.org/abs/2305.19466)中的標注圖
該模型本身擁有1T參數(shù),這確實令人印象深刻。
截至本文撰寫之時,它可能是這一代最大的LLM(考慮到Llama 4 Behemoth尚未發(fā)布、專有LLM不計入在內,以及Google的1.6T Switch Transformer是不同代次的編碼器-解碼器架構)。
Kimi 2也回歸了本源,它使用了我們在本文開頭介紹的DeepSeek-V3架構,只是將其規(guī)模擴大了,如下圖所示。
圖25:DeepSeek V3與Kimi K2的架構對比
如上圖所示,Kimi 2.5與DeepSeek V3基本相同,只是在MoE模塊中使用了更多專家,在多頭潛注意力(Multi-head Latent Attention, MLA)模塊中使用了更少的注意力頭。
Kimi 2并非橫空出世。早期的Kimi 1.5模型在《Kimi k1.5: Scaling Reinforcement Learning with LLMs》論文中討論過,也同樣令人印象深刻。然而,它不幸地與DeepSeek R1模型論文在同一天(1月22日)發(fā)布。此外,據(jù)我所知,Kimi 1.5的權重從未公開共享。
因此,Kimi K2團隊很可能吸取了這些教訓,并在DeepSeek R2發(fā)布之前,將Kimi K2作為開源模型共享。截至本文撰寫之時,Kimi K2是最令人印象深刻的開源模型。
這么多年過去了,LLM的發(fā)布仍然令人興奮,我很好奇接下來會發(fā)生什么!
參考資料:Raschka, S. (2025, July 19). The big LLM architecture comparison. AI Magazine. Retrieved from https://magazine.sebastianraschka.com/p/the-big-llm-architecture-comparison