一、模型架構(gòu)

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

二、并行策略

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

3. 核心價(jià)值

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

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

三、通信優(yōu)化

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

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

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

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


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

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

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

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

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

四、顯存優(yōu)化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

五、總結(jié)

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

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

上一篇:

MuselandAI用戶評(píng)測(cè)與創(chuàng)新探索

下一篇:

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

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

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

查看全部API→
??

熱門場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

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

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

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

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)