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

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


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


訓練成本:從技術(shù)報告中看DeepSeek用的是H800的GPU做的訓練,而且只有2千張左右的H800,整個V3的正式訓練成本不超過600W美元。
1、預(yù)訓練階段,每萬億的Token 訓練V3使用2048個H800GPU集群,只需要180K 個H800 GPU小時,大概3.7天(180000/2048/24)
2、整個預(yù)訓練總耗時2664K GPU小時(不到2個月),加上 上下文擴展和后訓練,總耗時大概2788KGPU耗時。
3、按照H800 每小時2美元租賃,總的訓練成本不超過600W美元

DeepSeek-V3 Technical Report? ? 這么低的推理和訓練成本不由引出以下的問題: 模型采用了什么樣的網(wǎng)絡(luò)架構(gòu)? 訓練的精度、框架和并行策略是怎樣的? 模型的部署和優(yōu)化方案是怎樣的? 在硬件層的計算和通信上做了什么優(yōu)化?
二、DeepSeek訓推核心技術(shù)
2.1 DeepSeek-V3模型網(wǎng)絡(luò)架構(gòu)
DeepSeekV3 整體預(yù)訓練用了14.8萬億的高質(zhì)量Token,并且在后期做了SFT和RL,模型參數(shù)量達到671B,但是每個Token僅激活37B參數(shù)。為了做到高效的推理和訓練,DeepSeekV3自研了MLA注意力機制和無輔助損失負載均衡策略的MoE架構(gòu)。
從技術(shù)報告中看出,是經(jīng)典的Transformer架構(gòu),比較亮眼的就是前饋網(wǎng)絡(luò)使用的DeepSeekMoE架構(gòu)、Attention機制使用MLA架構(gòu),其實這兩個在DeepSeekV2模型已經(jīng)被驗證使用過。
與DeepSeek-V2相比,V3額外引入了一種無輔助損失的負載均衡策略,用于DeepSeekMoE,以減輕因需要保證Expert負載均衡而導(dǎo)致的性能下降。

2.1.1 DeepSeekMoE
第一個將MoE架構(gòu)引入Transformer網(wǎng)絡(luò)的就是GShard架構(gòu)了,與傳統(tǒng)大模型架構(gòu)相比,MoE架構(gòu)在數(shù)據(jù)流轉(zhuǎn)過程中集成了一個專家網(wǎng)絡(luò)層。 可以看出傳統(tǒng)的MoE基本兩部分組成:Gating門控網(wǎng)絡(luò)、稀疏MoE層;
●稀疏 MoE 層: 這些層代替了傳統(tǒng) Transformer 模型中的前饋網(wǎng)絡(luò) (FFN) 層。MoE 層包含若干“專家”(例如 8 個),每個專家本身是一個獨立的神經(jīng)網(wǎng)絡(luò)。在實際應(yīng)用中,這些專家通常是前饋網(wǎng)絡(luò) (FFN),但它們也可以是更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),甚至可以是 MoE 層本身,從而形成層級式的 MoE 結(jié)構(gòu)。
●門控網(wǎng)絡(luò)或路由: 這個部分用于決定哪些Token被發(fā)送到哪個專家。Token的路由方式是 MoE 使用中的一個關(guān)鍵點,因為路由器由學習的參數(shù)組成,并且與網(wǎng)絡(luò)的其他部分一同進行預(yù)訓練。

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

門控網(wǎng)絡(luò)路由策略:TopK表示第t個Token和所有路由專家計算出的親和力分數(shù)中K個最高分數(shù)的集合,在DeepSeekV3中,使用sigmoid函數(shù)計算親和力分數(shù),然后在所有選擇的親和力分數(shù)中應(yīng)用歸一化來生成門控值。? 通常在MoE模型的訓練過程中,不同專家因為路由策略的因素會導(dǎo)致接收的訓練數(shù)據(jù)分布不均,比如所有的Token都被發(fā)送到只有少數(shù)幾個受歡迎的專家,那么有些專家就可能沒有被訓練到。 業(yè)界通用的解決方案就是引入輔助損失,但是,有時候過大的輔助損失會損害模型性能。 為了在負載均衡和模型性能之間取得更好的平衡,DeepSeek開創(chuàng)了一種無輔助損失的負載均衡策略:為每個專家引入一個偏差項
,并將其添加到相應(yīng)的親和力分數(shù)
中以確定top-K路由,具體來說:如果其對應(yīng)的專家過載,我們將偏差項減少γ;如果其對應(yīng)的專家負載不足,我們將偏差項增加γ,其中γ是一個稱為偏差更新速度的超參數(shù)。
門控網(wǎng)絡(luò)本質(zhì)上就是一個softmax疊加一個分類網(wǎng)絡(luò),那么輔助loss往往就是添加一個懲罰項,對輸出過大的 logits 進行懲罰,鼓勵模型生成更加適度的 logits 值,防止模型生成過于極端的輸出。
2.1.2 MLA 多頭潛在注意力
大模型推理過程KV Cache機制一般是限制推理效率的一大瓶頸,而標準的Transformer 架構(gòu)里面的MHA架構(gòu)會產(chǎn)出非常多的KV Cache,為了減少對應(yīng)的KV Cache業(yè)界實踐過很多方案,例如PagedAttention、多查詢注意力(MQA)和分組查詢注意力(GQA),但是性能相比原生的MHA有一定差距。

DeepSeek-V2,提出一種創(chuàng)新的注意力機制:多頭潛在注意力(MLA)。
相比MQA的KV共用和GQA的KV分組,MLA的核心是注意力鍵和值的低秩聯(lián)合壓縮,以減少推理過程中的鍵值(KV)緩存。相比MHA具有更好的性能,但需要的 KV 緩存量要少得多。

低秩矩陣是指其秩(rank)遠小于其行數(shù)和列數(shù)的矩陣。
假設(shè)我們有一個矩陣,其實際結(jié)構(gòu)允許它被分解為兩個較小的矩陣的乘積。這種情況通常意味著原矩陣是低秩的。
假設(shè)我們有一個4×5的矩陣A,這個矩陣可以通過兩個更小的矩陣的乘積來表示,比如一個4×2的矩陣B和一個2×5的矩陣C。這意味著原始矩陣A的信息可以通過這兩個較小的矩陣來捕捉,表明A是一個低秩矩陣。
低秩壓縮計算核心過程:



這里的
表示第t個Token的輸入,
表示KV的向下投影矩陣,將
做降維壓縮表示,實際得到
就是要緩存的KV壓縮隱向量;
和
是向上做升維的投影矩陣,將Token的壓縮隱向量
復(fù)原為原始KV矩陣;

MLA 模塊架構(gòu)圖
具體的Attention計算推導(dǎo)過程可以參考:MLA的推導(dǎo)細節(jié)
2.2訓練推理核心技術(shù)

2.2.1 訓練框架HAI-LLM
DeepSeek-V3在一個配備了2048個NVIDIA H800 GPU的集群上進行訓練,使用的是自研的HAI-LLM框架,框架實現(xiàn)了四種并行訓練方式:ZeRO 支持的數(shù)據(jù)并行、流水線并行、張量切片模型并行和序列并行。
這種并行能力支持不同工作負載的需求,可以支持數(shù)萬億規(guī)模的超大模型并擴展到數(shù)千個 GPU,同時還自研了一些配套的高性能算子haiscale,可以幫助 HAI-LLM 極大優(yōu)化大模型訓練的顯存效率和計算效率。
2.2.2 核心算法DualPipe-創(chuàng)新流水線并行算法
i.通信計算重疊優(yōu)化
DeepSeek-V3應(yīng)用了16路流水線并行(PP),跨越8個節(jié)點的64路專家并行(EP),以及ZeRO-1數(shù)據(jù)并行(DP)。
與現(xiàn)有的流水線并行方法相比,DualPipe的流水線氣泡更少。同時重疊了前向和后向過程中的計算和通信階段,解決了跨節(jié)點專家并行引入的沉重通信開銷的挑戰(zhàn)。
DualPipe的關(guān)鍵思想是重疊一對單獨的前向和后向塊中的計算和通信:將每個塊劃分為四個組件:注意力、all-all調(diào)度、MLP和all-all組合
例如,假設(shè)我們有兩個計算塊,A和B:
1.在塊A進行前向傳播計算時,可以同時進行塊B的后向傳播通信過程。
2.當塊A完成前向傳播計算后,開始它的通信過程;而塊B則開始它的前向傳播計算。

通過優(yōu)化排列這些功能模塊,并精確調(diào)控用于通信和計算的 GPU SM資源分配比例,系統(tǒng)能夠在運行過程中有效隱藏全節(jié)點通信和 PP 通信開銷。 可以看出DeepSeek在PP這塊,做了大量的通信計算重疊優(yōu)化,從技術(shù)報告中看出,即使是細粒度的all-all專家通信,all-all的通信開銷幾乎為0。

