1.2 模型能力

DeepSeek模型已經對標國內Qwen、海外Llama、GPT 4o,從公布的榜單評測上看:DeepSeek-V3 在開源模型中位列榜首,與世界上最先進的閉源模型不分伯仲。

1.3訓推成本

推理成本(API報價):百萬Token輸入價格能達到1元。

訓練成本:從技術報告中看DeepSeek用的是H800的GPU做的訓練,而且只有2千張左右的H800,整個V3的正式訓練成本不超過600W美元。

1、預訓練階段,每萬億的Token 訓練V3使用2048個H800GPU集群,只需要180K 個H800 GPU小時,大概3.7天(180000/2048/24)

2、整個預訓練總耗時2664K GPU小時(不到2個月),加上 上下文擴展和后訓練,總耗時大概2788KGPU耗時。

3、按照H800 每小時2美元租賃,總的訓練成本不超過600W美元

DeepSeek-V3 Technical Report

這么低的推理和訓練成本不由引出以下的問題:

模型采用了什么樣的網絡架構?

訓練的精度、框架和并行策略是怎樣的?

模型的部署和優化方案是怎樣的?

在硬件層的計算和通信上做了什么優化?

二、DeepSeek訓推核心技術

2.1 DeepSeek-V3模型網絡架構

DeepSeekV3 整體預訓練用了14.8萬億的高質量Token,并且在后期做了SFT和RL,模型參數量達到671B,但是每個Token僅激活37B參數。為了做到高效的推理和訓練,DeepSeekV3自研了MLA注意力機制和無輔助損失負載均衡策略的MoE架構。

從技術報告中看出,是經典的Transformer架構,比較亮眼的就是前饋網絡使用的DeepSeekMoE架構、Attention機制使用MLA架構,其實這兩個在DeepSeekV2模型已經被驗證使用過。

與DeepSeek-V2相比,V3額外引入了一種無輔助損失的負載均衡策略,用于DeepSeekMoE,以減輕因需要保證Expert負載均衡而導致的性能下降。

2.1.1 DeepSeekMoE

第一個將MoE架構引入Transformer網絡的就是GShard架構了,與傳統大模型架構相比,MoE架構在數據流轉過程中集成了一個專家網絡層。

可以看出傳統的MoE基本兩部分組成:Gating門控網絡、稀疏MoE層;

●稀疏 MoE 層: 這些層代替了傳統 Transformer 模型中的前饋網絡 (FFN) 層。MoE 層包含若干“專家”(例如 8 個),每個專家本身是一個獨立的神經網絡。在實際應用中,這些專家通常是前饋網絡 (FFN),但它們也可以是更復雜的網絡結構,甚至可以是 MoE 層本身,從而形成層級式的 MoE 結構。

●門控網絡或路由: 這個部分用于決定哪些Token被發送到哪個專家。Token的路由方式是 MoE 使用中的一個關鍵點,因為路由器由學習的參數組成,并且與網絡的其他部分一同進行預訓練。

和傳統的MoE架構相比,DeepSeekMoE使用更細粒度的專家,并將一些專家隔離為共享專家,減少專家間的知識冗余。

門控網絡路由策略:TopK表示第t個Token和所有路由專家計算出的親和力分數中K個最高分數的集合,在DeepSeekV3中,使用sigmoid函數計算親和力分數,然后在所有選擇的親和力分數中應用歸一化來生成門控值。

通常在MoE模型的訓練過程中,不同專家因為路由策略的因素會導致接收的訓練數據分布不均,比如所有的Token都被發送到只有少數幾個受歡迎的專家,那么有些專家就可能沒有被訓練到。

業界通用的解決方案就是引入輔助損失,但是,有時候過大的輔助損失會損害模型性能。

為了在負載均衡和模型性能之間取得更好的平衡,DeepSeek開創了一種無輔助損失的負載均衡策略:為每個專家引入一個偏差項bi,并將其添加到相應的親和力分數Si,t 是的中以確定top-K路由,具體來說:如果其對應的專家過載,我們將偏差項減少γ;如果其對應的專家負載不足,我們將偏差項增加γ,其中γ是一個稱為偏差更新速度的超參數。

門控網絡本質上就是一個softmax疊加一個分類網絡,那么輔助loss往往就是添加一個懲罰項,對輸出過大的 logits 進行懲罰,鼓勵模型生成更加適度的 logits 值,防止模型生成過于極端的輸出。

2.1.2 MLA 多頭潛在注意力

大模型推理過程KV Cache機制一般是限制推理效率的一大瓶頸,而標準的Transformer 架構里面的MHA架構會產出非常多的KV Cache,為了減少對應的KV Cache業界實踐過很多方案,例如PagedAttention、多查詢注意力(MQA)和分組查詢注意力(GQA),但是性能相比原生的MHA有一定差距。

