「DeepSeek-V3 技術解析」:多詞元預測技術(Multi-Token Prediction, MTP) 原創(chuàng)
編者按: 在實時人工智能應用場景中,大語言模型的推理速度直接影響用戶體驗。傳統(tǒng)模型通過逐詞元預測(next-token prediction)生成文本,每次僅預測一個詞元的方式導致長文本生成耗時較長。這種延遲在對話系統(tǒng)和內容創(chuàng)作平臺中尤為明顯,已成為阻礙用戶沉浸體驗的主要障礙。
本文深入探討了 DeepSeek-V3 模型的多詞元預測技術(Multi-Token Prediction, MTP)。與現(xiàn)有方法(如獨立預測多個詞元導致邏輯斷裂)不同,DeepSeek 創(chuàng)新性地通過模塊間的表征依賴關系,在訓練時保持詞元預測的完整因果鏈,從而生成高質量連貫文本。此外,該技術可與推測解碼(speculative decoding)結合,在推理時,MTP module 并行生成草稿詞元,main model 通過單次前向傳播驗證并修正,憑借 85%-90% 的高接受率實現(xiàn) 1.8 倍的推理加速。
作者 | Shirley Li
編譯 | 岳揚
這是 DeepSeek-V3 系列的第四篇文章,將解釋 DeepSeek [1,2]模型的最后一個重要架構創(chuàng)新:多詞元預測(multi-token prediction)。
在前幾篇文章中,我們闡述了 DeepSeek 如何通過巧妙的設計,在矛盾的優(yōu)化目標之間找到折中方案,既不過度偏向某一目標,又能保持整體效果:
- 多頭潛在注意力(Multi-head Latent Attention)在解碼過程中優(yōu)化內存效率,同時保持模型性能。
- DeepSeekMoE 在混合專家模型(MoE)架構中平衡 knowledge sharing 與 expert specialization。
- 無輔助損失函數(shù)的負載均衡(Auxiliary-Loss-Free Load Balancing)在不影響主要訓練目標的情況下實現(xiàn)有效的負載均衡。
本文將探討 DeepSeek 如何在文本生成的效率與質量之間實現(xiàn)又一重要平衡。
本文目錄:
- 技術背景:介紹大語言模型解碼過程的基本原理,特別是 next-token prediction 機制及其局限性。同時回顧多詞元預測(MTP)的相關研究,探討其設計選擇與優(yōu)劣。
- DeepSeek 的多詞元預測:解釋其工作原理,并重點討論與先前研究不同的設計選擇。此外還將介紹如何將 DeepSeek 的 MTP 策略與推測解碼(speculative decoding)結合以加快推理速度。
- 評估:分析 MTP 對訓練性能和推理效率的雙重影響。
- 總結
- 參考文獻
01 技術背景
要理解 DeepSeek 的多詞元預測(multi-token prediction),我們首先需要仔細了解大語言模型(LLMs)如何生成文本。
1.1 Next-Token Prediction
LLMs 通常通過自回歸(autoregressive)的方式生成文本,即在給定歷史 tokens 序列的前提下,通過逐 token 預測下一個最可能的 token 來生成文本。
例如,給定文本 "The cat sat",其分詞結果可能為:
"The cat sat"->["The","cat","sat"]
每個 token 都有一個與它在詞匯表中的索引相對應的 token id,并將通過該索引在嵌入矩陣(embedding matrix)中查詢對應的稠密向量,并與位置編碼(positional encoding)相加后輸入模型:
Emb("The") = vector("The") + PositionalEncoding(1)
Emb("cat") = vector("cat") + PositionalEncoding(2)
Emb("sat") = vector("sat") + PositionalEncoding(3)
經過 LLM 的 Transformer 層處理后,最后一層通過線性投影將嵌入向量映射回詞匯表空間,再通過 Softmax 輸出詞匯的概率分布。以上述簡單示例為例,最高概率的 token 可能是:
P("on") = 0.7
P("under") = 0.3
...
因此,模型會選擇最有可能的 token "on",生成結果變?yōu)椋?/p>
"The cat sat on"
這一逐詞元生成的過程將持續(xù)至達到最大生成長度或遇到終止符(EOS)為止。 由于每一步僅生成單個 token,該機制被稱為 next-token prediction,其定義為:
其中:
- t 表示第 t 個時間步
- x_{t:1} 表示歷史詞元序列 x_1 至 x_t3
- x_{t+1} 是未來的下一個詞元(token)
從建模的角度看,Next-token prediction 似乎很自然,但存在以下局限:
- 無法并行化:需按序列逐詞元處理,無法并行計算。
- 計算效率低:每次預測都需要一次完整的前向傳播,導致訓練和推理效率低下(尤其是實時長文本生成場景)。
為解決這些問題,多詞元預測(multi-token prediction) 應運而生。
1.2 先前的多詞元預測方法
在文獻[3]中,作者將 next-token prediction 擴展為一種多詞元預測機制:
其中,給定相同的輸入序列,模型將通過單次前向傳播生成從 x_{t+1} 到 x_{t+n} 的 n 個 tokens。
請注意,這并不意味著在單個 Softmax 輸出的概率分布上同時選擇 n 個 tokens,因為 Softmax 不支持從單個概率分布中同時選擇多個 tokens。
這是因為 Softmax 是為分類分布(categorical distributions)設計的,其建模的是多個互斥選項中單個離散事件的概率。因此,Softmax 在每個時間步(time step)只能生成單個 token,要預測多個 tokens 需要多個 Softmax 層,每層專門負責生成獨立的 token。
因此,上述多詞元預測的損失函數(shù)將首先被分解為多個單詞元(token)預測操作頭,然后每個單詞元(token)預測頭會運行獨立的 Softmax 來選擇對應詞元。
更具體地說,我們引入了中間潛在表征(intermediate latent representation)z_{t:1} 來表示大語言模型中的隱藏表征,如下列公式所示:
作者根據(jù)文獻 [3] 中的公式創(chuàng)建的圖像
這種方式將輸入序列 x_{t:1} 與輸出序列解耦,使模型能夠通過單次前向傳播將 x_{t:1} 編碼為 z_{t:1},并在后續(xù)所有生成過程中重復使用該表征。
隨后,x_{t+n:t+1} 與 z_{t:1} 之間的條件概率會被進一步分解為 n 個獨立的單步條件概率(如用藍色標注的內容所示),每個條件概率代表一個單詞元生成步驟:
作者根據(jù)文獻 [3] 中的公式創(chuàng)建的圖像
在文獻[3]中,這一過程通過以下公式實現(xiàn):
作者根據(jù)文獻 [3] 中的公式創(chuàng)建的圖像
其架構如下圖所示,包含:
- 一個共享的 Transformer f_s,通過單次前向傳播將 x_{t:1} 編碼為 z_{t:1}。
- n 個獨立的輸出頭 f_{h_i}(以 Transformer 層實現(xiàn)),將中間隱藏表征 z_{t:1} 映射到 x_{t+i}。特別是,第一個頭(當 i==1 時)的輸出可視為下一詞元預測頭。
- 一個共享的解嵌入矩陣 f_u,用于將 x 映射到詞表大小的維度,最后通過應用 Softmax 獲得各個詞元的概率。
圖 1. 文獻[3]中的多詞元預測架構。該圖來自文獻[3]
現(xiàn)在,讓我們來深入了解這一架構,特別是共享組件與獨立組件背后的設計考量:
- 共享的 f_s:如前文所述,這種方式只需單次前向傳播即可獲得 z_{t:1},從而生成 n 個詞元,相比傳統(tǒng)的 next-token prediction 具有更高的計算效率。
- 共享的解嵌入矩陣 f_u:由于解嵌入矩陣非常大,維度數(shù)量為 d×V(d 為隱藏層維度,V 為詞表大小,通常為 5 萬~ 20 萬),共享參數(shù)能大大減少參數(shù)量且對性能的影響有限。
- 獨立的輸出頭:這是這一架構中唯一獨立的部分。如前文所述,每個詞元都需要一個獨立 Softmax,因此無法共享所有組件。
使用獨立的輸出頭能夠使得 n 個詞元的生成過程相互解耦。一方面,這種設計支持并行生成詞元,可以提升訓練效率;但另一方面,獨立生成詞元可能導致輸出缺乏連貫性或一致性。此外,模型可能會出現(xiàn)模式奔潰(mode collapse),傾向于生成通用的、高頻的詞匯,而非細致的響應,從而降低輸出的多樣性和豐富性。
在下一節(jié),我們將看到 DeepSeek 的多詞元預測技術如何解決這個問題。
02 DeepSeek 的多詞元預測技術
如前文所述,文獻[3]中的多詞元預測方法會獨立生成 n 個詞元,可能導致輸出不連貫甚至模式崩潰(mode collapse)。 為了解決這個問題,DeepSeek 通過保持每個詞元預測的完整因果鏈來實現(xiàn)多詞元預測,如下圖所示:
圖 2. DeepSeek 中的多詞元預測架構。圖片來自文獻[2]
上圖展示了三個生成步驟,分別稱為 main model、MTP module 1 和 MTP module 2。
main model 的架構與我們在文獻[3]中看到的架構高度相似,同樣包含三個核心組件:
- 一個共享的嵌入層(embedding layer)
- 一個獨立的 Transformer block
- 一個共享的線性輸出頭(shared linear output head),其功能類似于文獻[3]中的解嵌入矩陣(unembedding matrix)
但從 MTP module 1 開始,差異就變得明顯了:因為 Transformer block 的輸入依賴于前一個詞元的表征。
更具體地說,第 i 個 token 的 Transformer 輸入如下:
其中:
- k 是 MTP module 的索引。
- h^{k-1}_{i} 是來自上一步的表征。
- Emb(t_{i+k}) 是第 (i+k) 個詞元(token)的嵌入層輸出。
- RMSNorm 算子對兩個表征向量進行歸一化處理,使它們的數(shù)值更具可比性,并允許將它們拼接起來。隨后通過拼接算子[·;·]生成 2d 維度的表征。
- 最終通過線性投影矩陣 M_k 將維度從 2d 映射回 d,供 Transformer block 使用。
在 MTP modules 間引入依賴關系破壞了文獻[3]中的并行性,但也使文本生成更加連貫,更適合對話和推理等場景。
DeepSeek 模型中,多詞元預測主要用于訓練階段,每個 MTP module 均應用交叉熵損失函數(shù),如下圖所示:
其中 t_{i} 表示第 i 個位置的真實詞元(ground-truth token),而 p^{k}_{i}[t_i] 則是第 k 個 MTP module 對 t_i 的預測概率。
然后,所有 MTP module 的損失值會被整合為一個額外附加的訓練目標:
在推理階段,所有 MTP module 都會被丟棄,僅保留 main model 進行詞元預測。但文獻[2]的作者也提到他們的 MTP 技術可與推測解碼(speculative decoding)結合,以加快推理速度。
那么,這是如何實現(xiàn)的呢?
2.1 推測解碼(speculative decoding)
推測解碼(speculative decoding)是一種通過先打草稿后驗證的范式加速自回歸生成過程的技術[4, 5]:首先并行生成多個候選詞元,然后用原始自回歸(AR)模型驗證或修正這些詞元,如下圖所示:
圖 3. 推測解碼技術的先打草稿后驗證流程。圖片來自文獻[5]
具體而言,推測解碼包含兩個階段:
- 并行生成草稿(Parallel drafting):不再使用原始 AR 模型逐詞元(token)生成,而是通過推測解碼并行生成候選詞元。
- 批量進行驗證(Batch verification):通過單次前向傳播,用原始 AR 模型驗證草稿詞元,并根據(jù)需要接受或修正它們。
由于草稿詞元可能被接受,也可能被拒絕,因此實際的加速效果主要取決于接受率:
- 理想情況下,所有草稿詞元(K 個)均被接受,模型可通過單次前向傳播前進 K 步,實現(xiàn) K 倍加速。
- 如果部分草稿詞元被拒絕,生成過程仍然可以從部分加速效果中收益,因為僅需重新生成被拒絕的詞元,而非整個序列。
換言之,更高的接受率可帶來更明顯的加速效果。下一節(jié)我們將深入探討 DeepSeek 如何在推理中應用此技術。
03 Evaluation
在文獻[2]中,作者評估了其多詞元預測策略對訓練和推理階段的影響。
3.1 訓練性能影響
為驗證多詞元預測策略是否能提升模型訓練效果,文獻[2]的作者在兩個不同規(guī)模的 MoE 模型上進行了實驗:
- 15.7B 的較小規(guī)模模型(激活參數(shù) 2.4B,下表中用藍色標注)
- 228.7B 的較大規(guī)模模型(激活參數(shù) 20.9B,下表中用綠色標注)
圖 4. 多詞元預測對訓練性能的影響。作者基于文獻[2]中的表格繪制
在這兩種模型上,作者對比了原始模型與添加 MTP module 的變體模型的性能(其余配置保持一致)。在本實驗中,MTP module 在推理時被完全丟棄,因此推理時間無差異。
根據(jù)上表結果,兩種規(guī)模的模型加入 MTP module 后,在多項任務上均表現(xiàn)更優(yōu),證明了該策略的有效性。
3.2 推理效率影響
如前文所述,MTP module 在推理階段可與推測解碼(speculative decoding)結合,以加速推理過程,而非在推理時完全丟棄它們。
在文獻 [2] 中,作者嘗試通過 MTP 技術預測未來的 2 個詞元(token),并將其與推測解碼相結合,結果發(fā)現(xiàn)第二個詞元預測的接受率約為 85%~90%,這表明其 MTP 策略的生成質量穩(wěn)定可靠。
更重要的是,憑借高接受率,MTP 與推測解碼相結合可實現(xiàn)每秒生成詞元數(shù)(TPS)1.8 倍的推理加速。
04 Summary
本文探討了 DeepSeek 的另一項關鍵架構創(chuàng)新——多詞元預測(multi-token prediction),解析其如何在文本生成中平衡生成效率與生成質量。
MTP 和以下這些架構創(chuàng)新共同構成了 DeepSeek 模型的基礎,使其既高效又強大:
- 多頭潛在注意力(Multi-head Latent Attention)在解碼過程中優(yōu)化內存效率,同時保持模型性能。
- DeepSeekMoE 在混合專家模型(MoE)架構中平衡 knowledge sharing 與 expert specialization。
- 無輔助損失函數(shù)的負載均衡(Auxiliary-Loss-Free Load Balancing)在不影響主要訓練目標的情況下實現(xiàn)有效的負載均衡。
核心啟示:
- 大語言模型的訓練仍存在諸多未決問題,新技術的引入常伴隨非預期的副作用
- 要應對這些挑戰(zhàn),既需要對現(xiàn)象進行透徹分析,也需要對內部機制有深刻理解。
- 解決方案不必復雜 —— 簡單的策略有時能帶來驚人的效果
至此,我們已完成對 DeepSeek 架構創(chuàng)新的探討。下一篇文章將深入其訓練策略,解析預訓練、微調與對齊階段的關鍵設計選擇。
參考文獻
[1] DeepSeek(??https://www.deepseek.com/)??
[2] DeepSeek-V3 Technical Report(??https://github.com/deepseek-ai/DeepSeek-V3/blob/main/DeepSeek_V3.pdf)??
[3] Better & Faster Large Language Models via Multi-token Prediction(??https://arxiv.org/abs/2404.19737)??
[4] Fast Inference from Transformers via Speculative Decoding(??https://arxiv.org/pdf/2211.17192)??
[5] Speculative Decoding: Exploiting Speculative Execution for Accelerating Seq2seq Generation(??https://arxiv.org/pdf/2203.16487)??
Thanks for reading!
Hope you have enjoyed and learned new things from this blog!
About the author
Shirley Li
I am a Machine Learning Engineer working on building multi-modality models to solve real-world problems.
END
本期互動內容 ??
?你在使用 AI 工具時,最在意的是響應速度還是輸出質量?為什么?
原文鏈接:
