談?wù)凞eepSeek-v3在算力約束下的出色工作
在所有人追求更大規(guī)模集群的時(shí)候, Deepseek這樣的工作只有一個(gè)詞評(píng)價(jià): Respect!
原標(biāo)題:談?wù)凞eepSeek-v3在算力約束下的出色工作
文章來源:智猩猩GenAI
內(nèi)容字?jǐn)?shù):13634字
DeepSeek-v3: 高效能大模型訓(xùn)練與推理的突破
本文分析了DeepSeek-v3 (DSv3) 671B參數(shù)的大型語言模型,它僅使用2048塊H800 GPU就超越了Meta使用16384塊H100訓(xùn)練的Llama 3 405B模型,展現(xiàn)了在模型訓(xùn)練和推理方面的顯著效率提升。文章重點(diǎn)關(guān)注其架構(gòu)創(chuàng)新、并行策略以及對(duì)未來硬件設(shè)計(jì)的建議。
1. DeepSeek-v3 模型概述
1.1 模型結(jié)構(gòu):DSv3采用MLA和DeepSeekMoE架構(gòu),Hidden Dim為7168,attention heads為128,模型層數(shù)為61層。MoE層包含一個(gè)共享專家和256個(gè)路由專家,每個(gè)Token激活8個(gè)專家,并確保Token僅被路由到4個(gè)節(jié)點(diǎn)。 創(chuàng)新之處在于引入了Auxiliary-Loss-Free Load Balancing和Multi-Token Prediction (MTP),MTP模塊通過預(yù)測(cè)額外的Token來提高數(shù)據(jù)使用效率,類似于CPU分支預(yù)測(cè)器,提升了模型的推理能力。
1.2 訓(xùn)練并行策略:DSv3使用自研的HAI-LLM框架,采用PP=16,EP=64的并行策略,并結(jié)合ZeRO-1 Offload和內(nèi)存優(yōu)化,巧妙地避開了對(duì)NVLink帶寬的依賴。 DualPipe算法實(shí)現(xiàn)了計(jì)算和通信的重疊,減少了PP中的“氣泡”,顯著提升了效率。針對(duì)跨節(jié)點(diǎn)All-to-All通信也進(jìn)行了細(xì)致優(yōu)化。
1.3 并行推理策略:DSv3采用PD分離策略,在Attention計(jì)算部分使用TP4+SP結(jié)合DP8,在MoE層使用EP=32,并通過Redundant Experts策略來平衡負(fù)載。為了隱藏A2A和TP的通信開銷,它同時(shí)處理兩個(gè)microbatch,并對(duì)dispatch/MoE/Combine Kernel進(jìn)行融合。解碼階段最小部署規(guī)模為40個(gè)節(jié)點(diǎn)320張卡,采用TP4+SP配合DP80,MoE部分采用EP320,并通過IBGDA進(jìn)一步降低延遲。
2. DeepSeek-v3 訓(xùn)練中使用的并行技術(shù)
2.1 DualPipe:通過將forward/backward chunk配對(duì),并將其分為四個(gè)組件(Attention,A2A dispatch,MLP和A2A combine)進(jìn)行重疊計(jì)算和通信,從而隱藏了A2A和PP通信開銷。
2.2 高效的跨節(jié)點(diǎn)A2A通信:利用IB和NVLink的帶寬差異,通過IB傳輸?shù)侥繕?biāo)節(jié)點(diǎn)上相同Rank的GPU,再通過NVLink轉(zhuǎn)發(fā)到目標(biāo)GPU,并通過動(dòng)態(tài)調(diào)整通信塊大小和PTX指令優(yōu)化來減少L2緩存干擾。
2.3 內(nèi)存優(yōu)化:采用Activation重計(jì)算、CPU異步更新模型參數(shù)等策略,并把模型淺層和Embedding層與最后一層放在同一個(gè)PP Rank中。
2.4 FP8訓(xùn)練:采用Tile/Block-based細(xì)粒度量化訓(xùn)練策略和混合精度訓(xùn)練,在保證精度的前提下大幅提升訓(xùn)練速度。通過提高累加精度、細(xì)粒度量化以及低精度存儲(chǔ)和通信等方法,有效降低內(nèi)存消耗和通信帶寬。
3. 對(duì)硬件設(shè)計(jì)的建議
3.1 網(wǎng)絡(luò)硬件:建議開發(fā)對(duì)通信和集合通信Offload的專用網(wǎng)絡(luò)處理器和協(xié)處理器,并統(tǒng)一ScaleOut和ScaleUp網(wǎng)絡(luò)接口,簡(jiǎn)化應(yīng)用程序編程。
3.2 計(jì)算部件:建議提高TensorCore的Accumulator精度,支持Tile/Block based量化,并支持Online量化,避免數(shù)據(jù)移動(dòng);建議加入warp level的轉(zhuǎn)換指令,促進(jìn)NormLayer和FP8轉(zhuǎn)換融合,或采用近內(nèi)存計(jì)算方法;建議支持Transpose GEMM操作,減少內(nèi)存訪問。
總而言之,DeepSeek-v3在模型架構(gòu)、訓(xùn)練和推理并行策略以及FP8訓(xùn)練等方面取得了顯著突破,為大型語言模型的高效訓(xùn)練和部署提供了新的思路,同時(shí)也對(duì)未來硬件設(shè)計(jì)提出了寶貴的建議。
聯(lián)系作者
文章來源:智猩猩GenAI
作者微信:
作者簡(jiǎn)介:智猩猩旗下公眾號(hào)之一,深入關(guān)注大模型與AI智能體,及時(shí)搜羅生成式AI技術(shù)產(chǎn)品。