●計算通信重疊
在深度學習大規(guī)模分布式訓練過程中,通信的速度往往落后于計算的速度,如何在通信的gap期間內(nèi)并行做一些計算就是高性能計算和通信重疊,是實現(xiàn)高效訓練的關(guān)鍵因素。
●流水線并行氣泡問題
一些大的模型會采用流水線并行策略,將模型的不同層放在不同的GPU上,但是不同層之間有依賴關(guān)系,后面層需要等前面的計算完才能開始計算,會導(dǎo)致GPU在一段時間是閑置的,如下圖所示:

ii.跨節(jié)點全對全通信 DeepSeek還專門定制了高效的跨節(jié)點all-all通信內(nèi)核(包括調(diào)度和組合)。 具體來說:跨節(jié)點 GPU 通過 IB 完全互連,節(jié)點內(nèi)通信通過 NVLink 處理,每個Token最多調(diào)度到 4個節(jié)點,從而減少 IB 通信量。同時使用warp專業(yè)化技術(shù)做調(diào)度和組合的優(yōu)化。
在調(diào)度過程中,(1) IB 發(fā)送,(2) IB 到 NVLink 轉(zhuǎn)發(fā),以及 (3) NVLink 接收分別由各自的 warp 處理。分配給每個通信任務(wù)的 warp 數(shù)會根據(jù)所有 SM 上的實際工作負載動態(tài)調(diào)整。
在合并過程中,(1) NVLink 發(fā)送,(2) NVLink 到 IB 的轉(zhuǎn)發(fā)和累積,以及 (3) IB 接收和累積也由動態(tài)調(diào)整的 warp 處理。
通過這種方式,IB 和 NVLink 的通信實現(xiàn)完全重疊,每個 token 能夠在不產(chǎn)生 NVLink 額外開銷的情況下,在每個節(jié)點上平均高效選擇 3.2 個專家。這意味著,雖然 DeepSeek-V3 實際只選擇 8 個路由專家,但它可以將這個數(shù)字擴展到最多 13 個專家(4 個節(jié)點 × 3.2 個專家/節(jié)點),同時保持相同的通信成本。
DSV3采用了1個共享專家和256個路由專家的MoE架構(gòu),每個token會激活8個路由專家。
2.2.3 用于FP8訓練的混合精度框架
這里并沒有將全量參數(shù)FP8量化訓練,大多數(shù)計算密集型操作都在FP8中進行,而一些關(guān)鍵操作則戰(zhàn)略性地保留其原始數(shù)據(jù)格式,以平衡訓練效率和數(shù)值穩(wěn)定性。 哪些算子啟用FP8量化去計算?取舍邏輯是什么? ■大多數(shù)核心計算過程,即 GEMM 運算,都以 FP8 精度實現(xiàn) ■涉及對低精度計算的敏感性的算子,仍然需要更高的精度 ■一些低成本算子也可以使用更高的精度 以下組件保留了原始精度(例如,BF16 或 FP32):Embedding模塊、輸出頭、MoE 門控模塊、Normalization算子以及Attention算子。 ? 如何提高低精度訓練精度? ■細粒度量化
對激活,在token維度采用group-wise的量化(1*128);對權(quán)重,采用128* 128的block-wise量化

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

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

