一、模型架構(gòu)

1.1 高效的模型架構(gòu)設(shè)計:多頭潛在注意力 MLA 和 DeepSeekMoE 架構(gòu)

1. 多頭潛在注意力 MLA:MLA(Multi – head Latent Attention)架構(gòu)與標(biāo)準(zhǔn)的MHA(Multi – head Attention)架構(gòu)相比,核心是對注意力鍵和值進(jìn)行低秩聯(lián)合壓縮,減少了推理時的 Key – Value(KV)緩存,減少了推理內(nèi)存占用,提升了推理效率,該架構(gòu)對訓(xùn)練過程無直接幫助,不是本文分析的重點。

2. DeepSeekMoE 架構(gòu):核心是采用了更細(xì)粒度的專家分配策略,每個MoE層有1個共享專家和256個路由專家(共有58個MoE層14906個專家),每個輸入Token可以激活8個路由專家,該架構(gòu)可以有效利用計算資源,實現(xiàn)高效訓(xùn)練,其與標(biāo)準(zhǔn)MoE架構(gòu)存在以下不同點:

a)專家構(gòu)成:標(biāo)準(zhǔn)MoE架構(gòu)的類型和分工較為寬泛,一般不會特別強(qiáng)調(diào)共享專家的設(shè)置,各個專家相對獨立的處理不同輸入數(shù)據(jù),在處理不同類型數(shù)據(jù)特征時,專家間一般缺少專門設(shè)計的協(xié)作和共享機(jī)制;而 DeepSeekMoE 架構(gòu)中的共享專家可對不同輸入數(shù)據(jù)中的共性特征進(jìn)行處理,在不同類型的輸入數(shù)據(jù)間實現(xiàn)共性特征的知識共享,以便減少模型參數(shù)冗余,而路由專家則負(fù)責(zé)處理具有特定模式或特征的數(shù)據(jù),提高模型對不同數(shù)據(jù)的適應(yīng)性和處理能力。

b)專家分配:標(biāo)準(zhǔn)MoE架構(gòu)的專家分配策略相對比較粗放,門控網(wǎng)絡(luò)根據(jù)輸入數(shù)據(jù)進(jìn)行專家選擇時,對于一些復(fù)雜數(shù)據(jù)特征的區(qū)分不夠精準(zhǔn),不能很好地將數(shù)據(jù)分配到最能處理該特征的專家;而 DeepSeekMoE 架構(gòu)采用了更細(xì)粒度的專家分配策略,門控網(wǎng)絡(luò)能夠更精準(zhǔn)地分析輸入數(shù)據(jù)的特征,將其分配到最合適的專家,提升模型對于復(fù)雜數(shù)據(jù)的處理能力。

c)專家激活:標(biāo)準(zhǔn)MoE架構(gòu)對于輸入數(shù)據(jù)激活的專家數(shù)量沒有固定標(biāo)準(zhǔn),在某些情況下輸入數(shù)據(jù)可能會激活過多非必要的專家,導(dǎo)致計算資源的浪費;而 DeepSeekMoE 架構(gòu)明確了每個輸入 Token 激活8個路由專家,在保證模型處理效果的同時,避免了過度激活專家?guī)淼挠嬎阗Y源浪費,提高了計算效率、降低了計算成本;在具體實現(xiàn)方式上,共享專家會對每個輸入 Token 進(jìn)行處理,以便提取通用的基本特征,而路由專家會根據(jù)輸入 Token 的特征而決定是否被激活參與計算。

1.2 創(chuàng)新的負(fù)載均衡策略:無輔助損失負(fù)載均衡和序列級負(fù)載均衡

1. 基本概念:在MoE大模型訓(xùn)練過程中,輸入數(shù)據(jù)會根據(jù)一定的路由規(guī)則分配到不同的專家模型進(jìn)行處理,這個過程中可能會出現(xiàn)負(fù)載不均衡的情況,即某些專家被頻繁調(diào)用,而另一些專家則很少被使用,這會導(dǎo)致訓(xùn)練效率和模型性能下降;

業(yè)界通常采用的負(fù)載均衡策略為引入專門的輔助損失函數(shù)來強(qiáng)制平衡專家之間的負(fù)載,例如通過懲罰專家之間的負(fù)載差異來促使模型均勻地使用各個專家,額外引入的損失函數(shù)往往會導(dǎo)致模型復(fù)雜度增加、訓(xùn)練不穩(wěn)定、發(fā)生與原本訓(xùn)練目標(biāo)不一致等問題;