DeepSeek-V2,提出一種創新的注意力機制:多頭潛在注意力(MLA)。

相比MQA的KV共用和GQA的KV分組,MLA的核心是注意力鍵和值的低秩聯合壓縮,以減少推理過程中的鍵值(KV)緩存。相比MHA具有更好的性能,但需要的 KV 緩存量要少得多。

低秩矩陣是指其秩(rank)遠小于其行數和列數的矩陣。

假設我們有一個矩陣,其實際結構允許它被分解為兩個較小的矩陣的乘積。這種情況通常意味著原矩陣是低秩的。

假設我們有一個4×5的矩陣A,這個矩陣可以通過兩個更小的矩陣的乘積來表示,比如一個4×2的矩陣B和一個2×5的矩陣C。這意味著原始矩陣A的信息可以通過這兩個較小的矩陣來捕捉,表明A是一個低秩矩陣。

低秩壓縮計算核心過程:

2.2 訓練推理核心技術

2.2.1 訓練框架HAI-LLM

DeepSeek-V3在一個配備了2048個NVIDIA H800 GPU的集群上進行訓練,使用的是自研的HAI-LLM框架,框架實現了四種并行訓練方式:ZeRO 支持的數據并行、流水線并行、張量切片模型并行和序列并行。

這種并行能力支持不同工作負載的需求,可以支持數萬億規模的超大模型并擴展到數千個 GPU,同時還自研了一些配套的高性能算子haiscale,可以幫助 HAI-LLM 極大優化大模型訓練的顯存效率和計算效率。


2.2.2 核心算法DualPipe-創新流水線并行算法

i.通信計算重疊優化

DeepSeek-V3應用了16路流水線并行(PP),跨越8個節點的64路專家并行(EP),以及ZeRO-1數據并行(DP)。

與現有的流水線并行方法相比,DualPipe的流水線氣泡更少。同時重疊了前向和后向過程中的計算和通信階段,解決了跨節點專家并行引入的沉重通信開銷的挑戰。

DualPipe的關鍵思想是重疊一對單獨的前向和后向塊中的計算和通信:將每個塊劃分為四個組件:注意力、all-all調度、MLP和all-all組合

例如,假設我們有兩個計算塊,A和B:

1.在塊A進行前向傳播計算時,可以同時進行塊B的后向傳播通信過程。

2.當塊A完成前向傳播計算后,開始它的通信過程;而塊B則開始它的前向傳播計算。

通過優化排列這些功能模塊,并精確調控用于通信和計算的 GPU SM資源分配比例,系統能夠在運行過程中有效隱藏全節點通信和 PP 通信開銷。

可以看出DeepSeek在PP這塊,做了大量的通信計算重疊優化,從技術報告中看出,即使是細粒度的all-all專家通信,all-all的通信開銷幾乎為0。

●計算通信重疊

在深度學習大規模分布式訓練過程中,通信的速度往往落后于計算的速度,如何在通信的gap期間內并行做一些計算就是高性能計算和通信重疊,是實現高效訓練的關鍵因素。

●流水線并行氣泡問題

一些大的模型會采用流水線并行策略,將模型的不同層放在不同的GPU上,但是不同層之間有依賴關系,后面層需要等前面的計算完才能開始計算,會導致GPU在一段時間是閑置的,如下圖所示:

ii.跨節點全對全通信

DeepSeek還專門定制了高效的跨節點all-all通信內核(包括調度和組合)。

具體來說:跨節點 GPU 通過 IB 完全互連,節點內通信通過 NVLink 處理,每個Token最多調度到 4個節點,從而減少 IB 通信量。同時使用warp專業化技術做調度和組合的優化。

在調度過程中,(1) IB 發送,(2) IB 到 NVLink 轉發,以及 (3) NVLink 接收分別由各自的 warp 處理。分配給每個通信任務的 warp 數會根據所有 SM 上的實際工作負載動態調整。

在合并過程中,(1) NVLink 發送,(2) NVLink 到 IB 的轉發和累積,以及 (3) IB 接收和累積也由動態調整的 warp 處理。

通過這種方式,IB 和 NVLink 的通信實現完全重疊,每個 token 能夠在不產生 NVLink 額外開銷的情況下,在每個節點上平均高效選擇 3.2 個專家。這意味著,雖然 DeepSeek-V3 實際只選擇 8 個路由專家,但它可以將這個數字擴展到最多 13 個專家(4 個節點 × 3.2 個專家/節點),同時保持相同的通信成本。

DSV3采用了1個共享專家和256個路由專家的MoE架構,每個token會激活8個路由專家。