2.2.5 推理部署方案
DeepSeek-V3 整體參數(shù)量達到了671B,如此多的參數(shù)量,我們看下他的一個部署方案:
推理部署采用了預(yù)填充(Prefilling)和解碼(Decoding)分離的策略,確保了在線服務(wù)的高吞吐量和低延遲。通過冗余專家部署和動態(tài)路由策略,模型在推理時保持了高效的負載均衡。
整套部署方案下來基本是跨機分布式推理。
2.2.5.1 Prefill 階段
這個階段簡單說就是并行處理用戶的Prompt,將其轉(zhuǎn)為KV Cache。
預(yù)填充階段的最小部署單元由4個節(jié)點組成,每個節(jié)點配備32個GPU。注意力部分采用4路張量并行(TP4)和序列并行(SP),并結(jié)合8路數(shù)據(jù)并行(DP8)。其較小的TP規(guī)模(4路)限制了TP通信的開銷。對于MoE部分,我們使用32路專家并行(EP32)
2.2.5.2 Decoder 階段
這個階段就是做自回歸的每個Token的輸出。
解碼階段的最小部署單元由40個節(jié)點和320個GPU組成。注意力部分采用TP4和SP,結(jié)合DP80,而MoE部分使用EP320。對于MoE部分,每個GPU只承載一個專家,64個GPU負責承載冗余專家和共享專家
總結(jié):為什么DeepSeekV3訓練成本這么低?
訓練成本主要由模型架構(gòu)以及訓練架構(gòu)所決定,而且兩者一定是相輔相成。從報告中可以看出以下幾個原因:I.MLA 機制:通過對KV做聯(lián)合低秩壓縮大幅減少KV Cache,相比業(yè)界從KV數(shù)量角度做KV Cache的減少,MLA 的壓縮實現(xiàn)很考驗研究團隊的基本功。 II.FP8 訓練:通過低精度計算減少了 GPU 內(nèi)存使用和計算開銷,技術(shù)報告中也提到FP8混合精度訓練框架是首次在一個極大規(guī)模的模型上驗證了其有效性,這一點也看出DeepSeek的Infra工程團隊的底蘊。 III.MoE 架構(gòu):通過MoE稀疏激活機制大幅減少了計算量,相比Qwen和Llama的Dense架構(gòu)有很大的訓推先天優(yōu)勢,不過難題(專家的負載、通信、路由)也給到了Infra工程團隊。
三、為什么是DeepSeek?
在硅谷,類似DeepSeek這樣的AI創(chuàng)新并不少有,只是這次是一家中國公司做出了這個動作,相比傳統(tǒng)的‘美國創(chuàng)新、中國應(yīng)用’的模式顯得格外的讓人興奮。
從最近的一些訪談以及DeepSeek的技術(shù)報告中也能看出以下幾點:
1、大模型是一個知識密集型產(chǎn)業(yè),如何組織高密度人才?顯然DeepSeek做到了
2、大模型技術(shù)沒有魔法,更多時候就是考驗基本功和驅(qū)動力
3、不以商業(yè)化為第一要義,很多時候能輕裝上陣
四、一些個人思考
1、長遠來看,后續(xù)可能會有專門的適配Transformer架構(gòu)的芯片,就像為卷積設(shè)計了ASIC芯片
2、多Token預(yù)測、MoE架構(gòu)可能很長一段時間都是大模型訓推架構(gòu)熱門研究方向
3、在國內(nèi)做AI,應(yīng)用始終會比基礎(chǔ)研究有市場,更有話語權(quán),但是基礎(chǔ)創(chuàng)新和海外的代際差距會越來越小
4、大模型訓練和推理,軟硬件是一個協(xié)同的生態(tài),DeepSeek的出現(xiàn)將會促進AI全行業(yè)的更加快速且低成本的迭代
5、時間比較倉促,很多技術(shù)細節(jié)問題值得學習深究,有錯誤的地方勿噴~
參考資料
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
-
人工智能
+關(guān)注
關(guān)注
1813文章
49704瀏覽量
261162 -
DeepSeek
+關(guān)注
關(guān)注
2文章
822瀏覽量
2790
原文標題:漫談DeepSeek及其背后的核心技術(shù)
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
藍牙室內(nèi)定位核心技術(shù)解析:RSSI 與 AOA 的測距原理對比與精度升級邏輯
深入解析地物光譜儀廠家核心技術(shù)與行業(yè)優(yōu)勢
【「DeepSeek 核心技術(shù)揭秘」閱讀體驗】+混合專家
【「DeepSeek 核心技術(shù)揭秘」閱讀體驗】--全書概覽
【「DeepSeek 核心技術(shù)揭秘」閱讀體驗】第三章:探索 DeepSeek - V3 技術(shù)架構(gòu)的奧秘
【「DeepSeek 核心技術(shù)揭秘」閱讀體驗】書籍介紹+第一章讀后心得
【書籍評測活動NO.62】一本書讀懂 DeepSeek 全家桶核心技術(shù):DeepSeek 核心技術(shù)揭秘
HarmonyOS NEXT開發(fā)實戰(zhàn):DevEco Studio中DeepSeek的使用
RK3588開發(fā)板上部署DeepSeek-R1大模型的完整指南
鴻蒙原生應(yīng)用開發(fā)也可以使用DeepSeek了
淺談DeepSeek核心技術(shù)與應(yīng)用場景
添越智創(chuàng)基于 RK3588 開發(fā)板部署測試 DeepSeek 模型全攻略
了解DeepSeek-V3 和 DeepSeek-R1兩個大模型的不同定位和應(yīng)用選擇
Meta組建四大專研小組,深入探索DeepSeek模型
從MCU到SoC:汽車芯片核心技術(shù)的深度剖析

深入探討DeepSeek大模型的核心技術(shù)
評論