除了上述基于單 Token 的負(fù)載不均問題外,一個輸入序列中的 Token 在專家間的分配情況也容易出現(xiàn)負(fù)載不均,即同一序列中的多個 Token 可能會集中分配給某些專家。

2. 優(yōu)化方法:DeepSeek-V3 采用無輔助損失負(fù)載均衡技術(shù),通過直接在路由機(jī)制中融入負(fù)載均衡邏輯,避免了引入輔助損失函數(shù),實現(xiàn)了僅通過對路由決策動態(tài)調(diào)整就實現(xiàn)專家負(fù)載均衡的效果;同時訓(xùn)練過程輔以序列級負(fù)載均衡策略,確保了每個序列內(nèi)的專家負(fù)載均衡。

a)無輔助損失負(fù)載均衡:DeepSeek-V3 為每個專家引入了一個可學(xué)習(xí)的偏置項,在訓(xùn)練過程中它會隨著專家負(fù)載情況進(jìn)行動態(tài)更新,當(dāng)門控網(wǎng)絡(luò)計算輸入 Token 與各專家的匹配得分時,該偏置項會動態(tài)調(diào)整每個專家的匹配得分,基于得分和對各專家利用率的實時監(jiān)測(例如在一定時間窗口內(nèi)專家處理的 Token 數(shù)量、計算資源占用時長等),動態(tài)調(diào)整路由策略,將輸入 Token 實時分配給負(fù)載較低的專家,這種方法不僅負(fù)載均衡效果好,而且避免了引入輔助損失函數(shù)帶來的衍生問題。

b)序列級負(fù)載均衡:DeepSeek-V3 額外增加了一個序列級負(fù)載均衡損失函數(shù),對序列中的每個 Token 進(jìn)行精細(xì)化的分析和處理,根據(jù) Token 在序列中的位置、上下文信息等更合理地分配到各個專家(而不是僅僅基于單個 Token 的特征進(jìn)行獨立分配),通過這種負(fù)載均衡方案,兼顧了 Token 之間的關(guān)聯(lián)性和序列的整體結(jié)構(gòu)。


1.3 多令牌預(yù)測(MTP) 訓(xùn)練目標(biāo):提高訓(xùn)練效率和推理速度

1. 基本概念:MTP 的全稱是 Multi – Token Prediction(多令牌預(yù)測),與之對應(yīng)的是 DeepSeek-V3 發(fā)布之前業(yè)界普遍使用的單令牌預(yù)測(Single – Token Prediction,STP),STP 一次僅預(yù)測一個Token,而 MTP 可同時預(yù)測多個 Token,這一方案在訓(xùn)練階段可以提升數(shù)據(jù)訓(xùn)練效率,在推理階段可以實現(xiàn)顯著加速。

2. 實現(xiàn)方案:如 DeepSeek 論文中所展示的 MTP 架構(gòu)所示,MTP 由一個主模型(Main Model)以及多個 MTP 模塊(MTP Module 1、MTP Module 2 等)構(gòu)成,主模型負(fù)責(zé)基礎(chǔ)的下一個 Token 預(yù)測任務(wù),MTP 模塊則用于預(yù)測多個未來 Token,它們共同協(xié)作完成多Token 預(yù)測訓(xùn)練。

a)輸入 Token 與輸出 Token:如圖左下方的t1、t2、t3、t4等,是模型的輸入序列;如圖上方的t2、t3、t4、t5是模型預(yù)測需要匹配的真實 Token 序列,不同部分對應(yīng)不同的預(yù)測任務(wù)。

b)主模型(Main Model)與 MTP 模塊:輸入 Token 先經(jīng)過嵌入層轉(zhuǎn)換為向量表示,然后分別在 Main Model 和 MTP 內(nèi)部進(jìn)行計算,基于與目標(biāo) Token 計算得到的 Loss,指導(dǎo)模型更新訓(xùn)練參數(shù)。

c)共享機(jī)制:嵌入層(Embedding Layer)和輸出頭(Output Head)在主模型和 MTP 模塊之間共享,這種共享機(jī)制確保了模型在不同預(yù)測任務(wù)中的參數(shù)一致性,同時減少了參數(shù)數(shù)量,提高了訓(xùn)練效率。

3. 核心價值:MTP 不僅在推理時能夠顯著加速生成速度(據(jù)稱生成速度可提升 1.8 倍),對于高效訓(xùn)練同樣很有價值。

a)實現(xiàn)高效訓(xùn)練:由于一次可預(yù)測多個 Token,在相同數(shù)據(jù)量的情況下,相比 STP 架構(gòu),模型可以學(xué)習(xí)到更多的信息,從而提升了數(shù)據(jù)的利用效率,使得訓(xùn)練更加高效。

b)提升訓(xùn)練效果:模型可以基于對多個 Token 的預(yù)測,更合理地調(diào)整自身參數(shù),學(xué)習(xí)到更豐富的語言模式和語義信息,有助于模型在訓(xùn)練中更好地收斂,提升訓(xùn)練效果。

二、并行策略

2.1 高效的并行策略設(shè)計:大量使用 EP、不再使用 TP

1. 并行策略總結(jié):DeepSeek-V3 的訓(xùn)練由 HAI-LLM 框架(DeepSeek 自研訓(xùn)練框架)支持,采用了16路流水線并行(PP),跨越8個節(jié)點的64路專家并行(EP),以及 ZeRO-1 數(shù)據(jù)并行(DP),實現(xiàn)了充分利用計算資源,提高訓(xùn)練效率,減少訓(xùn)練時間和成本。其中 PP 和 DP 將在本節(jié)后邊兩個要點進(jìn)行分析,此處重點分析其為何沒有使用 TP。

2. 使用 EP 而不是 TP:在 DeepSeek-V3 訓(xùn)練中,優(yōu)先使用 EP 而沒有使用 TP 的原因核心有以下幾個方面:

a)模型結(jié)構(gòu)適配性:MoE 模型由多個專家網(wǎng)絡(luò)和一個門控網(wǎng)絡(luò)組成,EP 正好與這種結(jié)構(gòu)相匹配,它可以將不同的專家分配到不同的計算單元上并行計算,讓模型同時處理多個不同的任務(wù)或數(shù)據(jù)特征,提高模型的處理能力和訓(xùn)練效率;TP 通常用于處理大型張量的計算,不能很好地對應(yīng) MoE 模型的結(jié)構(gòu)特點。

b)通信成本考慮在 EP 中不同專家之間的通信相對較少,主要的通信開銷在于門控網(wǎng)絡(luò)與專家網(wǎng)絡(luò)之間的信息交互,以及在進(jìn)行模型參數(shù)更新等操作時的一些全局通信;TP 需要在多個設(shè)備之間頻繁地進(jìn)行張量的切分、合并等操作,通信量會隨著模型規(guī)模和數(shù)據(jù)量的增加而顯著增加,降低訓(xùn)練效率。

c)計算資源利用率:MoE 模型中的不同專家可能具有不同的計算復(fù)雜度和數(shù)據(jù)需求,EP 可以根據(jù)各個專家的特點靈活地分配計算資源,使不同性能的計算單元都能得到充分利用;TP 的資源分配方式相對單一,對于不同專家的多樣性計算需求支持不佳。

2.2 Dualpipe 流水線并行策略:雙流并行計算優(yōu)化與雙向流水線調(diào)度優(yōu)化

1.雙流并行計算優(yōu)化

a)基本概念:如 DeepSeek 在論文中所述,在訓(xùn)練過程中包含前向傳遞、反向傳遞兩個階段,具體包括計算流和通信流兩個流。

  1. 前向傳遞:通常按順序執(zhí)行ATTN(計算流)、DISPATCH(通信流)、MLP(計算流)、COMBINE(通信流)操作。

ii. 反向傳遞:需要執(zhí)行COMBINE(通信流)、MLP_B(計算流)、MLP_W(計算流)、DISPATCH(通信流)、ATTN_B(計算流)、ATTN_W(計算流)操作:

b)優(yōu)化方法:此處的雙流并行,指的是計算流和通信流,雙流并行即在大模型訓(xùn)練的反向傳遞階段,將原本存在先后順序的更新當(dāng)前層權(quán)重(即MLP_B)和將梯度繼續(xù)傳遞到前一層(即MLP_W)這兩個操作,拆分成兩個獨立且并行的流,同時通過細(xì)致的設(shè)計,讓訓(xùn)練的 barrier 剛好停在兩個流任務(wù)完成的時候,而不需要通信流或者是計算流進(jìn)行等待,提高計算效率

