漫談DeepSeek及其背後的核心技術

↓推薦關注↓
導讀
本文深入探討了DeepSeek大模型的核心技術,從公司背景、模型能力、訓推成本到核心技術細節進行了全面分析。
一、關於DeepSeek公司及其大模型
1.1 公司概況
DeepSeek 2023年7月成立於杭州,是幻方量化旗下的子公司,全稱是杭州深度求索人工智慧基礎技術研究有限公司。
"成立時間才一年多"、"最近推出的V3已經能和OpenAI的4o媲美"、"訓練成本不到600W美元"、"API定價僅是國內其他頭部廠商幾十分之一"、"APP已經在中美APP store登上免費應用榜首";
以上是最近關於DeepSeek的一些新聞熱點資訊,下面我們從官網看下:
DeepSeek近半年相繼推出了3個主要的大模型版本,分別是DeepSeek V2.5、DeepSeek V3、DeepSeek-R1(無一例外的都是用了MOE架構)。在這之前還推出了DeepSeek-VLDeepSeek CoderDeepSeek Math

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開創了一種無輔助損失的負載均衡策略:為每個專家引入一個偏差項

,並將其新增到相應的親和力分數

中以確定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是一個低秩矩陣。
低秩壓縮計算核心過程:
這裡的

表示第t個Token的輸入,

表示KV的向下投影矩陣,將

做降維壓縮表示,實際得到

就是要快取的KV壓縮隱向量;

是向上做升維的投影矩陣,將Token的壓縮隱向量

復原為原始KV矩陣;

MLA 模組架構圖
具體的Attention計算推導過程可以參考:MLA的推導細節
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、長遠來看,後續可能會有專門的適配Transformer架構的晶片,就像為卷積設計了ASIC晶片
2、多Token預測、MoE架構可能很長一段時間都是大模型訓推架構熱門研究方向
3、在國內做AI,應用始終會比基礎研究有市場,更有話語權,但是基礎創新和海外的代際差距會越來越小
4、大模型訓練和推理,軟硬體是一個協同的生態,DeepSeek的出現將會促進AI全行業的更加快速且低成本的迭代
5、時間比較倉促,很多技術細節問題值得學習深究,有錯誤的地方勿噴~

參考資料

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

線上閱讀:https://talk.gitee.com/report/china-open-source-2024-annual-report.pdf

相關文章