2.2.3 用于FP8訓練的混合精度框架

這里并沒有將全量參數FP8量化訓練,大多數計算密集型操作都在FP8中進行,而一些關鍵操作則戰略性地保留其原始數據格式,以平衡訓練效率和數值穩定性。

哪些算子啟用FP8量化去計算?取舍邏輯是什么?

■大多數核心計算過程,即 GEMM 運算,都以 FP8 精度實現

■涉及對低精度計算的敏感性的算子,仍然需要更高的精度

■一些低成本算子也可以使用更高的精度

以下組件保留了原始精度(例如,BF16 或 FP32):Embedding模塊、輸出頭、MoE 門控模塊、Normalization算子以及Attention算子。

如何提高低精度訓練精度?

■細粒度量化

對激活,在token維度采用group-wise的量化(1*128);對權重,采用128* 128的block-wise量化。

■提高累加精度

在 TensorCore 上執行矩陣 MMA(矩陣乘法累加)操作時,每當累加達到一個間隔時,這些部分結果會被傳輸到 CUDA Cores 上的 FP32 寄存器中,并在那里進行FP32 精度的累加計算。

2.2.4 MTP的訓練目標

DeepSeekV3訓練過程設置了多Token預測的目標,從技術報告的消融實驗看出,確實提高了模型在大多數評估基準上的性能,而且MTP模塊還可以用于推理加速。

2.2.5 推理部署方案

DeepSeek-V3 整體參數量達到了671B,如此多的參數量,我們看下他的一個部署方案:

推理部署采用了預填充(Prefilling)和解碼(Decoding)分離的策略,確保了在線服務的高吞吐量和低延遲。通過冗余專家部署和動態路由策略,模型在推理時保持了高效的負載均衡。

整套部署方案下來基本是跨機分布式推理。

2.2.5.1 Prefill 階段

這個階段簡單說就是并行處理用戶的Prompt,將其轉為KV Cache。

預填充階段的最小部署單元由4個節點組成,每個節點配備32個GPU。注意力部分采用4路張量并行(TP4)和序列并行(SP),并結合8路數據并行(DP8)。其較小的TP規模(4路)限制了TP通信的開銷。對于MoE部分,我們使用32路專家并行(EP32)

2.2.5.2 Decoder 階段

這個階段就是做自回歸的每個Token的輸出。

解碼階段的最小部署單元由40個節點和320個GPU組成。注意力部分采用TP4和SP,結合DP80,而MoE部分使用EP320。對于MoE部分,每個GPU只承載一個專家,64個GPU負責承載冗余專家和共享專家

三、總結:為什么DeepSeekV3訓練成本這么低?

訓練成本主要由模型架構以及訓練架構所決定,而且兩者一定是相輔相成。從報告中可以看出以下幾個原因:

I.MLA 機制:通過對KV做聯合低秩壓縮大幅減少KV Cache,相比業界從KV數量角度做KV Cache的減少,MLA 的壓縮實現很考驗研究團隊的基本功。

II.FP8 訓練:通過低精度計算減少了 GPU 內存使用和計算開銷,技術報告中也提到FP8混合精度訓練框架是首次在一個極大規模的模型上驗證了其有效性,這一點也看出DeepSeek的Infra工程團隊的底蘊。

III.MoE 架構:通過MoE稀疏激活機制大幅減少了計算量,相比Qwen和Llama的Dense架構有很大的訓推先天優勢,不過難題(專家的負載、通信、路由)也給到了Infra工程團隊。

三、為什么是DeepSeek?

在硅谷,類似DeepSeek這樣的AI創新并不少有,只是這次是一家中國公司做出了這個動作,相比傳統的‘美國創新、中國應用’的模式顯得格外的讓人興奮。

從最近的一些訪談以及DeepSeek的技術報告中也能看出以下幾點:

1、大模型是一個知識密集型產業,如何組織高密度人才?顯然DeepSeek做到了

2、大模型技術沒有魔法,更多時候就是考驗基本功和驅動力

3、不以商業化為第一要義,很多時候能輕裝上陣

參考資料

1、Better & Faster Large Language Models via Multi-token Prediction

2、https://kexue.fm/archives/10091

3、https://arxiv.org/pdf/2404.19737v1

4、https://arxiv.org/pdf/2412.19437

5、https://arxiv.org/pdf/2405.04434

6、https://www.zhihu.com/question/8423473404

7、https://arxiv.org/pdf/1811.06965

文章轉載自:漫談DeepSeek及其背后的核心技術

上一篇:

如何讓AI生成的文本更有人味

下一篇:

如何獲取 Grok3 API 密鑰(分步指南)
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費