2. 雙向流水線調(diào)度優(yōu)化

a)基本概念:PP并行方法中,訓(xùn)練過程經(jīng)常容易出現(xiàn)氣泡(即GPU閑置),核心原因是在PP并行中不同的計算階段可能具有不同的計算復(fù)雜度和執(zhí)行時間,導(dǎo)致計算快的階段需要等待計算慢的階段完成后才能繼續(xù)進(jìn)行下一輪計算,同時不同階段之間需要進(jìn)行數(shù)據(jù)通信來傳遞中間結(jié)果,可能會受到網(wǎng)絡(luò)帶寬等影響導(dǎo)致數(shù)據(jù)傳輸延遲,如下圖所示,其中有以下一些關(guān)鍵信息。

i.顏色:藍(lán)色代表前向傳播,綠色代表反向傳播,灰色代表空閑狀態(tài)(即氣泡)。

ii.數(shù)字:表示不同的微批次(Micro – batch),圖中不同GPU上的數(shù)字序列,反映了各個微批次在不同GPU上的計算順序和時間分布。

b)優(yōu)化方法:傳統(tǒng)的單向流水線通常是按照固定順序,從流水線起始端依次進(jìn)行微批次(micro – batch)處理;而DeepSeek-V3在訓(xùn)練過程中采用了雙向流水線調(diào)度設(shè)計,即同時從兩端進(jìn)行微批次(micro – batch)處理,減少流水線氣泡,另外DeepSeek將每個 micro – batch 進(jìn)一步劃分為更小的塊(chunk),并對計算和通信進(jìn)行精細(xì)調(diào)度,實現(xiàn)兩者的高度重疊,提高 GPU 利用率。

iii.起始端:在PP并行中,通常將設(shè)備編號較小的一端視為起始端,即圖中的 Device 0。

iv.末端:設(shè)備編號較大的一端為末端,也就是圖中的 Device 7,在雙向流水線中,Device 7 等設(shè)備也會在合適的時機(jī)啟動計算任務(wù),且與起始端的計算任務(wù)相互配合,并非只是被動等待起始端計算完成后才開始工作。


2.3 ZeRO-1(DP) 數(shù)據(jù)并行策略:降低內(nèi)存占用,加速模型訓(xùn)練

1. 基本概念ZeRO(Zero Redundancy Optimizer)即零冗余優(yōu)化器,是由微軟提出的一種旨在減少分布式訓(xùn)練中內(nèi)存使用的技術(shù)框架;ZeRO-1(DP)結(jié)合了零冗余優(yōu)化器的思想和數(shù)據(jù)并行策略。

2. 工作原理:在傳統(tǒng)的數(shù)據(jù)并行中,每個設(shè)備都保存完整的優(yōu)化器狀態(tài)(如梯度、參數(shù)等),這會導(dǎo)致內(nèi)存冗余;而 ZeRO-1 會將優(yōu)化器狀態(tài)劃分到不同的設(shè)備上,每個設(shè)備只保存一部分優(yōu)化器狀態(tài),在反向傳播計算完成后,各個設(shè)備會交換自己所負(fù)責(zé)的參數(shù)的梯度信息,然后根據(jù)這些梯度更新各自保存的部分優(yōu)化器狀態(tài)和模型參數(shù);通過這種方式,雖然每個設(shè)備只保存了部分信息,但最終所有設(shè)備上的模型參數(shù)會保持一致。

3. 核心價值

a)降低內(nèi)存占用:ZeRO-1(DP) 數(shù)據(jù)并行策略顯著降低了單個 GPU 的內(nèi)存占用,讓模型能夠在有限的顯存中進(jìn)行訓(xùn)練。

b)加速模型訓(xùn)練:首先由于內(nèi)存占用降低,模型可以處理更大的批量數(shù)據(jù),提高了計算資源的利用率,從而加快訓(xùn)練速度;另外ZeRO-1 通過在不同GPU之間共享一部分狀態(tài)變量,減少了 GPU 之間的通信開銷,進(jìn)一步提升了整體訓(xùn)練效率。

三、通信優(yōu)化

