DeepSeek的最新模型DeepSeek-V3和DeepSeek-R1都屬于MoE(混合專家)架構(gòu),并在開源世界產(chǎn)生了較大的影響力。特別是2025 年 1 月開源的DeepSeek-R1,模型性能可挑戰(zhàn)OpenAI閉源的 o1 模型。
隨著熱度的提升,DeepSeek也被大模型行業(yè)之外的各路媒體不斷提起,“打破CUDA壟斷”,“挖了NVLink的墻角”,“引發(fā)英偉達(dá)市值大跌”,“證明大模型算力建設(shè)浪費(fèi)”,“算力霸權(quán)轉(zhuǎn)移”,“國(guó)運(yùn)級(jí)的創(chuàng)新”,似乎有用皮衣卡住老黃脖子的架勢(shì)。
那么,從技術(shù)和架構(gòu)的角度深入最新的V3和R1模型,是否真的有“國(guó)運(yùn)級(jí)的創(chuàng)新”,又有哪些誤傳?
下面我們從V3與R1的架構(gòu)分析開始,分層解讀DeepSeek的創(chuàng)新。
1 V3與R1的主要特征
DeepSeek-R1的模型架構(gòu)來(lái)自于V3,甚至可以說(shuō)R1是具有推理(Reasoning)能力的V3。下面先分別分析V3和R1的架構(gòu)特征。
1.1 V3/R1架構(gòu)特征
DeepSeek-V3是一個(gè)混合專家 (MoE)語(yǔ)言模型,具有 6710 億(671B)參數(shù),其中每個(gè)Token(詞元)的計(jì)算約激活 370 億(37B)參數(shù)。這個(gè)模型參數(shù)量與GPT-4大致在同一數(shù)量級(jí)。
?MoE(Mixture of Experts)是組合多個(gè)專家模型提升深度學(xué)習(xí)模型性能和效率的架構(gòu)。?其核心思想是通過(guò)引入多個(gè)專家模型(Experts),每個(gè)輸入數(shù)據(jù)只選擇和激活其中的一部分專家模型進(jìn)行處理,從而減少計(jì)算量,提高訓(xùn)練和推理速度。?MoE的概念在1991年就已提出,訓(xùn)練不容易收斂是其在大模型領(lǐng)域應(yīng)用的主要障礙。 |
---|
MoE模型基本結(jié)構(gòu)示意(來(lái)源:網(wǎng)絡(luò))
DeepSeek-V3 采用了多頭潛注意力 (MLA,對(duì)傳統(tǒng)多頭注意力機(jī)制的改進(jìn)) 和DeepSeekMoE架構(gòu)(對(duì)傳統(tǒng)MoE架構(gòu)的改進(jìn)),無(wú)輔助損失的負(fù)載平衡策略等創(chuàng)新技術(shù),基于 14.8 萬(wàn)億Token的數(shù)據(jù)進(jìn)行訓(xùn)練,在代碼生成、分析等任務(wù)中表現(xiàn)出色。
其中多頭潛注意力 (MLA) 機(jī)制和DeepSeekMoE是V3和R1模型提高計(jì)算效率,減少算力浪費(fèi)的關(guān)鍵。其中MLA大概貢獻(xiàn)了2-4倍的計(jì)算效率提升,MoE大概貢獻(xiàn)了4倍以上的計(jì)算效率提升。
1)MLA(Multi-Head Latent Attention)
在“All you need is attention”的背景下,傳統(tǒng)的多頭注意力(MHA,Multi-Head Attention)的鍵值(KV)緩存機(jī)制事實(shí)上對(duì)計(jì)算效率形成了較大阻礙。縮小KV緩存(KV Cache)大小,并提高性能,在之前的模型架構(gòu)中并未很好的解決。DeepSeek引入了MLA,一種通過(guò)低秩鍵值聯(lián)合壓縮的注意力機(jī)制,在顯著減小KV緩存的同時(shí)提高計(jì)算效率。低秩近似是快速矩陣計(jì)算的常用方法,在MLA之前很少用于大模型計(jì)算。在這里我們可以看到DeepSeek團(tuán)隊(duì)的量化金融基因在發(fā)揮關(guān)鍵作用。當(dāng)然實(shí)現(xiàn)潛空間表征不止低秩近似一條路,預(yù)計(jì)后面會(huì)有更精準(zhǔn)高效的方法。
從大模型架構(gòu)的演進(jìn)情況來(lái)看,Prefill和KV Cache容量瓶頸的問(wèn)題正一步步被新的模型架構(gòu)攻克,巨大的KV Cache正逐漸成為歷史。(事實(shí)上在2024年6月發(fā)布DeepSeek-V2的時(shí)候就已經(jīng)很好的降低了KV Cache的大?。?/p>
2)DeepSeekMoE
為了讓1991年就提出的MoE架構(gòu)更好的融入大模型體系,克服傳統(tǒng)MoE模型的訓(xùn)練難題。DeepSeek采用了細(xì)粒度專家+通才專家的思路,不再使用少數(shù)大專家的結(jié)構(gòu),而是使用大量極小的專家結(jié)構(gòu)。這個(gè)思路的本質(zhì)在于將知識(shí)空間進(jìn)行離散細(xì)化,以更好的逼近連續(xù)的多維知識(shí)空間,是一個(gè)非常好的方法。
無(wú)輔助損失的負(fù)載平衡策略可在不依賴輔助損失函數(shù)的情況下平衡分配計(jì)算/訓(xùn)練負(fù)載,更好的提高訓(xùn)練穩(wěn)定性。
基于以上關(guān)鍵的改進(jìn),V3實(shí)現(xiàn)了更高的訓(xùn)練效率,比性能類似的Llama3.1 405B 少了大約 10 倍的訓(xùn)練計(jì)算量。
1.2 R1在CoT的進(jìn)化
廣義上的DeepSeek-R1 不是一個(gè)單一的模型,還包括了R1的初始階段模型DeepSeek-R1-Zero,以及幾個(gè)基于R1蒸餾的較小的大模型。在這里我們主要討論R1-Zero和R1。
1.2.1 DeepSeek-R1-Zero
DeepSeek-R1-Zero最大的特點(diǎn)在于,該模型僅使用強(qiáng)化學(xué)習(xí)進(jìn)行的訓(xùn)練,通過(guò)各種思維鏈(CoT,Chain of Thought)數(shù)據(jù)特別是Long CoT數(shù)據(jù)來(lái)激活模型的推理能力。
DeepSeek-R1-Zero 是一個(gè)獨(dú)特的通過(guò)大規(guī)模強(qiáng)化學(xué)習(xí) (RL,Reinforcement Learning) 訓(xùn)練的模型,無(wú)需有監(jiān)督微調(diào) (SFT,Supervised Fine-Tuning) ,具備較強(qiáng)的推理(Reasoning)能力。
?首先要區(qū)分兩個(gè)容易混淆的概念:Reasoning(推理)?:通過(guò)對(duì)事實(shí)的考慮和分析來(lái)得出結(jié)論的過(guò)程。推理強(qiáng)調(diào)的是思考和決策的過(guò)程,比“推斷”具有更多的邏輯和分析過(guò)程。 ??Inference?(推斷):基于已有信息或數(shù)據(jù)推導(dǎo)出新的信息或結(jié)論的過(guò)程。推斷側(cè)重于通過(guò)既定的算法或模型來(lái)實(shí)現(xiàn),與“推理”相比,更強(qiáng)調(diào)形式化和計(jì)算過(guò)程。? |
---|
R1-Zero展示出自我驗(yàn)證、反思和長(zhǎng)鏈思維推理能力,甚至在推理方面得分略微超過(guò)R1。雖然R1-Zero有一些明顯的局限性,特別是在輸出可讀性和語(yǔ)言一致性方面,仍需要解決可讀性差和語(yǔ)言混合等問(wèn)題。
這大概是第一個(gè)公開驗(yàn)證大模型的推理(Reasoning)能力可以僅通過(guò) 強(qiáng)化學(xué)習(xí)來(lái)完成訓(xùn)練。在我們看來(lái),R1-Zero的價(jià)值遠(yuǎn)超R1。按照NLP領(lǐng)域?qū)φZ(yǔ)言的理解,人類的自然語(yǔ)言并不是最完美的推理語(yǔ)言。在R1-Zero的進(jìn)一步進(jìn)化過(guò)程中,或許可以構(gòu)建出更適合推理的混合語(yǔ)言IR,建立更高效的推演體系。
1.2.2 DeepSeek-R1
相比之下,DeepSeek-R1采用了多階段訓(xùn)練方法,加入了SFT,而不是采用純粹的強(qiáng)化學(xué)習(xí),R1從一小組精心挑選的示例數(shù)據(jù)(稱為“冷啟動(dòng)數(shù)據(jù)”)進(jìn)行有監(jiān)督微調(diào)(SFT),再進(jìn)入強(qiáng)化學(xué)習(xí)。這種方法改善了 DeepSeek-R1-Zero 的語(yǔ)言可讀性和連貫性,同時(shí)在推理之外的測(cè)試中實(shí)現(xiàn)了更好的性能。
DeepSeek-V3整體架構(gòu)(來(lái)源:DeepSeek)
2 V3/R1的架構(gòu)提升
2.1 多頭潛注意力 (MLA)
2.1.1 從KV Cache(KV緩存)說(shuō)起
當(dāng)使用傳統(tǒng)Transformer在推斷(Inference)過(guò)程中計(jì)算并生成 Token(詞元)時(shí),模型需要讀入所有過(guò)去 Token 的上下文,以決定接下來(lái)輸出什么Token。最直觀的方法就是簡(jiǎn)單的再次進(jìn)行一次包括所有過(guò)去 Token 的前向傳播(計(jì)算)。
KV Cache(來(lái)源:互聯(lián)網(wǎng))
傳統(tǒng)的基于 Transformer 的模型在推理過(guò)程中會(huì)計(jì)算每個(gè)鍵值 (KV) 對(duì),但事實(shí)上這種方法效率并不高,因?yàn)榇蟛糠诌^(guò)去的 Token 已經(jīng)在上一次計(jì)算中處理過(guò)了,重復(fù)計(jì)算會(huì)產(chǎn)生大量的浪費(fèi)。
目前常用的方法是緩存所有過(guò)去 Token 的相關(guān)內(nèi)部狀態(tài),主要是注意力機(jī)制中的鍵(Key)和值(Value)向量。這也是鍵值緩存(簡(jiǎn)稱 KV 緩存)名稱的由來(lái)。
不同注意力機(jī)制的對(duì)比(來(lái)源:DeepSeek V2)
目前開源大模型中的主流方法是分組查詢注意力(Grouped-Query Attention)機(jī)制。在這種機(jī)制中,為每對(duì)鍵和值頭分配多個(gè)查詢頭,將查詢頭有效的分組在一起。在 Llama 3.3 70B 和 Mistral Large 2 等模型中,僅分組查詢注意力機(jī)制就將 KV 緩存大小減少了大約一個(gè)數(shù)量級(jí)。
2.1.2 MLA的原理與優(yōu)勢(shì)
DeepSeek使用的Multi-Head Latent Attention技術(shù)可大大節(jié)省KV緩存,從而顯著降低了計(jì)算成本。
MLA的本質(zhì)是對(duì)KV的有損壓縮,提高存儲(chǔ)信息密度的同時(shí)盡可能保留關(guān)鍵細(xì)節(jié)。該技術(shù)首次在 DeepSeek-V2 中引入,與分組查詢和多查詢注意力等方法相比,MLA是目前開源模型里顯著減小 KV 緩存大小的最佳方法。
MLA的方法是將KV矩陣轉(zhuǎn)換為低秩形式:將原矩陣表示為兩個(gè)較小矩陣(相當(dāng)于潛向量)的乘積,在推斷過(guò)程中,僅緩存潛向量,而不緩存完整的鍵KV。這規(guī)避了分組查詢注意力和多查詢注意力的查詢的信息損失,從而在降低KV緩存的前提下獲得更好的性能。
矩陣的低秩近似(來(lái)源:互聯(lián)網(wǎng))
另外為了與MLA技術(shù)的低秩KV壓縮兼容,DeepSeek也將編碼方式RoPE進(jìn)行了改進(jìn),使V2/V3/R1獲得了長(zhǎng)上下文的外延能力。
MLA方法有效降低KV Cache和訓(xùn)練成本(來(lái)源:DeepSeek)
2.1.4 MLA是顛覆性創(chuàng)新嗎?
我們認(rèn)為MLA是個(gè)非常有趣且先進(jìn)的創(chuàng)新,這一工作建立在對(duì)注意力機(jī)制深度理解的之上,并且需要進(jìn)行大膽謹(jǐn)慎的驗(yàn)證。限于算力條件和個(gè)人ROI,能夠獨(dú)立完成這一創(chuàng)新的團(tuán)隊(duì)并不多。能做出MLA這樣的工作,確實(shí)是達(dá)到國(guó)際一線架構(gòu)水平了。換一個(gè)角度看,MLA也是建立在DeepSeek團(tuán)隊(duì)的量化金融基因之上,不禁讓我們聯(lián)想到優(yōu)秀的量化碼農(nóng)對(duì)每個(gè)矩陣計(jì)算的FPGA底層優(yōu)化。
MLA之外的KV Cache優(yōu)化方法(來(lái)源:武漢大學(xué))
我們認(rèn)為,MLA之后,應(yīng)該還會(huì)有QMLA(量化MLA)或者CMLA(壓縮MLA),甚至是超越現(xiàn)有Attention模式的技術(shù)出現(xiàn),而用了很多年的Transformer也將經(jīng)歷大的變革。真正的顛覆創(chuàng)新可能,正擺在DeepSeek和國(guó)內(nèi)其他大模型團(tuán)隊(duì)的面前。
2.2 MoE架構(gòu)與輔助無(wú)損負(fù)載均衡
2.2.1 MoE與Dense模型的混戰(zhàn)
目前的主流的大模型架構(gòu)可以分為Dense(稠密)架構(gòu)和MoE架構(gòu)。
?Dense模型?在深度學(xué)習(xí)中通常指的是一種全部神經(jīng)元都參與計(jì)算的網(wǎng)絡(luò)結(jié)構(gòu)。這種結(jié)構(gòu)使得模型能夠充分利用數(shù)據(jù)特征,并且訓(xùn)練過(guò)程中參數(shù)共享,減少了計(jì)算量和過(guò)擬合的風(fēng)險(xiǎn)。 |
---|
一般來(lái)說(shuō),Dense模型可以視為僅有一個(gè)專家的MoE模型。在大模型領(lǐng)域,Dense模型和MoE各有各的應(yīng)用場(chǎng)景和優(yōu)勢(shì),MoE還無(wú)法代替Dense模型的行業(yè)應(yīng)用。
Dense模型 | MoE模型 | |
---|---|---|
優(yōu)勢(shì) | 在專業(yè)領(lǐng)域計(jì)算參數(shù)量更少,更節(jié)省計(jì)算資源 | 在通用計(jì)算領(lǐng)域激活的參數(shù)少,更節(jié)省計(jì)算資源 |
劣勢(shì) | 在通用領(lǐng)域需要激活更多的參數(shù),計(jì)算資源消耗大 | 在專業(yè)領(lǐng)域無(wú)需多位專家,容易產(chǎn)生大量參數(shù)冗余,浪費(fèi)資源 |
相比Dense模型,MoE主要增加了專家路由,通過(guò)門控(開或關(guān))的方法,負(fù)責(zé)將數(shù)據(jù)流引向不同的專家模塊。專家路由事實(shí)上引入了一個(gè)不連續(xù)的門控函數(shù)(對(duì)梯度計(jì)算不友好),這導(dǎo)致梯度下降優(yōu)化方法在 MoE 訓(xùn)練中表現(xiàn)不佳,甚至出現(xiàn)“路由崩潰”,即模型容易陷入始終為每個(gè) Token 激活相同的少數(shù)專家的窘境,而不是將計(jì)算合理的傳播到所有的可用專家。這也是MoE模型訓(xùn)練的難點(diǎn)。
2.2.2 無(wú)輔助損耗負(fù)載均衡
傳統(tǒng)的規(guī)避路由崩潰的方法是強(qiáng)制“平衡路由”,即通過(guò)訓(xùn)練策略讓每個(gè)專家在足夠大的訓(xùn)練批次中被激活的次數(shù)大致相等。這一策略也就是“輔助損失”。但這種強(qiáng)制性的輔助損失會(huì)由于訓(xùn)練數(shù)據(jù)的結(jié)構(gòu)不均衡特征,導(dǎo)致同領(lǐng)域的專家能力分散到不同的專家模塊之中,極度損害MoE模型的性能。理想的 MoE 應(yīng)該有一些經(jīng)常訪問(wèn)高頻通用信息,并具備其他訪問(wèn)較少的專業(yè)領(lǐng)域?qū)<?。如果?qiáng)制平衡路由,將失去實(shí)現(xiàn)此類路由設(shè)置的能力,并且必須在不同的專家之間冗余地復(fù)制信息。
DeekSeek采用了“增加共享專家+無(wú)輔助損耗負(fù)載平衡”的方法解決這一問(wèn)題。
DeepSeek將專家分為兩類:共享專家和路由專家。共享專家始終會(huì)被路由,在訓(xùn)練中重點(diǎn)確保路由專家的路由均衡。
DeepSeekMoE與傳統(tǒng)的多路由和細(xì)粒度專家MoE對(duì)比(來(lái)源:DeepSeek)
無(wú)輔助損耗負(fù)載均衡(Auxiliary-Loss-Free Load Balancing)方法是將特定于專家的偏差項(xiàng)添加到路由機(jī)制和專家親和力中。偏差項(xiàng)不會(huì)通過(guò)梯度下降進(jìn)行更新,而是在整個(gè)訓(xùn)練過(guò)程中持續(xù)監(jiān)控并進(jìn)行調(diào)整以確保負(fù)載平衡。如果訓(xùn)練中某個(gè)專家沒有獲得合理的命中次數(shù),可以在每個(gè)梯度步驟中微調(diào)偏差項(xiàng)增加命中概率。
通過(guò)動(dòng)態(tài)調(diào)整,DeepSeek-V3 在訓(xùn)練過(guò)程中獲得了比有輔助損失均衡模型更好的性能。
從模型架構(gòu)分析看,我們認(rèn)為這種分配策略可能還不是理論最優(yōu)的,但該方法已經(jīng)比強(qiáng)制輔助損失有了顯著的改進(jìn)。
2.2.3 MoE會(huì)是大模型的終局嗎?
MoE架構(gòu)自1991年提出后,就一直在與Dense架構(gòu)共生發(fā)展。
DeepSeek R1的推出確實(shí)大大推動(dòng)了開源MoE大模型的發(fā)展,并為MoE的落地應(yīng)用提供了更多可能。但是我們也應(yīng)看到,MoE模型與應(yīng)用領(lǐng)域高度和TOC(Total Owning Cost,總擁有成本)密切相關(guān),很多場(chǎng)景MoE未必比Dense模型好。
不同的MoE架構(gòu)(來(lái)源:香港科技大學(xué))
另外,MoE模型也有不同的細(xì)分架構(gòu)類型。不是所有的MoE的參數(shù)量都遠(yuǎn)大于計(jì)算帶寬要求。
MoE架構(gòu)的本質(zhì)是模型參數(shù)分布式存儲(chǔ),MoE減少計(jì)算量的代價(jià)可能是不同專家模型的參數(shù)重復(fù)和總參數(shù)量增加,這往往也意味著更大更貴的HBM成本。外界傳言的MoE模型可以更小,其實(shí)是指的MoE模型蒸餾的Dense模型可以兼顧參數(shù)量和推理(Reasoning)性能。
不同應(yīng)用場(chǎng)景對(duì)Dense和MoE模型的需求
To B計(jì)算場(chǎng)景 | To C云計(jì)算場(chǎng)景 | To C邊緣/端側(cè)計(jì)算場(chǎng)景 | |
---|---|---|---|
特點(diǎn) | 專業(yè)領(lǐng)域應(yīng)用多,對(duì)RAG高度依賴,不需要多專家 | 通用領(lǐng)域多,對(duì)檢索和訓(xùn)練數(shù)據(jù)更新時(shí)間敏感,需要多專家 | 通用領(lǐng)域多,可不需要高性能/精度回答,不需要多專家 |
主力架構(gòu) | 行業(yè)大模型,主要是Dense架構(gòu) | 通用基礎(chǔ)模型,主要是MoE或MoA架構(gòu) | 限于成本,主要是Dense架構(gòu) |
占有率 | 較高 | 較低 | 目前較低 |
按照上表的分析,基于成本考慮,目前只有To C云計(jì)算場(chǎng)景(類似OpenAI的網(wǎng)頁(yè)版服務(wù))才會(huì)真正用上MoE這種多專家的模型架構(gòu)。
3 V3/R1訓(xùn)練架構(gòu)的獨(dú)特優(yōu)勢(shì)
DeepSeek 的優(yōu)勢(shì)不僅僅來(lái)自于其模型架構(gòu)。從低比特FP8訓(xùn)練到All-to-All通信優(yōu)化,其專用訓(xùn)練框架旨在盡可能提高訓(xùn)練的速度,以最高效率在解空間中找到較優(yōu)的MoE參數(shù)集。
國(guó)內(nèi)很多人在看DeepSeek團(tuán)隊(duì)時(shí),更多關(guān)注了他們做Training的能力,但實(shí)際上DeekSeek的AI Infra能力,特別時(shí)軟硬件協(xié)同優(yōu)化能力,才是他們超越國(guó)內(nèi)其他大模型團(tuán)隊(duì)的關(guān)鍵。
這一架構(gòu)的核心優(yōu)勢(shì)包括:
1)引入了FP8混合精度訓(xùn)練框架,并首次在超大規(guī)模大模型訓(xùn)練上驗(yàn)證了這一框架的有效性。通過(guò)對(duì)FP8低比特計(jì)算和存儲(chǔ)的支持,實(shí)現(xiàn)了訓(xùn)練的加速和GPU內(nèi)存使用的減少。
2)設(shè)計(jì)了DualPipe算法來(lái)實(shí)現(xiàn)更高效的流水線并行,并通過(guò)計(jì)算-通信重疊隱藏了大模型訓(xùn)練過(guò)程中的大部分通信開銷。
3)開發(fā)了高效的跨節(jié)點(diǎn)All-to-All通信內(nèi)核,以充分利用InfiniBand(IB)和NVLink帶寬;對(duì)顯存使用進(jìn)行了優(yōu)化,無(wú)需使用昂貴的張量并行即可訓(xùn)練DeepSeek-V3。
3.1 HAI-LLM框架的軟硬件協(xié)同設(shè)計(jì)
V3 的訓(xùn)練基于DeepSeek自研的HAI-LLM 框架。HAI-LLM是一個(gè)高效、輕量級(jí)的訓(xùn)練框架,其設(shè)計(jì)充分考慮了多種并行策略,包括DP、PP、TP、EP和FSDP的并行模式。
并行模式對(duì)比(來(lái)源:互聯(lián)網(wǎng))
3.1.1 軟件層面的并行優(yōu)化
HAI-LLM框架在軟件層面所作的并行改進(jìn)和效率提升如下表所示:
HAI-LLM框架所作的并行改進(jìn)(來(lái)源:中存算)
縮寫 | 簡(jiǎn)介 | DeepSeek所做的工作或優(yōu)化 |
---|---|---|
TP | 張量并行 (Tensor Parallelism):將模型層放置在并行執(zhí)行計(jì)算的多個(gè)設(shè)備(計(jì)算芯片)上,包括逐行和逐列并行, | 將NVLink Bridge集成到系統(tǒng)中,在每對(duì) GPU之間建立了 600GB/s 的帶寬,增加TP效率 |
PP | 流水線并行 (Pipeline Parallelism):每個(gè)設(shè)備(計(jì)算芯片)都包含一部分模型層,每個(gè)訓(xùn)練批次分為串行的小批次以進(jìn)行流水線執(zhí)行 | 通過(guò)配置數(shù)據(jù)并行排隊(duì),規(guī)避單個(gè)節(jié)點(diǎn)(服務(wù)器)8個(gè)GPU共享一個(gè) IB NIC流水線并行 (PP) 期間出現(xiàn)的網(wǎng)絡(luò)帶寬競(jìng)爭(zhēng),實(shí)現(xiàn)GPU的交替通信和91%的并行效率 |
FSDP | 全共享數(shù)據(jù)并行 (Fully Sharded Data Parallel) 基于 ZeRO Stage 3 算法,對(duì)模型的參數(shù)、優(yōu)化器狀態(tài)和梯度分布到不同的設(shè)備(計(jì)算芯片)上。在正向傳播期間,F(xiàn)SDP 執(zhí)行allgather作來(lái)組裝完整的參數(shù),并正向傳播完成后釋放;反向傳播期間,F(xiàn)SDP 執(zhí)行 allgather獲取完整參數(shù),并進(jìn)行反向梯度計(jì)算,然后執(zhí)行reduce-scatter以同步所有設(shè)備之間的梯度,每個(gè)設(shè)備只保留部分梯度、參數(shù)和優(yōu)化器更新 | 基于 ZeRO Stage-3 算法實(shí)現(xiàn)FSDP。將 allgather 和 reduce-scatter 通信與前向和反向傳播計(jì)算重疊,拆分反向傳播步驟以增強(qiáng)重疊,減少通信量。與PyTorch的 FSDP 相比,HAI-LLM 的 FSDP 將訓(xùn)練時(shí)間縮短了近一半 |
DP | 數(shù)據(jù)并行 (Data Parallelism):模型和優(yōu)化器的狀態(tài)在多個(gè)設(shè)備(計(jì)算芯片)之間復(fù)制,數(shù)據(jù)均勻分布給所有設(shè)備進(jìn)行并行計(jì)算 | 對(duì)PCIe進(jìn)行工程優(yōu)化,提升DP |
EP | 專家并行 (Expert Parallelism):在MoE 訓(xùn)練期間,MoE 模型的不同專家分布在不同的設(shè)備(計(jì)算芯片)上,由門控單元將輸入的Token分配給不同的專家 | 對(duì)PCIe進(jìn)行工程優(yōu)化,提升EP |
根據(jù)DeepSeek的論文,V3 應(yīng)用了 16 路流水線并行 (PP)、跨越 8 個(gè)(服務(wù)器)節(jié)點(diǎn)的 64 路專家并行 (EP)和 ZeRO-1 數(shù)據(jù)并行 (DP)。
3.1.2 針對(duì)軟件并行策略的硬件優(yōu)化
低成本的萬(wàn)卡集群架構(gòu)(來(lái)源:DeepSeek)
為了配合HAI-LLM訓(xùn)練框架(軟件),DeepSeek采用兩層Fat-Tree拓?fù)? InfiniBand (IB)作為集群架構(gòu)(硬件)。這一集群架構(gòu)的核心思路是減少互連層次,降低訓(xùn)練的綜合成本。相對(duì)DGX-A100 的標(biāo)準(zhǔn)萬(wàn)卡集群三層Fat-Tree的1320個(gè)交換機(jī),DeepSeek的同規(guī)模集群僅僅需要122臺(tái)交換機(jī),至少節(jié)省了40%的互連成本。
3.1.3 針對(duì)硬件架構(gòu)的軟件優(yōu)化
針對(duì)硬件架構(gòu)優(yōu)化的HFReduce(來(lái)源:DeepSeek)
針對(duì)所采用的硬件架構(gòu)特點(diǎn),DeekSeek開發(fā)了HFReduce(針對(duì)不使用NVLink的方案),以執(zhí)行高效的 allreduce操作。 HFReduce會(huì)首先執(zhí)行節(jié)點(diǎn)內(nèi) reduce,然后通過(guò) CPU 執(zhí)行節(jié)點(diǎn)間 allreduce,最后將 reduced 數(shù)據(jù)傳輸?shù)?GPU 。這樣的優(yōu)化需要DeepSeek團(tuán)隊(duì)對(duì)硬件互連有非常深刻的理解。
當(dāng)然DeepSeek團(tuán)隊(duì)也開發(fā)了基于NVLink的HFReduce with NVLink,在將梯度傳遞給 CPU 之前,先在NVLink 互連的GPU 之間執(zhí)reduce減作;當(dāng) CPU 返回結(jié)果時(shí),會(huì)將數(shù)據(jù)切分并分別返回給 NVLink 連接的配對(duì) GPU,再通過(guò) NVLink 執(zhí)行allgather。
3.2 FP8 訓(xùn)練框架體系
3.2.1 低比特訓(xùn)練框架的構(gòu)建
FP8與其他數(shù)據(jù)格式占據(jù)空間對(duì)比(來(lái)源:互聯(lián)網(wǎng))
通常的大模型訓(xùn)練會(huì)采用BF16(16位浮點(diǎn))或FP32/TF32(32位浮點(diǎn))精度作為數(shù)據(jù)計(jì)算和存儲(chǔ)的格式,來(lái)確保較高的訓(xùn)練精度。相比之下,F(xiàn)P8占用的數(shù)據(jù)位寬僅為FP32的1/4,可以有力的提升計(jì)算速度,降低對(duì)存儲(chǔ)的消耗。當(dāng)然,F(xiàn)P8也存在精度不高,容易導(dǎo)致訓(xùn)練失敗的潛在問(wèn)題。
FP8訓(xùn)練框架局部方案(來(lái)源:DeepSeek)
DeepSeek-V3 使用 FP8(8 位浮點(diǎn)數(shù))來(lái)提高計(jì)算速度并減少訓(xùn)練期間的顯存使用量。為了讓FP8更好的完成訓(xùn)練,DeepSeek專門設(shè)計(jì)了針對(duì)FP8的訓(xùn)練框架體系。當(dāng)然,就在撰寫本文的時(shí)候,微軟已經(jīng)跑通了FP4(4位浮點(diǎn)數(shù))的完整模型訓(xùn)練。
使用FP8框架進(jìn)行訓(xùn)練的主要挑戰(zhàn)在于精度與誤差的處理。
DeepSeek為其FP8低比特訓(xùn)練框架做了以下優(yōu)化:
1)細(xì)粒度量化
將數(shù)據(jù)分解成更小的組,每個(gè)組都使用特定乘數(shù)進(jìn)行調(diào)整以保持高精度。這一方法類似于Tile-Wise或Block-Wise。對(duì)于激活,在 1x128 大小的基礎(chǔ)上對(duì)計(jì)算數(shù)據(jù)進(jìn)行分組和縮放;對(duì)于權(quán)重, 以128x128 大小對(duì)計(jì)算數(shù)據(jù)進(jìn)行分組和縮放。該方法可以根據(jù)最大或最小數(shù)據(jù)調(diào)整縮放系數(shù),來(lái)更好的適應(yīng)計(jì)算中的異常值。
2)在線量化
為了提高精度并簡(jiǎn)化框架,該框架在線計(jì)算每個(gè) 1x128 激活塊或 128x128 權(quán)重塊的最大絕對(duì)值,在線推算縮放因子,然后將激活或權(quán)重在線轉(zhuǎn)化為 FP8 格式,而不是采用靜態(tài)的歷史數(shù)據(jù)。相對(duì)靜態(tài)的量化方法,該方法可以獲得更高的轉(zhuǎn)換精度,減小誤差的累積。
3)提高累加精度
FP8在大量累加時(shí)會(huì)累積出現(xiàn)隨機(jī)誤差。例如FP8 GEMM在英偉達(dá) H800 GPU上的累加精度保留 14 位左右,明顯低于 FP32 累加精度。以 K = 4096 的兩個(gè)隨機(jī)矩陣的 GEMM 運(yùn)算為例,Tensor Core 中的有限累加精度可導(dǎo)致最大相對(duì)誤差接近 2%。
DeepSeek將中間結(jié)果儲(chǔ)存計(jì)算升級(jí)為 FP32(32位浮點(diǎn)),實(shí)行高精度累加,然后再轉(zhuǎn)換回 FP8,以降低大量微小誤差累加帶來(lái)的訓(xùn)練偏差。
4)低精度/混合精度存儲(chǔ)與通信
為了進(jìn)一步減少 MoE 訓(xùn)練中的顯存和通信開銷,該框架基于FP8 進(jìn)行數(shù)據(jù)/參數(shù)緩存和處理激活,以節(jié)省顯存與緩存空間并提升性能,并在 BF16(16位浮點(diǎn)數(shù))中存儲(chǔ)低精度優(yōu)化器狀態(tài)。
該框架中以下組件保持原始精度(例如 BF16 或 FP32):嵌入模塊、MoE 門控模塊、歸一化算子和注意力算子,以確保模型的動(dòng)態(tài)穩(wěn)定訓(xùn)練。為保證數(shù)值穩(wěn)定性,以高精度存儲(chǔ)主要權(quán)重、權(quán)重梯度和優(yōu)化器狀態(tài)。
細(xì)粒度量化與提高累加精度(來(lái)源:DeepSeek)
以上這些針對(duì)FP8訓(xùn)練的優(yōu)化設(shè)計(jì),都是精雕細(xì)作的工作,需要框架設(shè)計(jì)人員對(duì)GPU硬件架構(gòu)和訓(xùn)練誤差具有很強(qiáng)的整合分析能力。從DeepSeek的FP8訓(xùn)練框架來(lái)看,這個(gè)團(tuán)隊(duì)具有很強(qiáng)的技術(shù)和工程整合能力,已經(jīng)不是單純的大模型算法或AI Infra團(tuán)隊(duì)。
3.2.2 對(duì)英偉達(dá)GPU市場(chǎng)有巨大影響?
2025年1月27日,英偉達(dá)股價(jià)暴跌近17%,市值蒸發(fā)近6000億美元,創(chuàng)下美國(guó)歷史上單日最大市值跌幅紀(jì)錄。AI領(lǐng)域的明星公司普遍遭受重創(chuàng):博通(Broadcom)下跌17.4%,AMD下跌6.4%。微軟下跌2.1%。此外,AI產(chǎn)業(yè)鏈的衍生板塊也未能幸免,電力供應(yīng)商Constellation Energy下跌近21%,Vistra下跌28%。國(guó)內(nèi)很多媒體認(rèn)為這是DeepSeek的崛起,引起投資者對(duì)于英偉達(dá)等半導(dǎo)體企業(yè)估值過(guò)高的擔(dān)憂。
英偉達(dá)估值是否過(guò)高不好說(shuō),畢竟MoE架構(gòu)的發(fā)展已經(jīng)展現(xiàn)出“存力重要性優(yōu)于算力+對(duì)存儲(chǔ)帶寬瓶頸下降”的傾向。但從技術(shù)角度看,DeepSeek的大模型目前依然存在對(duì)英偉達(dá)GPU的路徑依賴。
1)目前英偉達(dá)仍在低比特計(jì)算方面領(lǐng)先。包括DeepSeek使用的FP8和微軟使用的FP4,都是由英偉達(dá)率先產(chǎn)品化并推向市場(chǎng)的。FP8訓(xùn)練最早也是在英偉達(dá)內(nèi)部開始驗(yàn)證的。英偉達(dá)之外,暫時(shí)還沒有企業(yè)有這樣的生態(tài)推動(dòng)力和落實(shí)能力。
2)MoE模型仍屬于大模型演進(jìn)的常規(guī)路徑,并不會(huì)因?yàn)镸oE模型的路徑切換導(dǎo)致GPU應(yīng)用不及預(yù)期。目前主要的MoE模型依然是基于英偉達(dá)生態(tài)構(gòu)建的,在算力單價(jià)昂貴、模型性能仍需提升的現(xiàn)在,MoE的應(yīng)用事實(shí)上是基于有限的算力成本,進(jìn)一步提升通用大模型(以to C為主)性能的有效路徑。這個(gè)路線早已有之,不管DeepSeek的影響力是否擴(kuò)大,目前通用大模型都在朝著這個(gè)方向發(fā)展。過(guò)于夸大DeepSeek對(duì)AI產(chǎn)業(yè)的影響,只會(huì)加速美國(guó)商務(wù)部對(duì)DeepSeek的封禁速度,對(duì)DeepSeek自身反而不利。
3)DeepSeek使用的一些訓(xùn)練成本優(yōu)化技術(shù)屬于定制化技術(shù),其他競(jìng)品企業(yè)未必有類似的定制能力。例如前面提到的混合精度存儲(chǔ)/計(jì)算,與模型本身的特征高度綁定,遷移起來(lái)并不簡(jiǎn)單,屬于DeepSeek內(nèi)部的定制化技術(shù),與量化交易中的FPGA優(yōu)化有原理類似之處。這類定制化技術(shù)一般難以簡(jiǎn)單的復(fù)制,其他企業(yè)短期內(nèi)難以復(fù)盤,進(jìn)行規(guī)模化成本降低的概率不高。有這個(gè)AI Infra能力的早就已經(jīng)做了,沒有這個(gè)能力也不會(huì)冒著成本不可控的風(fēng)險(xiǎn)冒然進(jìn)入。
我們認(rèn)為DeepSeek的V3/R1模型事實(shí)上為英偉達(dá)GPU開拓了除Llama開源系列Dense模型之外的MoE開源模型新大陸,等同于為蘋果的IOS市場(chǎng)增加了新的免費(fèi)Killer App。
DeepSeek本身對(duì)英偉達(dá)的股價(jià)影響,看起來(lái)更像是駱駝背上的最后一根稻草,大概不會(huì)超過(guò)以下幾個(gè)因素:
1)美國(guó)貿(mào)易關(guān)稅風(fēng)險(xiǎn)。
2)B200/5090不達(dá)市場(chǎng)預(yù)期的風(fēng)險(xiǎn)。
3)大陸高成本GPU(主要是H100)算力過(guò)剩的風(fēng)險(xiǎn)。
4)對(duì)大陸禁運(yùn)加強(qiáng)的風(fēng)險(xiǎn)。
3.3 DualPipe優(yōu)化
V3/R1的訓(xùn)練框架中引入DualPipe算法以實(shí)現(xiàn)高效的流水線并行性。
與現(xiàn)有的流水線并行(PP)方法相比,DualPipe具備以下優(yōu)勢(shì):
1)DualPipe的流水線氣泡更少,信道使用效率更高。
2)DualPipe將前向和后向傳播中的計(jì)算和通信重疊,解決了跨節(jié)點(diǎn)專家并行(EP)帶來(lái)的繁重通信開銷問(wèn)題.
3)在確保計(jì)算與通信比例恒定的情況下,具有很好的Scale-out能力。
DualPipe算法將每個(gè)數(shù)據(jù)塊分為四個(gè)部分:attention(圖中ATTN)、all-to-alldispatch(圖中DISPATCH)、MLP 和 all-to-all combine(圖中COMBINE)。對(duì)于后向塊,attention和 MLP 都進(jìn)一步分為后向輸入、后向權(quán)重。對(duì)于一對(duì)前向和后向塊,針對(duì)通信和計(jì)算的過(guò)程和瓶頸進(jìn)行優(yōu)化。DualPipe采用雙向流水線調(diào)度,同時(shí)從流水線發(fā)送前向和后向數(shù)據(jù),盡可能提高使用率。
DualPipe的流水線(來(lái)源:DeepSeek)
3.4 跨節(jié)點(diǎn) All-to-All 通信與顯存優(yōu)化
V3/R1的訓(xùn)練框架還定制了高效的跨節(jié)點(diǎn)All-to-All通信內(nèi)核,以充分利用IB 和 NVLink 帶寬,并節(jié)約流式多處理器 (SM,(Stream Multiprocessor)。DeepSeek還優(yōu)化了顯存分配,以在不使用或少使用張量并行 (TP) 的情況下訓(xùn)練 V3/R1。
3.4.1 對(duì)于SM與NVLink的優(yōu)化
為了保證 DualPipe的計(jì)算性能不被通信影響,DeepSeek定制了高效的跨節(jié)點(diǎn) All-to-All 通信內(nèi)核(包括dispatching和 combining),以節(jié)省專用于通信的 SM數(shù)量。
傳統(tǒng)的基于NVSwitch的All-to-All通信結(jié)構(gòu)(來(lái)源:互聯(lián)網(wǎng))
通信內(nèi)核(通信SM控制代碼)的實(shí)現(xiàn)與MoE 門控算法和集群網(wǎng)絡(luò)拓?fù)涫前凑哲浻布f(xié)同的思路來(lái)進(jìn)行設(shè)計(jì)的。具體來(lái)說(shuō),在集群中,跨節(jié)點(diǎn) GPU與 IB 完全互連,節(jié)點(diǎn)內(nèi)(單臺(tái)服務(wù)器內(nèi))通信通過(guò)NVLink完成。NVLink 提供 160 GB/s 的帶寬,約是 IB 的 3.2 倍 (50 GB/s)。
為了有效利用IB 和NVLink的不同帶寬,DeepSeek將每個(gè)Token(詞元)的分發(fā)限制為最多4 個(gè)節(jié)點(diǎn),從而減少IB流量限制的影響。 對(duì)于每個(gè)Token,在做節(jié)點(diǎn)間路由決策時(shí),先通過(guò)IB傳輸?shù)侥繕?biāo)節(jié)點(diǎn)上具有相同節(jié)點(diǎn)內(nèi)索引的GPU;到達(dá)目標(biāo)節(jié)點(diǎn)后,再通過(guò)NVLink 轉(zhuǎn)發(fā)到托管目標(biāo)專家的特定GPU。通過(guò)這種方式,通過(guò)IB和NVLink的通信重疊,平均每個(gè)Token可以在每個(gè)節(jié)點(diǎn)選擇3.2名專家,而不會(huì)產(chǎn)生額外的NVLink開銷。
實(shí)際算法中,V3/R1只通過(guò)路由選擇了8個(gè)專家,但在保持相同通信成本的情況下,該架構(gòu)可以擴(kuò)展到最多13 個(gè)專家(4 個(gè)節(jié)點(diǎn)x3.2個(gè)專家/節(jié)點(diǎn))。
DeepSeek還采用了warp(線程束)專用化技術(shù),將20個(gè)SM劃分為10個(gè)通信信道。
1)在調(diào)度過(guò)程中,(a)IB 發(fā)送、(b)IB 到NVLink 轉(zhuǎn)發(fā)、(c) NVLink 接收由相應(yīng)的warp處理。分配給每個(gè)通信任務(wù)的warp數(shù)量會(huì)根據(jù)所有SM的實(shí)際工作負(fù)載動(dòng)態(tài)調(diào)整。
2)在合并過(guò)程中,(a) NVLink 發(fā)送、(b)NVLink到IB的轉(zhuǎn)發(fā)和累積、(c)IB接收和累積也由動(dòng)態(tài)調(diào)整的warp處理。
3)dispatching 和combining kernel都與計(jì)算流重疊,采用定制的PTX(Parallel Thread Execution)指令以自動(dòng)調(diào)整通信塊大小,減少了對(duì)L2緩存的使用和對(duì)其他 SM 的干擾。
3.4.2 顯存節(jié)省技術(shù)
為了減少訓(xùn)練期間的內(nèi)存占用,V3/R1還采用了以下技術(shù)節(jié)省顯存:
DeepSeek采用的顯存節(jié)省技術(shù)(來(lái)源:中存算)
技術(shù) | 方法說(shuō)明 | 優(yōu)勢(shì) |
---|---|---|
RMSNorm 和MLA Up-Projection 的重新計(jì)算 | 在反向傳播期間重新計(jì)算所有MSNorm操作和MLA Up-Projection,無(wú)需持久存儲(chǔ)其輸出激活 | 以算代存,充分利用GPU內(nèi)算力充沛但緩存不足的特點(diǎn) |
在CPU內(nèi)存中保存指數(shù)平均數(shù)指標(biāo)(EMA) | 在CPU 內(nèi)存中保存EMA,并在每個(gè)訓(xùn)練步驟后異步更新 | 把EMA從GPU顯存占用改為CPU內(nèi)存占用,釋放動(dòng)態(tài)存儲(chǔ)空間 |
在多標(biāo)記預(yù)測(cè)(MTP)中共享嵌入和輸出頭 | 使用DualPipe 策略,將模型最淺的層(包括嵌入層)和最深的層(包括輸出頭)部署在相同的PP等級(jí)上 | 允許MTP模塊和主模型之間物理共享參數(shù)、梯度、嵌入和輸出頭,提升顯存效率 |
3.4.3 打破了CUDA生態(tài)壁壘?
網(wǎng)上很多人,看到DeepSeek使用了PTX指令,而沒有直接使用CUDA進(jìn)行SM編程,就認(rèn)為DeepSeek打破了CUDA生態(tài)的壟斷。
但實(shí)際上,
1)PTX指令集也是CUDA生態(tài)的一環(huán),是CUDA生態(tài)的基礎(chǔ)。
2)PTX指令比CUDA更底層,與英偉達(dá)的綁定比CUDA更深。
3)CUDA是以PTX指令集為基礎(chǔ)構(gòu)建的,是PTX的外殼和泛化。
4)PTX的移植比CUDA移植挑戰(zhàn)更大,難以在國(guó)產(chǎn)GPU上直接移植。
CUDA與PTX、SASS的層次關(guān)系(來(lái)源:互聯(lián)網(wǎng))
如果把CUDA理解為C語(yǔ)言的話,PTX相當(dāng)于CUDA的高級(jí)匯編語(yǔ)言,可以在不同的GPU上運(yùn)行。另一種更加底層的指令集是Streaming Assembly(SASS),與GPU的型號(hào)深度幫綁定。無(wú)論P(yáng)TX還是SASS都是英偉達(dá)的根基,其他GPU廠家很難插手。
DeepSeek在訓(xùn)練過(guò)程中使用PTX,感覺就是量化碼農(nóng)用C語(yǔ)言寫交易代碼,發(fā)現(xiàn)優(yōu)化效率不夠,那么就嘗試在C語(yǔ)言中嵌入?yún)R編語(yǔ)言來(lái)提高硬件調(diào)度效率。難道這就等于打破了C語(yǔ)言的江湖地位?
3.4.4 挖了NVLink的墻角?
有傳言說(shuō)DeepSeek主要使用Infiniband,以EP(專家并行)代替TP(張量并行),挖了NVLink的墻角,從而堅(jiān)定的認(rèn)為以PCIe(節(jié)點(diǎn)內(nèi)互連)+IB(節(jié)點(diǎn)間互連)就足以進(jìn)行大模型的訓(xùn)練。
在這里面,NVLink主要負(fù)責(zé)芯片間(C2C)的通信,而Infiniband負(fù)責(zé)節(jié)點(diǎn)間(服務(wù)器間)通信。如果使用PCIe進(jìn)行C2C通信,帶寬遠(yuǎn)不如NVLink。
NVLink+Infinband互連(來(lái)源:英偉達(dá))
規(guī)避NVLink的想法很美好,但現(xiàn)實(shí)很骨感。按照DeepSeek發(fā)表的論文描述,只是在早期沒有加入NVSwitch的時(shí)候用過(guò)PCIe+InfiniBand實(shí)現(xiàn)HFReduce,當(dāng)具備NVSwitch后就立刻增加了HFReduce with NVLink。特別是在V3的論文中,明確寫了針對(duì)NVLink信道加入了定制PTX優(yōu)化,好讓更多的有效SM參與計(jì)算。
這就好比學(xué)校的教學(xué)高樓里沒有大電梯,怕樓梯上孩子太多出危險(xiǎn),就先用“算法+樓梯”代替,拿到“算法許可”的小孩才能到不同樓層去報(bào)道。但不能說(shuō)這樣就挖了“電梯”的墻角,卡住了“電梯”的脖子。一個(gè)高效的訓(xùn)練系統(tǒng),依然需要大量的C2C或D2D互連實(shí)現(xiàn)更優(yōu)的拓?fù)浣Y(jié)構(gòu)。咱不能因?yàn)樾史◣熌芸朔D難險(xiǎn)阻走到古印度取到真經(jīng),就認(rèn)為需要反思火車飛機(jī)的重要性。
“打破CUDA壟斷”?“挖了NVLink的墻角”?“引發(fā)英偉達(dá)市值大跌”?“證明大模型算力建設(shè)浪費(fèi)”?“算力霸權(quán)轉(zhuǎn)移”?“國(guó)運(yùn)級(jí)的創(chuàng)新”?這些說(shuō)法是否屬實(shí)?
本文是從V3到R1的架構(gòu)創(chuàng)新與誤傳的萬(wàn)字長(zhǎng)文分析的下篇。下面我們繼續(xù)分析V3與R1的訓(xùn)練和蒸餾,分層解讀DeepSeek的創(chuàng)新。
中場(chǎng)休息
4 V3的訓(xùn)練流程
DeepSeek的R1是以V3為基礎(chǔ)構(gòu)建的(冷啟動(dòng))。如果想深入理解R1的訓(xùn)練,就要先看V3的訓(xùn)練流程。V3的訓(xùn)練包括預(yù)訓(xùn)練(含基礎(chǔ)預(yù)訓(xùn)練和上下文長(zhǎng)度擴(kuò)展)、后訓(xùn)練三個(gè)階段。
在預(yù)訓(xùn)練階段后,對(duì)DeepSeek-V3進(jìn)行了兩次上下文長(zhǎng)度擴(kuò)展,第一階段將最大上下文長(zhǎng)度擴(kuò)展到32K,第二階段進(jìn)一步擴(kuò)展到128K。然后在 DeepSeek-V3的基礎(chǔ)模型上進(jìn)行包括有監(jiān)督精調(diào) (SFT) 和強(qiáng)化學(xué)習(xí)(RL)在內(nèi)的后訓(xùn)練,使其更貼近人類的偏好。
DeepSeek-V3訓(xùn)練流程(來(lái)源:中存算)
4.1 V3的基礎(chǔ)預(yù)訓(xùn)練
DeepSeek-V3 總共包含 671B參數(shù),其中每個(gè)Token激活了37B。在路由專家中,每個(gè)Token激活8個(gè)專家,并確保每個(gè)Token最多發(fā)送到4個(gè)節(jié)點(diǎn),以減小通信資源的浪費(fèi)。多Token預(yù)測(cè)(MTP)深度設(shè)置為1,即除了下一個(gè) Token之外,每個(gè)Token還將預(yù)測(cè)一個(gè)額外的Token。
在14.8T預(yù)訓(xùn)練數(shù)據(jù)集結(jié)構(gòu)上,V3采用了以下策略:
1)提高數(shù)學(xué)和編程樣本的比例來(lái)優(yōu)化預(yù)訓(xùn)練語(yǔ)料庫(kù),以提升推理能力。
2)基于中國(guó)互聯(lián)網(wǎng)可用的語(yǔ)料庫(kù)整合了更多的中文數(shù)據(jù)。(這也是V3能玩中文梗的關(guān)鍵)
3)將多語(yǔ)言覆蓋范圍擴(kuò)展到英文和中文之外。
4)優(yōu)化數(shù)據(jù)處理/過(guò)濾算法,在保持語(yǔ)料庫(kù)多樣性的同時(shí)最大限度減少信息冗余。
過(guò)濾掉有爭(zhēng)議的內(nèi)容,減少特定區(qū)域文化引入的數(shù)據(jù)偏差
5)通過(guò)文檔打包,減少在短文本塊的訓(xùn)練浪費(fèi),同時(shí)在訓(xùn)練過(guò)程中沒有使用交叉樣本注意力屏蔽。
高質(zhì)量的數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)投喂順序,其實(shí)是大模型性能提升的關(guān)鍵??上eepSeek并沒有給出預(yù)訓(xùn)練數(shù)據(jù)更具體的構(gòu)建方法。
Fill-in-Middle方法(來(lái)源:互聯(lián)網(wǎng))
V3的訓(xùn)練采用前綴-后綴-中間(PSM)框架來(lái)構(gòu)建FIM訓(xùn)練數(shù)據(jù)。Fill-in-Middle(FIM,中間補(bǔ)全)是一種針對(duì)代碼補(bǔ)全能力的預(yù)訓(xùn)練方式,模型在訓(xùn)練過(guò)程中學(xué)習(xí)使用上下文的語(yǔ)境來(lái)預(yù)測(cè)文段中間缺失的部分。FIM策略不會(huì)損害下一Token預(yù)測(cè)(NTP)能力,同時(shí)可使模型能夠根據(jù)上下文線索準(zhǔn)確預(yù)測(cè)中間文本。
V3使用AdamW 優(yōu)化器來(lái)預(yù)訓(xùn)練,同時(shí)避免過(guò)度擬合。
4.2 V3長(zhǎng)文擴(kuò)展訓(xùn)練
在基礎(chǔ)預(yù)訓(xùn)練后,V3使用YARN技術(shù)將上下文長(zhǎng)度,按照兩階段訓(xùn)練擴(kuò)展到128K,每個(gè)階段包括1000步。在第一階段,使用32K的序列長(zhǎng)度和1920的批量來(lái)執(zhí)行1000步訓(xùn)練。在第二階段,采用128K的序列長(zhǎng)度和480個(gè)序列的批量大小執(zhí)行1000步訓(xùn)練。
4.3 V3的后訓(xùn)練/精調(diào)
4.3.1 V3的有監(jiān)督精調(diào)(SFT)
V3的有監(jiān)督精調(diào)做了以下這些事:
1)梳理指令精調(diào)(instruction-tuning)數(shù)據(jù)集。該數(shù)據(jù)集包括1.5M個(gè)實(shí)例,跨多個(gè)域,每個(gè)域都量身定制的不同的數(shù)據(jù)合成方法。
2)利用DeepSeek-R1 模型合成與推理(Reasoning)相關(guān)的SFT數(shù)據(jù)集。這里很有意思,基于R1來(lái)SFT V3,再基于V3冷啟動(dòng)R1。感覺上這里有關(guān)鍵的訓(xùn)練信息沒有透露,DeepSeek應(yīng)該還是留了一手。
3)為特定領(lǐng)域(例如代碼、數(shù)學(xué)或一般推理)構(gòu)建量身定制的專家模型數(shù)據(jù)合成器。使用復(fù)合有監(jiān)督精調(diào)和強(qiáng)化學(xué)習(xí)訓(xùn)練該專家模型。訓(xùn)練過(guò)程中為每個(gè)實(shí)例生成兩種不同類型的 SFT樣本:第一種將問(wèn)題與其原始響應(yīng)耦合,格式為
4)建立高質(zhì)量提示(Prompt)體系,引導(dǎo)模型形成自身的反饋與驗(yàn)證機(jī)制。同時(shí)整合了來(lái)自R1合成的數(shù)據(jù),通過(guò)強(qiáng)化學(xué)習(xí)加強(qiáng)這一能力。
5)對(duì)于非推理數(shù)據(jù)(例如創(chuàng)意寫作、角色扮演和簡(jiǎn)單的問(wèn)答),利用 DeepSeek-V2.5生成數(shù)據(jù),并通過(guò)人工注釋驗(yàn)證數(shù)據(jù)的準(zhǔn)確性。
4.3.2 V3的強(qiáng)化學(xué)習(xí)
V3的強(qiáng)化學(xué)習(xí)包括獎(jiǎng)勵(lì)模型與組相對(duì)策略優(yōu)化(GRPO)。
與GPT-4類似,V3中獎(jiǎng)勵(lì)模型包括:
1)基于規(guī)則的獎(jiǎng)勵(lì)模型
對(duì)于可以使用特定規(guī)則驗(yàn)證的問(wèn)題,采用基于規(guī)則的獎(jiǎng)勵(lì)模型來(lái)提供訓(xùn)練反饋。例如,對(duì)于LeetCode問(wèn)題,可以利用編譯器根據(jù)測(cè)試用例生成反饋。基于規(guī)則的模型驗(yàn)證,可以確保更高的生成可靠性。
2)基于模型的獎(jiǎng)勵(lì)模型
對(duì)于不具有收斂性的問(wèn)題,依靠模型判斷來(lái)確進(jìn)行強(qiáng)化學(xué)習(xí)。V3訓(xùn)練中構(gòu)建了特殊的偏好數(shù)據(jù),該數(shù)據(jù)同時(shí)包括提供最終獎(jiǎng)勵(lì)結(jié)果和形成獎(jiǎng)勵(lì)的思維鏈,以降低特定任務(wù)中的獎(jiǎng)勵(lì)破解攻擊風(fēng)險(xiǎn)。
大模型的訓(xùn)練通常用無(wú)監(jiān)督或有監(jiān)督進(jìn)行預(yù)訓(xùn)練,然后通過(guò)有監(jiān)督精調(diào)(SFT)進(jìn)一步學(xué)習(xí)。然而SFT有時(shí)難以將人類的偏好顯式地整合進(jìn)去,這時(shí)就需要強(qiáng)化學(xué)習(xí)來(lái)進(jìn)行精調(diào)。在以往的大模型訓(xùn)練中一般使用PPO(Proximal Policy Optimization)來(lái)形成梯度策略。PPO的代價(jià)在于需要維護(hù)較大的價(jià)值網(wǎng)絡(luò)(也是一個(gè)神經(jīng)網(wǎng)絡(luò)),需要占用較大的顯存與計(jì)算資源。
GRPO與PPO對(duì)比(來(lái)源:DeepSeek)
V3中則采用了DeepSeek提出的GRPO(Group Relative Policy Optimization)策略,只需要在一個(gè)分組內(nèi)進(jìn)行多個(gè)采樣輸出的比較,再根據(jù)比較結(jié)果選擇較優(yōu)的策略。GRPO中不再需要一個(gè)顯式的價(jià)值網(wǎng)絡(luò),從而降低了顯存占用并提高了訓(xùn)練速度。
GRPO的計(jì)算流程包括:
1)采樣一組輸出并計(jì)算每個(gè)輸出的獎(jiǎng)勵(lì)。
2)對(duì)組內(nèi)獎(jiǎng)勵(lì)進(jìn)行歸一化處理。
3)使用歸一化后的獎(jiǎng)勵(lì)計(jì)算優(yōu)勢(shì)函數(shù)。
4)通過(guò)最大化目標(biāo)函數(shù)更新策略模型。
5)迭代訓(xùn)練,逐步優(yōu)化策略模型。
5 R1的訓(xùn)練流程
5.1 無(wú)SFT的R1-Zero訓(xùn)練
DeepSeek-R1 建立在其基礎(chǔ)模型DeepSeek-V3的混合專家(MoE)架構(gòu)之上,采用專家并行方式,對(duì)于任意輸入,只有部分參數(shù)處于活躍狀態(tài)。
作為R1的無(wú)SFT版本,R1-Zero使用 DeepSeek-V3-Base 作為基礎(chǔ)模型,直接使用 GRPO進(jìn)行強(qiáng)化學(xué)習(xí)來(lái)提升模型的推理(Reasoning)性能, 根據(jù)準(zhǔn)確度和格式進(jìn)行訓(xùn)練獎(jiǎng)勵(lì)。
R1-Zero的訓(xùn)練過(guò)程具有重要意義:
1)在大模型訓(xùn)練領(lǐng)域,SFT 需要高質(zhì)量的人工標(biāo)注數(shù)據(jù)(標(biāo)注過(guò)程一般需要很長(zhǎng)周期、成本高,且可能因標(biāo)記者的偏好而引入潛在偏差)。
2)復(fù)雜的推理任務(wù)可能超出了普通人類的能力。無(wú)SFT的純強(qiáng)化學(xué)習(xí)方法也許可以使模型能夠涌現(xiàn)出超越傳統(tǒng)人類思維上限的超級(jí)推理能力。
3)無(wú)SFT的純強(qiáng)化學(xué)習(xí)不依賴于顯式標(biāo)注,允許模型使用非自然語(yǔ)言表征方法進(jìn)行“思考”,從而具有超越自然語(yǔ)言進(jìn)行邏輯推理的潛力。
獎(jiǎng)勵(lì)的計(jì)算方式在很大程度上決定了強(qiáng)化學(xué)習(xí)訓(xùn)練的效果。DeepSeek-R1-Zero 的基于規(guī)則的獎(jiǎng)勵(lì)系統(tǒng)包括:
1)準(zhǔn)確度獎(jiǎng)勵(lì)(Accuracy rewards)。評(píng)估響應(yīng)是否正確。
2)格式獎(jiǎng)勵(lì)(Format rewards)。獎(jiǎng)勵(lì)模型將其思考過(guò)程置于“
DeepSeek的準(zhǔn)確度獎(jiǎng)勵(lì)與格式獎(jiǎng)勵(lì)(來(lái)源:互聯(lián)網(wǎng))
通過(guò)強(qiáng)化學(xué)習(xí)訓(xùn)練,R1-Zero 形成了復(fù)雜的推理能力,包括反思(模型重新審視并重新評(píng)估其先前的回答)以及探索解決問(wèn)題的替代方法。這些能力并非通過(guò)常規(guī)編程或提示工程實(shí)現(xiàn)的,而是大模型在強(qiáng)化學(xué)習(xí)環(huán)境中自發(fā)產(chǎn)生的能力。
根據(jù)R1的論文,強(qiáng)化學(xué)習(xí)訓(xùn)練中R1-Zero形成的另一個(gè)關(guān)鍵特征是頓悟時(shí)刻(Aha Moment)。R1-Zero 通過(guò)重新評(píng)估其初始方法學(xué)會(huì)為問(wèn)題分配更多的思考時(shí)間(更長(zhǎng)的推理)。無(wú)需明確的教模型如何解決問(wèn)題,只需為其提供適當(dāng)?shù)募?lì),模型就會(huì)自主形成解決問(wèn)題的策略。這也說(shuō)明強(qiáng)化學(xué)習(xí)有潛力解鎖新的智能水平,為未來(lái)更自主、更具適應(yīng)性的模型鋪平道路,提供了形成超級(jí)智能的可能路線。
與OpenAI的GPT-4 相比,DeepSeek-R1-Zero在推理任務(wù)上表現(xiàn)出了顯著的改進(jìn)。例如,在AIME2024 基準(zhǔn)(推理能力測(cè)試)上,DeepSeek-R1-Zero的性能從15.6%躍升至71.0%,這表明R1-Zero的無(wú)SFT推理訓(xùn)練方法是有效的。
5.2 DeepSeek-R1的訓(xùn)練流程
DeepSeek-R1 的訓(xùn)練過(guò)程分為4個(gè)階段,包括使用數(shù)千高質(zhì)量CoT示例進(jìn)行SFT的冷啟動(dòng),面向推理的強(qiáng)化學(xué)習(xí),通過(guò)拒絕抽樣的SFT,面向全場(chǎng)景任務(wù)的強(qiáng)化學(xué)習(xí)與對(duì)齊。
兩個(gè)SFT階段進(jìn)行推理和非推理能力的能力植入,兩個(gè)強(qiáng)化學(xué)習(xí)階段旨在泛化學(xué)習(xí)推理模式并與人類偏好保持一致。
DeepSeek-R1訓(xùn)練流程(來(lái)源:中存算)
5.2.1冷啟動(dòng)(Cold Start):CoT SFT
與R1-Zero不同,R1首先基于DeepSeek-V3-Base進(jìn)行有監(jiān)督精調(diào)(SFT),以克服強(qiáng)化學(xué)習(xí)的早期不穩(wěn)定。DeekSeek認(rèn)為這種基于人類先驗(yàn)知識(shí)冷啟動(dòng)并進(jìn)行迭代訓(xùn)練的方式更適合推理模型。
由于這一訓(xùn)練階段主要采用CoT數(shù)據(jù),我們更喜歡將其稱為CoT SFT。
為構(gòu)建少量的長(zhǎng)CoT數(shù)據(jù),DeepSeek探索了幾種合成方法:使用長(zhǎng)CoT 的few-shot提示作為示例,直接提示模型通過(guò)反思和驗(yàn)證生成詳細(xì)回答,以可讀格式收集DeepSeek-R1-Zero 輸出,并通過(guò)人工標(biāo)注員的后處理來(lái)完善結(jié)果。在此步驟中收集了數(shù)千個(gè)冷啟動(dòng)樣本以進(jìn)行精調(diào)。
其中可讀模式指為每個(gè)回答在末尾包含一個(gè)摘要,并過(guò)濾掉不易閱讀的部分。其輸出格式為 |special_token|
5.2.2 面向推理的強(qiáng)化學(xué)習(xí)
在基于冷啟動(dòng)數(shù)據(jù)對(duì)V3-Base 精調(diào)后,采用與R1-Zero相當(dāng)?shù)膹?qiáng)化學(xué)習(xí)訓(xùn)練流程,基于GRPO進(jìn)行強(qiáng)化學(xué)習(xí),根據(jù)準(zhǔn)確度和格式進(jìn)行訓(xùn)練獎(jiǎng)勵(lì)。為了解決語(yǔ)言混雜問(wèn)題,還在強(qiáng)化學(xué)習(xí)訓(xùn)練中引入了語(yǔ)言一致性獎(jiǎng)勵(lì),該獎(jiǎng)勵(lì)以CoT中目標(biāo)語(yǔ)言單詞的比例計(jì)算。
此階段主要提升模型的推理(Reasoning)性能,特別是在編碼、數(shù)學(xué)、科學(xué)和邏輯推理等推理密集型任務(wù),這些任務(wù)涉及定義明確且解決方案明確的問(wèn)題。
5.2.3 拒絕采樣與SFT
這是另一個(gè)使用標(biāo)記數(shù)據(jù)的有監(jiān)督精調(diào) (SFT)訓(xùn)練階段,分批進(jìn)行了兩個(gè)epoch的精調(diào),樣本量為800k。800k中包括600k推理數(shù)據(jù)和200k非推理數(shù)據(jù)。
與主要側(cè)重于推理的冷啟動(dòng)數(shù)據(jù)不同,此階段結(jié)合了來(lái)自其他領(lǐng)域的數(shù)據(jù),以增強(qiáng)模型在寫作、角色扮演和其他通用任務(wù)中的能力。
拒絕采樣(Rejection Sampling)提供了一種橋梁,使用易于采樣的分布來(lái)近似訓(xùn)練真正感興趣的復(fù)雜分布。目標(biāo)響應(yīng)(ground-truth)從一組生成的回答經(jīng)過(guò)拒絕采樣生成,其分?jǐn)?shù)由獎(jiǎng)勵(lì)系統(tǒng)確定。
拒絕采樣(Rejection Sampling)是一種蒙特卡洛方法,和重要性采樣一樣,都是在原始分布難以采樣時(shí),用一個(gè)易于采樣的建議分布進(jìn)行采樣,通過(guò)拒絕原始分布之外的采樣數(shù)據(jù)來(lái)獲得采樣結(jié)果。拒絕采樣只是為了解決目標(biāo)分布采樣困難問(wèn)題,該方法需要原始分布是已知的。 |
---|
拒絕采樣示意(來(lái)源:互聯(lián)網(wǎng))
600k推理數(shù)據(jù)的生成:
1)通過(guò)從上一輪強(qiáng)化學(xué)習(xí)訓(xùn)練的檢查點(diǎn)進(jìn)行拒絕抽樣,整理推理提示并生成推理軌跡(Reasoning Trajectories)。
2)除基于規(guī)則獎(jiǎng)勵(lì)進(jìn)行評(píng)估的數(shù)據(jù)外,還包括了基于獎(jiǎng)勵(lì)模型的V3判斷生成數(shù)據(jù)。
3)過(guò)濾掉了混合語(yǔ)言、長(zhǎng)段落和代碼塊的思路鏈數(shù)據(jù)。
4)對(duì)于每個(gè)提示(Prompt),會(huì)生成多個(gè)回答,然后并僅保留正確的響應(yīng)。
200k非推理數(shù)據(jù)的生成(如寫作、事實(shí)問(wèn)答、自我認(rèn)知和翻譯等):
1)采用DeepSeek-V3流程并復(fù)用V3 的部分 SFT 數(shù)據(jù)集。
2)可調(diào)用V3生成潛在的思路鏈,再通過(guò)提示回答。
3)對(duì)于更簡(jiǎn)單的查詢(例如“你好”),不提供CoT回答。
5.2.4 面向全場(chǎng)景的強(qiáng)化學(xué)習(xí)與對(duì)齊
最后,再次進(jìn)行面向全場(chǎng)景的強(qiáng)化學(xué)習(xí)和人類偏好對(duì)齊,以提高模型的有用性和無(wú)害性,并完善推理能力。此階段還整合了來(lái)自不同管道的數(shù)據(jù),將獎(jiǎng)勵(lì)信號(hào)與不同的提示分布相結(jié)合。
1)使用獎(jiǎng)勵(lì)信號(hào)和多種提示分布(Diverse Prompt Distributions)的組合來(lái)訓(xùn)練模型。
2)對(duì)于推理數(shù)據(jù),利用基于規(guī)則的獎(jiǎng)勵(lì)來(lái)指導(dǎo)數(shù)學(xué)、代碼和邏輯推理領(lǐng)域的訓(xùn)練過(guò)程。
3)對(duì)于一般數(shù)據(jù),采用獎(jiǎng)勵(lì)模型來(lái)捕捉復(fù)雜微妙場(chǎng)景中的人類偏好。即參考DeepSeek-V3 管訓(xùn)練流程,采用類似的偏好對(duì)和訓(xùn)練提示分布。
4)對(duì)于有用性,只關(guān)注最終摘要,以確保重點(diǎn)響應(yīng)對(duì)用戶的實(shí)用性和相關(guān)性,最大限度減少對(duì)底層推理過(guò)程的干擾。
5)對(duì)于無(wú)害性,評(píng)估模型的整個(gè)響應(yīng),包括推理過(guò)程和摘要,以識(shí)別和減輕生成過(guò)程中可能出現(xiàn)的潛在風(fēng)險(xiǎn)、偏見或有害內(nèi)容。
至此已完成R1的完整訓(xùn)練過(guò)程,獲得了具備全場(chǎng)景推理能力的通用MoE模型,上下文長(zhǎng)度均為128K。
Model | #Total Params | #Activated Params | Context Length |
---|---|---|---|
DeepSeek-R1-Zero | 671B | 37B | 128K |
DeepSeek-R1 | 671B | 37B | 128K |
5.3 從MoE回歸Dense(蒸餾SFT)
盡管MoE架構(gòu)有各種優(yōu)點(diǎn),特別是在通用的to C領(lǐng)域具備低成本的優(yōu)勢(shì)。但是MoE的架構(gòu)特點(diǎn)使得其可能不太適用于專業(yè)應(yīng)用場(chǎng)景(例如單一專家場(chǎng)景)和資源限制場(chǎng)景(例如端側(cè)推理)。
蒸餾是將復(fù)雜的大型神經(jīng)網(wǎng)絡(luò)壓縮為更小、更簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò),同時(shí)盡可能多的保留結(jié)果模型的性能的過(guò)程。此過(guò)程涉及訓(xùn)練較小的“學(xué)生“神經(jīng)網(wǎng)絡(luò),通過(guò)其預(yù)測(cè)或內(nèi)部表示的精調(diào)來(lái)學(xué)習(xí)模擬更大、更復(fù)雜的“教師”網(wǎng)絡(luò)的行為。 |
---|
模型蒸餾方法(來(lái)源:互聯(lián)網(wǎng))
為了能夠?qū)⑼评砟芰w移到MoE架構(gòu)不適合的場(chǎng)景,DeepSeek選擇Llama和Qwen系列開源大模型進(jìn)行蒸餾,使相應(yīng)的Dense模型也能獲得推理能力。與使用強(qiáng)化學(xué)習(xí)相比,直接SFT更適合較小的大模型,蒸餾完成的Dense模型推理能力明顯好于原開源模型。
DeepSeek-R1-Distill模型(來(lái)源:DeepSeek)
Model | Base Model |
---|---|
DeepSeek-R1-Distill-Qwen-1.5B | Qwen2.5-Math-1.5B |
DeepSeek-R1-Distill-Qwen-7B | Qwen2.5-Math-7B |
DeepSeek-R1-Distill-Llama-8B | Llama-3.1-8B |
DeepSeek-R1-Distill-Qwen-14B | Qwen2.5-14B |
DeepSeek-R1-Distill-Qwen-32B | Qwen2.5-32B |
DeepSeek-R1-Distill-Llama-70B | Llama-3.3-70B-Instruct |
5.4 更大顯存容量顯得尤為重要?
隨著MoE架構(gòu)大模型的快速推廣,產(chǎn)業(yè)界也有看法認(rèn)為在單塊GPU上集成更大的超過(guò)對(duì)等算力的顯存或擴(kuò)展存儲(chǔ)顯得尤為重要。
我們對(duì)此持不同看法,首先要看產(chǎn)品應(yīng)用場(chǎng)景占有率,其次要看實(shí)際的部署方案,最后要看成本比較:
1)根據(jù)前面分析,目前主力的專業(yè)行業(yè)應(yīng)用仍是使用Dense模型,能部署MoE模型的通用AI巨頭早已下場(chǎng)完成部署,從目前的應(yīng)用比例來(lái)看,使用Dense模型的依然占據(jù)應(yīng)用主體。對(duì)于Dense模型(實(shí)際上是單專家的特例),超過(guò)對(duì)等算力的單卡大顯存或擴(kuò)展存儲(chǔ)容易形成浪費(fèi)。
同樣模型性能下MoE模型需要更大的顯存(來(lái)源:Meta)
2)根據(jù)從廠商和V3論文獲得的實(shí)際部署方案,為保證MoE部分不同專家之間的負(fù)載均衡,會(huì)將共享專家和高負(fù)載的細(xì)粒度專家在集群的不同GPU做多個(gè)復(fù)制,讓GPU把更多的熱數(shù)據(jù)(發(fā)給共享專家的)跑起來(lái),V3部署中每個(gè)GPU大概托管9個(gè)專家。如果考慮這9個(gè)專家中有一個(gè)是參數(shù)最多的共享專家,那么事實(shí)上每塊GPU上的空閑細(xì)粒度專家占據(jù)的參數(shù)總和可能不超過(guò)單塊GPU上總參數(shù)量的1/3。
MoE的跨GPU部署模式(來(lái)源:微軟)
3)從成本上看,可能把一部分專家放到CPU上更劃算。我們認(rèn)為MoE上的專家可以分為高頻專家、中頻專家,低頻專家。高頻專家和中頻專家搭配部署在GPU上比較合適,低頻專家調(diào)度很少,更適合放在服務(wù)器上已有的閑置CPU的內(nèi)存上(CPU上的標(biāo)準(zhǔn)內(nèi)存比GPU的HBM便宜很多,擴(kuò)展性更好),以充分利用全服務(wù)器的算力降低綜合成本。
MoE模型的GPU+CPU混合部署(來(lái)源:Meta)
另外,R1自己都做Dense模型的蒸餾版本了,我們?yōu)楹芜€要糾結(jié)于高于對(duì)等算力帶寬的超大顯存?
6 結(jié)語(yǔ)
6.1 DeepSeek的關(guān)鍵貢獻(xiàn)
DeepSeek由梁文鋒于2023 年5月創(chuàng)立,公司獨(dú)立運(yùn)營(yíng),并由幻方支持研發(fā)資金。這種獨(dú)特的模式使DeepSeek能夠在沒有外部投資者壓力的情況下開展跨越式的人工智能研發(fā),優(yōu)先考慮長(zhǎng)期研發(fā)和價(jià)值。
成立6個(gè)月后,DeepSeek于2023年11月發(fā)布的DeepSeek Coder,隨后是 DeepSeek LLM 67B,DeepSeek逐漸踏上了基礎(chǔ)大模型的競(jìng)爭(zhēng)賽道。2024年5月推出的DeepSeek-V2就呈現(xiàn)出MLA和AI Infra技術(shù)的明顯領(lǐng)先優(yōu)勢(shì),極具性價(jià)比,引發(fā)了中國(guó)大模型市場(chǎng)的價(jià)格跳水和血拼。
在V2發(fā)布后,我們就已經(jīng)關(guān)注到DeepSeek在算法-硬件協(xié)同優(yōu)化方面的出色表現(xiàn)。主編作者在2024年6月,為前來(lái)咨詢的投資人推薦DeepSeek的高性價(jià)比路線。
V3和R1發(fā)布并開源后,DeepSeek進(jìn)一步鞏固了其在MoE性價(jià)比和AI Infra的地位,并以開源模型中幾乎最出色的推理性能,贏得社會(huì)的廣泛關(guān)注。
對(duì)于R1/V3的主要?jiǎng)?chuàng)新,可以參考下表:
DeepSeek-R1/V3的主要?jiǎng)?chuàng)新(來(lái)源:中存算)
R1/V3的優(yōu)化 | R1/V3的創(chuàng)新與價(jià)值(實(shí)現(xiàn)了與 OpenAI-o1-1217 相當(dāng)?shù)男阅埽?/th> | 其他開源大模型(相當(dāng)于Llama3.3的性能) |
---|---|---|
軟硬件結(jié)合,提高模型計(jì)算效率降低成本 | 提出MLA,通過(guò)將鍵值 (KV) 緩存顯著壓縮為潛在向量來(lái)保證高效推理 | 采用GQA或MHA,占用KV緩存比MLA大一個(gè)數(shù)量級(jí) |
減少冗余,提高模型計(jì)算效率降低成本 | 提出DeepSeekMoE,采用細(xì)粒度專家分割和共享專家隔離,減少冗余的專家參數(shù) | 采用粗粒度專家,模型參數(shù)冗余大 |
改進(jìn)算法,提高訓(xùn)練效率 | 提出無(wú)輔助損失策略 ,改善MoE模型訓(xùn)練 | 采用常規(guī)輔助損失策略,容易訓(xùn)練失敗 |
簡(jiǎn)化算法,提高訓(xùn)練效率 | 采用GRPO進(jìn)一步使模型與人類偏好對(duì)齊,提高訓(xùn)練效率 | 采用PPO,訓(xùn)練效率不高 |
軟硬件結(jié)合,提高訓(xùn)練效率 | 基于開源代碼開發(fā)自有的FP8混合精度訓(xùn)練框架,提升訓(xùn)練效率 | 傳統(tǒng)開源訓(xùn)練框架,以BF16或FP32為主,顯存占用超過(guò)FP8,訓(xùn)練速度較慢 |
軟硬件結(jié)合,提高訓(xùn)練效率 | DualPipe算法來(lái)實(shí)現(xiàn)高效的流水線并行 | 默認(rèn)流水線并行算法,氣泡較多 |
軟硬件結(jié)合,提高訓(xùn)練效率 | 跨節(jié)點(diǎn)All-to-All通信內(nèi)核,使用PTX編程以充分利用InfiniBand(IB)和NVLink帶寬 | 默認(rèn)通信內(nèi)核, |
改進(jìn)數(shù)據(jù),提高模型性能 | 使用長(zhǎng)思維鏈(CoT)數(shù)據(jù)進(jìn)行模型訓(xùn)練,提升模型能力 | 幾乎無(wú)長(zhǎng)思維鏈訓(xùn)練 |
我們經(jīng)過(guò)分析,認(rèn)為DeepSeek的算法架構(gòu)能力已經(jīng)達(dá)到國(guó)際一線水平(例如MLA和GRPO算法),而其AI Infra團(tuán)隊(duì)的軟硬件協(xié)同設(shè)計(jì)水平(例如FP8訓(xùn)練框架和基于PTX進(jìn)行All-to-All通信內(nèi)核優(yōu)化)和自由探索,可能已暫時(shí)超越大部分國(guó)際大模型企業(yè)?;旧螪eepSeek團(tuán)隊(duì)對(duì)GPU的性能使用率已接近技術(shù)上限,實(shí)現(xiàn)了在現(xiàn)有GPU體系內(nèi)的軟件Sacle-up。
如果有這樣超越其他大廠一個(gè)數(shù)量級(jí)的訓(xùn)練效率提升,估計(jì)很多大模型煉丹師夢(mèng)里都要樂開花了。
6.2 R1的出現(xiàn)是國(guó)運(yùn)級(jí)的貢獻(xiàn)嗎?
有人提出DeepSeek所作的工作可能是一種國(guó)運(yùn)級(jí)別的科技成果。
作為本文的主編作者,我個(gè)人只在小時(shí)候看過(guò)一點(diǎn)點(diǎn)梅花易數(shù)的介紹,對(duì)于推算國(guó)運(yùn)的太乙神數(shù)一直沒有機(jī)會(huì)了解和獲得傳承,不好隨意講這是不是國(guó)運(yùn)級(jí)的成果。
我對(duì)最近DeekSeek的影響力傳播看法如下:
1)對(duì)DeepSeek的成果,特別是V3/R1開源,應(yīng)有產(chǎn)業(yè)的高度肯定。但過(guò)度褒揚(yáng)對(duì)DeekSeek大概率是不利的甚至是極為有害的,會(huì)導(dǎo)致專心做事的人要疲于應(yīng)付各種俗務(wù),也大概率導(dǎo)致DeepSeek招致美國(guó)商務(wù)部的打壓。
2)梁文鋒本人一貫低調(diào),在創(chuàng)立幻方后那么多年,幾乎沒有出來(lái)宣傳或炒作。媒體和社會(huì)如能參考DeepSeek創(chuàng)始人的個(gè)人行事風(fēng)格,給更多類似DeepSeek的本土人才和企業(yè)予以支持,會(huì)更有利于國(guó)運(yùn)。
3)脫離實(shí)際技術(shù)分析的對(duì)DeepSeek的評(píng)判多數(shù)是霧里看花,少一些人與亦云的評(píng)判,多一些實(shí)干,對(duì)所有心懷理想的人都是好事。
4)會(huì)有比R1更顛覆性的先進(jìn)大模型出現(xiàn)。如同前幾年的熱炒OpenAI和Kimi,技術(shù)總會(huì)不斷進(jìn)步,對(duì)于DeepSeek來(lái)說(shuō),還有更加重要的目標(biāo)和星辰大海,R1僅僅是海邊新發(fā)現(xiàn)的璀璨貝殼。
5)是否是對(duì)OpenAI模型的蒸餾根本不重要。學(xué)習(xí)和參考是人類社會(huì)進(jìn)步的階梯,開源更是對(duì)大模型技術(shù)進(jìn)步的頭號(hào)貢獻(xiàn)。一兩家閉源巨頭大概率沒有足夠的資源儲(chǔ)備來(lái)推動(dòng)人類AGI的顛覆式發(fā)展,只有更多的DeepSeek這樣的力量貢獻(xiàn)到開源社區(qū),才能形成合力實(shí)現(xiàn)超級(jí)人工智能。
6.3 對(duì)于國(guó)產(chǎn)AI芯片的啟示
DeepSeek的進(jìn)步和成果,也給國(guó)產(chǎn)AI芯片的發(fā)展提供了一些啟示。
一方面,一級(jí)市場(chǎng)需要升級(jí)投資邏輯,不用再崇洋媚外。事實(shí)證明純本土的研發(fā)團(tuán)隊(duì),甚至是純本土新人團(tuán)隊(duì),完全由能力做出有國(guó)際影響力的成果和產(chǎn)品。國(guó)內(nèi)算法不再死跟著老美屁股后面,國(guó)內(nèi)的AI芯片也大可不必死跟著英偉達(dá)做傳統(tǒng)GPU。新的架構(gòu)AI芯片,新的GPU架構(gòu),跨領(lǐng)域的技術(shù)融合,正形成新的產(chǎn)業(yè)窗口。
另一方面,DeepSeek的技術(shù)成果,事實(shí)也凸顯出算力對(duì)模型進(jìn)步的重要性。DeepSeek的算法進(jìn)步速度之快,與其算力使用效率比其他團(tuán)隊(duì)高約一個(gè)數(shù)量級(jí)有非常密切的關(guān)系。(當(dāng)然DeepSeek可使用的算力總量也不低)在這樣的一個(gè)算法大發(fā)展契機(jī),盡快發(fā)展新架構(gòu)AI芯片,發(fā)展3D封裝集成,發(fā)展高速互連,發(fā)展開源編譯生態(tài),搶占MoE模型發(fā)展期的技術(shù)紅利,對(duì)中國(guó)的芯片產(chǎn)業(yè)就顯得尤為重要。
-
DeepSeek
+關(guān)注
關(guān)注
1文章
680瀏覽量
521
原文標(biāo)題:陳巍:DeepSeek是否有國(guó)運(yùn)級(jí)的創(chuàng)新?2萬(wàn)字解讀與硬核分析DeepSeek V3/R1的架構(gòu)
文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
RK3588開發(fā)板上部署DeepSeek-R1大模型的完整指南
OpenAI O3與DeepSeek R1:推理模型性能深度分析
浪潮信息發(fā)布元腦R1推理服務(wù)器
IBM在watsonx.ai平臺(tái)推出DeepSeek R1蒸餾模型
了解DeepSeek-V3 和 DeepSeek-R1兩個(gè)大模型的不同定位和應(yīng)用選擇
超星未來(lái)驚蟄R1芯片適配DeepSeek-R1模型
DeepSeek V3/R1滿血版登陸華為云
DeepSeek4J開源:高效解決DeepSeek R1集成挑戰(zhàn)

Deepseek R1大模型離線部署教程

扣子平臺(tái)支持DeepSeek R1與V3模型
瀚博完成DeepSeek全版本訓(xùn)推適配
Krea發(fā)布Deepseek R1驅(qū)動(dòng)的Chat功能
騰訊云TI平臺(tái)推出DeepSeek系列模型
云天勵(lì)飛上線DeepSeek R1系列模型

評(píng)論