3.1 Moe 路由的All2All優(yōu)化設(shè)計:網(wǎng)絡(luò)拓?fù)鋬?yōu)化與資源分配優(yōu)化

1. 基本概念:在MoE大模型訓(xùn)練中,需要將訓(xùn)練數(shù)據(jù)按照數(shù)據(jù)類型或特征分配給最合適的專家模型進(jìn)行處理,此時常用到兩種數(shù)據(jù)路由方案,一種是All to All通信方案,另一種是基于 Magetron 實現(xiàn)的All Reduce和Reduce Scatter通信方案,其優(yōu)缺點大致如下:

a)All to All通信:在數(shù)據(jù)傳輸時,根據(jù)實際傳輸?shù)臄?shù)據(jù)量來開辟相應(yīng)大小的顯存空間;這種方案的優(yōu)勢是顯存開銷小,劣勢是由于是點對點通信、通信效率相對較低。

b)All Reduce和Reduce Scatter通信:這種方案首先是將所有數(shù)據(jù)路由至每一張GPU,然后通過掩碼篩選出每個專家模型真正需要的數(shù)據(jù),再進(jìn)行求和、求最大值等規(guī)約操作,并將數(shù)據(jù)重新合理分配至每一張GPU;這種方案的優(yōu)勢是通信效率較高,劣勢是顯存開銷比較大。


2. 實現(xiàn)方案:在 DeepSeek-V3 的實際訓(xùn)練中,選擇了All to All的通信方案,為了解決All to All在通信效率方面存在的劣勢,采用了眾多通信優(yōu)化手段,比較核心的有以下幾個方面。

a)限制路由范圍:限制每個訓(xùn)練 token 最多只能被調(diào)度到 4 臺GPU服務(wù)器,減少跨節(jié)點間的 IB 流量,規(guī)避了節(jié)點過多時訓(xùn)練 Token 隨意路由導(dǎo)致的通信擁塞問題。

b)網(wǎng)絡(luò)拓?fù)鋬?yōu)化:DeepSeek-V3 的訓(xùn)練集群應(yīng)該采用了多軌組網(wǎng)方案(其并未正式公布,從其他渠道了解信息猜測得到),確保服務(wù)器收發(fā)數(shù)據(jù)時,可以在不同節(jié)點的同號卡之間實現(xiàn)最少跳數(shù)的互聯(lián),所以在數(shù)據(jù)路由策略上,DeepSeek-V3 會通過IB網(wǎng)絡(luò)將數(shù)據(jù)從源端服務(wù)器傳輸至目標(biāo)服務(wù)器相同卡號的GPU上,然后基于 NVLink 轉(zhuǎn)發(fā)至托管目標(biāo)專家的特定GPU,實現(xiàn)高效機(jī)內(nèi)和機(jī)間通信,最大化利用高速互聯(lián)網(wǎng)絡(luò)帶寬。

c)資源分配優(yōu)化:當(dāng)期望訓(xùn)練流與通信流同時工作并達(dá)到重疊狀態(tài)時(如二.2所述),就容易出現(xiàn)GPU SM資源(SM即流多處理器,H800有132個SM)的爭搶,DeepSeek-V3 通過使用定制化的 PTX(即網(wǎng)絡(luò)上宣稱繞過CUDA的語言),對GPU的132個SM進(jìn)行了改造,專門劃分出20個SM用于處理服務(wù)器間通信任務(wù),并根據(jù)訓(xùn)練流和通信流的具體特點和需求,對指令執(zhí)行進(jìn)行優(yōu)化,例如分配指令優(yōu)先級、調(diào)整指令執(zhí)行順序等,減少 SM 資源分配和 L2 緩存搶占現(xiàn)象的發(fā)生。

d)動態(tài)資源調(diào)整:DeepSeek-V3 采用了自動調(diào)整的資源分配策略,能夠根據(jù)訓(xùn)練流和通信流在不同時刻的資源需求動態(tài)地分配 SM 和 L2 緩存資源,系統(tǒng)能夠通過為每個專家引入的偏置項,根據(jù)每個專家的歷史利用率情況,動態(tài)地調(diào)整其接收新任務(wù)的概率,即無輔助損失負(fù)載均衡策略。

四、顯存優(yōu)化

4.1 FP8 低精度訓(xùn)練:混合訓(xùn)練框架和精細(xì)量化策略

1. 混合精度訓(xùn)練框架:在 DeepSeek-V3 的訓(xùn)練中,對于占據(jù)大量計算量的 GEMM(通用矩陣乘法)操作,采用 FP8 精度執(zhí)行,F(xiàn)P8 數(shù)據(jù)類型具有較低的內(nèi)存占用和更快的計算速度,所以可以顯著提升計算效率、降低顯存開銷;同時為了確保訓(xùn)練的穩(wěn)定性,對于少數(shù)對精度要求比較高的關(guān)鍵操作,如嵌入模塊(將輸入 Token 轉(zhuǎn)換為向量表示)、注意力操作等,仍保持高精度(BF16/FP32)計算。

2. 精細(xì)量化策略:FP8 雖然在訓(xùn)練速度和顯存占用方面優(yōu)勢明顯,但是由于需要采取措施對訓(xùn)練數(shù)據(jù)、模型參數(shù)、中間激活值進(jìn)行量化操作,容易在訓(xùn)練過程中出現(xiàn)因量化誤差導(dǎo)致的模型發(fā)散等問題,影響訓(xùn)練穩(wěn)定性和模型性能,DeepSeek-V3 在訓(xùn)練過程中采用了分塊量化、塊級量化、高精度累加三種精細(xì)量化策略解決這個問題。

a)分塊量化:數(shù)據(jù)劃分粒度相對較細(xì),將數(shù)據(jù)劃分為多個小,然后對每個小塊分別進(jìn)行量化操作,這種方式能更精細(xì)地適應(yīng)數(shù)據(jù)的局部特征,減少量化誤差。

b)塊級量化:數(shù)據(jù)劃分粒度相對較粗,對更大的塊進(jìn)行統(tǒng)一量化處理,這種方式更關(guān)注數(shù)據(jù)的整體特征和分布情況,通過對較大塊的數(shù)據(jù)采用相同的量化參數(shù)進(jìn)行量化,可以簡化量化計算過程,降低計算復(fù)雜度。

c)高精度累加:在一些關(guān)鍵計算步驟中,雖然中間計算過程使用了 FP8 精度以提高計算效率,但在進(jìn)行累加等操作時,會將 FP8 數(shù)據(jù)轉(zhuǎn)換為更高精度的數(shù)據(jù)類型(BF16/FP32)進(jìn)行累加,然后再根據(jù)需要轉(zhuǎn)換回 FP8 精度進(jìn)行后續(xù)計算,這種機(jī)制可以有效控制量化誤差的積累。

4.2 選擇重計算:間隔重計算和選擇性重計算優(yōu)化

1. 基本概念在訓(xùn)練過程中,需要占用大量的顯存來存儲模型參數(shù)、中間結(jié)果等數(shù)據(jù),當(dāng)模型參數(shù)規(guī)模較大或者訓(xùn)練數(shù)據(jù)量較多時,可能會出現(xiàn)顯存不夠用的情況;所以業(yè)界會采用重計算優(yōu)化方法,即在前向傳播時不保存上述的中間結(jié)果數(shù)據(jù),而是在反向傳播需要的時候重新計算它們,大大減少中間結(jié)果所占用的顯存空間。

2. 實現(xiàn)方案比較粗暴的實現(xiàn)方案是完全重計算,這種方案因為計算量較大,會大幅增加訓(xùn)練全過程時間,所以業(yè)界一直在探索更為高效的選擇重計算方案,DeepSeek-V3 在訓(xùn)練過程中主要應(yīng)用了間隔重計算和選擇性重計算兩種優(yōu)化手段。

a)間隔重計算:即“隔一層重計算一次” ,在反向傳播中對一半層的輸入輸出進(jìn)行重計算,另一半層按照傳統(tǒng)方式保存中間結(jié)果數(shù)據(jù)。

b)選擇性重計算:大模型每一層的計算,通常由類似 RMSkernel 的計算強(qiáng)度較弱的部分(包含平方、求和、開方等計算操作,用于穩(wěn)定訓(xùn)練過程、加速模型收斂)和計算強(qiáng)度較強(qiáng)的 GEMM 矩陣乘法部分組成,他們雖然都會產(chǎn)生中間結(jié)果,但是計算成本差異較大;通常 RMSkernel 的計算時間占比小、但單位計算的顯存占用大,而GEMM的計算時間占比大、但單位計算的顯存占用小;所以選擇性重計算方法重點是針對 RMSkernel 相關(guān)的部分算子進(jìn)行重計算,獲得最大的性價比。

4.3 EMA顯存優(yōu)化:異步處理與顯存卸載優(yōu)化

1. 基本概念EMA是指數(shù)移動平均(Exponential Moving Average),它對于模型訓(xùn)練過程中每一步更新得到的參數(shù),計算指數(shù)加權(quán)平均值,得到一組新的參數(shù),用于監(jiān)測訓(xùn)練方向,避免噪聲對于模型參數(shù)更新的影響,以得到更加穩(wěn)定、泛化能力更強(qiáng)的參數(shù);由于EMA需要額外維護(hù)一組參數(shù),所以會占用一定的顯存空間。

2.實現(xiàn)方案:DeepSeek-V3 在訓(xùn)練過程中采用了異步處理和顯存卸載方法,優(yōu)化了EMA的顯存占用。

a)異步處理:由于EMA的計算過程并不需要訓(xùn)練過程中實時產(chǎn)生的數(shù)據(jù),所以可以獨立于前向傳播和反向傳播而開展,DeepSeek采用異步處理方式,讓EMA計算過程與訓(xùn)練過程并行開展。

b)顯存卸載:基于上述異步處理的基礎(chǔ),可以將EMA計算從GPU顯存卸載至CPU,即在每一輪訓(xùn)練結(jié)束后,將模型參數(shù)傳遞給CPU,在 CPU 上計算 EMA 參數(shù),然后將更新后的 EMA 參數(shù)存儲在 CPU 內(nèi)存中,減少GPU的顯存占用。

4.4 頭尾參數(shù)共享:embedding 層和 lm_head 層共享參數(shù)的優(yōu)化策略

1. 基本概念:embedding層位于模型首端,核心作用是把離散的 Token 轉(zhuǎn)換為連續(xù)的向量表示,實現(xiàn)這一轉(zhuǎn)換依靠的是一個可學(xué)習(xí)的權(quán)重矩陣,其大小為 vocab_size * hidden_size(詞表大小 * 每個 Token 對應(yīng)的嵌入向量的維度);lm_head 層位于模型的末端,將模型輸出的嵌入向量重新映射回 Token 的概率分布,以便計算損失函數(shù),其實現(xiàn)方式同樣是依賴一個大小為 vocab_size * hidden_size 的權(quán)重矩陣。

2.實現(xiàn)方案:頭尾參數(shù)共享,指的是讓 embedding 層和 lm_head 層使用同一個權(quán)重矩陣,這種優(yōu)化方案由于減少了參數(shù)存儲量,與之相關(guān)的梯度、優(yōu)化器狀態(tài)和參數(shù)備份等占用的顯存也會相應(yīng)減少,且共用的權(quán)重矩陣有助于模型學(xué)習(xí)到更穩(wěn)定和通用的 Token 表示,從而提高模型的性能和泛化能力。

五、總結(jié)

通過上述對 DeepSeek-V3 高效訓(xùn)練關(guān)鍵技術(shù)的分析,我們能夠看出,DeepSeek-V3 之所以能夠利用5%的算力訓(xùn)練出對標(biāo) GPT-4o 的先進(jìn)模型,與其創(chuàng)新性的模型架構(gòu)設(shè)計、高效的并行策略選擇以及對集群通信和顯存的極致優(yōu)化密不可分,高效訓(xùn)練方法的表象是需要更少規(guī)模的算力,但其本質(zhì)是對算法創(chuàng)新和極致集群性能的更高要求,所以 DeepSeek-V3 的先進(jìn)經(jīng)驗對于 AI Infra 絕不是利空,反而隨著精細(xì)化的高效訓(xùn)練方法被業(yè)界普遍采用,基于先進(jìn)芯片選型、先進(jìn)架構(gòu)搭建的 AI Infra 的重要性會越發(fā)凸顯,持續(xù)學(xué)習(xí)。

文章轉(zhuǎn)載自: DeepSeek-V3 高效訓(xùn)練關(guān)鍵技術(shù)分析

上一篇:

MuselandAI用戶評測與創(chuàng)新探索

下一篇:

一文徹底講透GPT架構(gòu)及推理原理
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

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

#AI深度推理大模型API

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

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