最新亚洲人成无码网站,夜夜操夜夜操夜夜爽,中文字日产幕乱五区,在线成人看片黄a免费看,亚洲自偷自拍另类11p

首頁 >> 今日更新 >

DeepSeek-V3 是怎么訓練的|深度拆解

2024-12-30 10:00:05 來源: 用戶: 

相信很多大家對DeepSeek-V3 是怎么訓練的|深度拆解還不知道吧,今天菲菲就帶你們一起去了解一下~.~!

這兩天,DeepSeek-V3低調(diào)發(fā)布,在國際上狠狠秀了一波肌肉:只用了500多萬美金的成本,帶來了不輸 Claude3.5的成績,并開源!

下面,讓我們以更加系統(tǒng)的方式,來看看這次的 DeepSeek-V3,是這么煉成的。本文將從性能、架構、工程、預訓練和后訓練五個緯度來拆解 V3,所用到的圖表、數(shù)據(jù)源于技術報告:《DeepSeek-V3Technical Report》。

公眾號后臺回復:DSV3,獲得詳細報告。

性能

DeepSeek-V3的性能優(yōu)勢,在各項基準測試中得到了充分驗證。

如圖,DeepSeek-V3在 MMLU-Pro、GPQA-Diamond、MATH500、AIME2024、Codeforces (Percentile) 和 SWE-bench Verified 等涵蓋知識理解、邏輯推理、數(shù)學能力、代碼生成以及軟件工程能力等多個維度的權威測試集上,均展現(xiàn)出了領先或極具競爭力的性能。特別是在MATH500和AIME2024這類考察高級數(shù)學推理能力的測試中,DeepSeek-V3的表現(xiàn)尤為突出,大幅超越其他模型。

在與 DeepSeek-V2-Base、Qwen2.572B Base 和 LLaMA-3.1405B Base 等開源基礎模型的對比中,DeepSeek-V3-Base 在 BBH、MMLU 系列、DROP、HumanEval、MBPP、LiveCodeBench-Base、GSM8K、MATH、MGSM、CMath 等幾乎所有任務上均取得最佳成績。

經(jīng)過指令微調(diào)后,DeepSeek-V3的性能進一步提升。在與包括 GPT-4o、Claude-3.5-Sonnet 在內(nèi)的多個頂尖模型的對比中,DeepSeek-V3在 MMLU、MMLU-Redux、DROP、GPQA-Diamond、HumanEval-Mul、LiveCodeBench、Codeforces、AIME2024、MATH-500、CNMO2024、CLUEWSC 等任務上,均展現(xiàn)出與其相當甚至更優(yōu)的性能。

并且,這么棒的數(shù)據(jù),總成本只需要約550萬美金:如果是租 H800來搞這個(但我們都知道,DeepSeek 背后的幻方,最不缺的就是卡)

架構

DeepSeek-V3的這次發(fā)布,伴隨三項創(chuàng)新:Multi-head Latent Attention (MLA)、DeepSeekMoE 架構以及無額外損耗的負載均衡策略。

Multi-head Latent Attention (MLA):高效處理長文本

MLA 通過將 Key (K) 和 Value (V) 聯(lián)合映射至低維潛空間向量 (cKV),顯著降低了 KV Cache 的大小,從而提升了長文本推理的效率。DeepSeek-V3中 MLA 的 KV 壓縮維度 (dc) 設置為512,Query 壓縮維度 (d') 設置為1536,解耦 Key 的頭維度 (dr) 設置為64。這種設計在保證模型性能的同時,大幅減少了顯存占用和計算開銷。

DeepSeekMoE 架構:稀疏激活,高效擴展

DeepSeek-V3采用的 DeepSeekMoE 架構,通過細粒度專家、共享專家和 Top-K 路由策略,實現(xiàn)了模型容量的高效擴展。每個 MoE 層包含1個共享專家和256個路由專家,每個 Token 選擇8個路由專家,最多路由至4個節(jié)點。這種稀疏激活的機制,使得 DeepSeek-V3能夠在不顯著增加計算成本的情況下,擁有龐大的模型容量。

無額外損耗的負載均衡:MoE 的關鍵優(yōu)化

DeepSeek-V3提出了一種創(chuàng)新的無額外損耗負載均衡策略,通過引入并動態(tài)調(diào)整可學習的偏置項 (Bias Term) 來影響路由決策,避免了傳統(tǒng)輔助損失對模型性能的負面影響。該策略的偏置項更新速度 (γ) 在預訓練的前14.3T 個 Token 中設置為0.001,剩余500B 個 Token 中設置為0.0;序列級平衡損失因子 (α) 設置為0.0001。

以上圖(報告第28頁,圖9)中的數(shù)據(jù)為例,使用了該策略的訓練模型在不同領域的專家負載情況,相比于添加了額外負載損失(Aux-Loss-Based)的模型,分工更為明確,這表明該策略能更好地釋放MoE的潛力。

工程

DeepSeek-V3的這次發(fā)布,伴隨多項工程優(yōu)化貫穿了流水線并行、通信優(yōu)化、內(nèi)存管理和低精度訓練等多個方面。

DualPipe 流水線并行:雙向奔赴,消弭氣泡

DeepSeek-V3采用了一種名為DualPipe的創(chuàng)新流水線并行策略。與傳統(tǒng)的單向流水線 (如1F1B) 不同,DualPipe 采用雙向流水線設計,即同時從流水線的兩端饋送 micro-batch。這種設計可以顯著減少流水線氣泡 (Pipeline Bubble),提高 GPU 利用率。

此外,DualPipe 還將每個 micro-batch 進一步劃分為更小的 chunk,并對每個 chunk 的計算和通信進行精細的調(diào)度。通過巧妙地編排計算和通信的順序,實現(xiàn)了兩者的高度重疊。

單個 forward 和 backward chunk 的重疊策略(原報告第12頁)。如圖,如何將一個 chunk 劃分為 attention、all-to-all dispatch、MLP 和 all-to-all combine 等四個組成部分,并通過精細的調(diào)度策略,使得計算和通信可以高度重疊。其中,橙色表示 forward,綠色表示 "backward for input",藍色表示 "backward for weights",紫色表示 PP communication,紅色表示 barriers。

8個 PP rank 和20個 micro-batch 的 DualPipe 調(diào)度示例(原報告第13頁)。通過在8個 PP rank 上,20個 micro-batch 的 DualPipe 調(diào)度情況,可以看到,通過雙向流水線的設計,以及計算和通信的重疊,流水線氣泡被顯著減少,GPU 利用率得到了極大提升。

DualPipe 在流水線氣泡數(shù)量和激活內(nèi)存開銷方面均優(yōu)于1F1B 和 ZeroBubble 等現(xiàn)有方法。(原報告第13頁)

通信優(yōu)化:多管齊下,突破瓶頸

跨節(jié)點 MoE 訓練的一大挑戰(zhàn)是巨大的通信開銷。DeepSeek-V3通過一系列精細的優(yōu)化策略,有效地緩解了這一瓶頸。

節(jié)點限制路由 (Node-Limited Routing):將每個 Token 最多路由到4個節(jié)點,有效限制了跨節(jié)點通信的范圍和規(guī)模。

定制化 All-to-All 通信內(nèi)核:DeepSeek 團隊針對 MoE 架構的特點,定制了高效的跨節(jié)點 All-to-All 通信內(nèi)核。這些內(nèi)核充分利用了 IB 和 NVLink 的帶寬,并最大程度地減少了用于通信的 SM 數(shù)量。

Warp 專業(yè)化 (Warp Specialization):將不同的通信任務 (例如 IB 發(fā)送、IB-to-NVLink 轉(zhuǎn)發(fā)、NVLink 接收等) 分配給不同的 Warp,并根據(jù)實際負載情況動態(tài)調(diào)整每個任務的 Warp 數(shù)量,實現(xiàn)了通信任務的精細化管理和優(yōu)化。

自動調(diào)整通信塊大小:通過自動調(diào)整通信塊的大小,減少了對 L2緩存的依賴,降低了對其他計算內(nèi)核的干擾,進一步提升了通信效率。

內(nèi)存管理:精打細算,極致利用

DeepSeek-V3在內(nèi)存管理方面也做到了極致,通過多種策略最大程度地減少了內(nèi)存占用。

RMSNorm 和 MLA 上投影的重計算 (Recomputation):在反向傳播過程中,DeepSeek-V3會重新計算 RMSNorm 和 MLA 上投影的輸出,而不是將這些中間結(jié)果存儲在顯存中。這種策略雖然會略微增加計算量,但可以顯著降低顯存占用。

CPU 上的 EMA (Exponential Moving Average):DeepSeek-V3將模型參數(shù)的 EMA 存儲在 CPU 內(nèi)存中,并異步更新。這種策略避免了在 GPU 上存儲 EMA 參數(shù)帶來的額外顯存開銷。

共享 Embedding 和 Output Head:在 MTP 模塊中,DeepSeek-V3將 Embedding 層和 Output Head 與主模型共享。這種設計減少了模型的參數(shù)量和內(nèi)存占用。

FP8低精度訓練:精度與效率的平衡

DeepSeek-V3通過 FP8混合精度訓練,在保證模型精度的同時,大幅降低顯存占用并提升訓練速度。

選擇性高精度:對于模型中對精度較為敏感的組件(例如 Embedding、Output Head、MoE Gating、Normalization、Attention 等),DeepSeek-V3仍然采用 BF16或 FP32進行計算,以保證模型的性能。(圖7,來自原報告第15頁)

細粒度量化 (Fine-Grained Quantization):DeepSeek-V3沒有采用傳統(tǒng)的 per-tensor 量化,而是采用了更細粒度的量化策略:對激活值采用1x128tile-wise 量化,對權重采用128x128block-wise 量化。這種策略可以更好地適應數(shù)據(jù)的分布,減少量化誤差。(圖7a,來自原報告第16頁)

提高累加精度:為了減少 FP8計算過程中的精度損失,DeepSeek-V3將 MMA (Matrix Multiply-Accumulate) 操作的中間結(jié)果累加到 FP32寄存器中。(圖7b,來自原報告第16頁)

低精度存儲和通信:為了進一步降低顯存占用和通信開銷,DeepSeek-V3將激活值和優(yōu)化器狀態(tài)以FP8或 BF16格式進行存儲,并在通信過程中也使用這些低精度格式。(圖10,來自原報告第47頁)

預訓練

DeepSeek-V3的訓練策略涵蓋了數(shù)據(jù)構建、分詞其、超參數(shù)設置、長上下文擴展和多 Token 預測等多個方面。

數(shù)據(jù)構建

DeepSeek-V3的預訓練語料庫規(guī)模達到了14.8萬億 Token,這些數(shù)據(jù)經(jīng)過了嚴格的篩選和清洗,以確保其高質(zhì)量和多樣性。相比于前代模型 DeepSeek-V2,新模型的數(shù)據(jù)構建策略更加精細。首先,大幅提升了數(shù)學和編程相關數(shù)據(jù)在整體數(shù)據(jù)中的占比,這直接增強了模型在相關領域的推理能力,使其在 MATH500、AIME2024等數(shù)學基準測試和 HumanEval、LiveCodeBench 等代碼基準測試中表現(xiàn)突出。其次,進一步擴展了多語言數(shù)據(jù)的覆蓋范圍,超越了傳統(tǒng)的英語和中文,提升了模型的多語言處理能力。

為了保證數(shù)據(jù)質(zhì)量,DeepSeek 開發(fā)了一套完善的數(shù)據(jù)處理流程,著重于最小化數(shù)據(jù)冗余,同時保留數(shù)據(jù)的多樣性。此外,他們還借鑒了近期研究 (https://arxiv.org/abs/2404.10830,Ding et al.,2024) 中提出的文檔級打包 (Document Packing)方法,將多個文檔拼接成一個訓練樣本,避免了傳統(tǒng)方法中由于截斷導致的上下文信息丟失,確保模型能夠?qū)W習到更完整的語義信息。

針對代碼數(shù)據(jù),DeepSeek-V3借鑒了 DeepSeekCoder-V2中采用的Fill-in-Middle (FIM)策略,以0.1的比例將代碼數(shù)據(jù)構造成<|fim_begin|> pre<|fim_hole|> suf<|fim_end|> middle<|eos_token|>的形式。這種策略通過“填空”的方式,迫使模型學習代碼的上下文關系,從而提升代碼生成和補全的準確性。

分詞器與詞表:兼顧效率與準確性

DeepSeek-V3采用了基于字節(jié)級 BPE (Byte-level BPE) 的分詞器,并構建了一個包含128K 個 token 的詞表。為了優(yōu)化多語言的壓縮效率,DeepSeek 對預分詞器 (Pretokenizer) 和訓練數(shù)據(jù)進行了專門的調(diào)整。

與 DeepSeek-V2相比,新的預分詞器引入了將標點符號和換行符組合成新 token的機制。這種方法可以提高壓縮率,但也可能在處理不帶換行符的多行輸入 (例如 few-shot 學習的 prompt) 時引入 token 邊界偏差 (Token Boundary Bias) (Lundberg,2023)。為了減輕這種偏差,DeepSeek-V3在訓練過程中以一定概率隨機地將這些組合 token 拆分開來,從而讓模型能夠適應更多樣化的輸入形式,提升了模型的魯棒性。 (下圖來自 Token Boundary Bias 的原文)

模型配置與超參數(shù)

DeepSeek-V3的模型配置和訓練超參數(shù)都經(jīng)過了精心的設計和調(diào)優(yōu),以最大化模型的性能和訓練效率。

模型配置:

DeepSeek-V3的Transformer 層數(shù)設置為61層,隱藏層維度為7168。所有可學習參數(shù)均采用標準差為0.006的隨機初始化。在MLA 結(jié)構中,注意力頭的數(shù)量(nh) 設置為128,每個注意力頭的維度(dh) 為128,KV 壓縮維度(dc) 為512,Query 壓縮維度(d') 為1536,解耦的 Key 頭的維度(dr) 為64。除了前三層之外,其余的 FFN 層均替換為MoE 層。每個MoE 層包含1個共享專家和256個路由專家,每個專家的中間隱藏層維度為2048。每個 Token 會被路由到8個專家,并且最多會被路由到4個節(jié)點。多 Token 預測的深度(D) 設置為1,即除了預測當前 Token 之外,還會額外預測下一個 Token。此外,DeepSeek-V3還在壓縮的潛變量之后添加了額外的 RMSNorm 層,并在寬度瓶頸處乘以了額外的縮放因子。

訓練超參數(shù):

DeepSeek-V3采用了 AdamW 優(yōu)化器,β1設置為0.9,β2設置為0.95,權重衰減系數(shù) (weight_decay) 設置為0.1。最大序列長度設置為4K。學習率方面,采用了組合式的調(diào)度策略:在前2K 步,學習率從0線性增加到2.2×10^-4;然后保持2.2×10^-4的學習率直到模型處理完10T 個 Token;接下來,在4.3T 個 Token 的過程中,學習率按照余弦曲線 (Cosine Decay) 逐漸衰減至2.2×10^-5;在最后的500B 個 Token 中,學習率先保持2.2×10^-5不變 (333B 個 Token),然后切換到一個更小的常數(shù)學習率7.3×10^-6(167B 個 Token)。梯度裁剪的范數(shù)設置為1.0。Batch Size 方面,采用了動態(tài)調(diào)整的策略,在前469B 個 Token 的訓練過程中,Batch Size 從3072逐漸增加到15360,并在之后的訓練中保持15360不變。

為了實現(xiàn) MoE 架構中的負載均衡,DeepSeek-V3采用了無額外損耗的負載均衡策略,并將偏置項的更新速度 (γ) 在預訓練的前14.3T 個 Token 中設置為0.001,在剩余的500B 個 Token 中設置為0.0。序列級平衡損失因子 (α) 設置為0.0001,以避免單個序列內(nèi)的極端不平衡。多 Token 預測 (MTP)損失的權重 (λ) 在前10T 個 Token 中設置為0.3,在剩余的4.8T 個 Token 中設置為0.1。

長上下文擴展與多 Token 預測:錦上添花

為了使 DeepSeek-V3具備處理長文本的能力,DeepSeek采用了兩階段的訓練策略,將模型的上下文窗口從4K 逐步擴展到128K。他們采用了YaRN(Peng et al.,2023a) 技術,并將其應用于解耦的共享 Key (k)。在長上下文擴展階段,DeepSeek-V3的超參數(shù)保持不變:scale 設置為40,β 設置為1,ρ 設置為32,縮放因子設置為0.1ln n +1。

第一階段 (4K ->32K):序列長度設置為32K,Batch Size 設置為1920,學習率設置為7.3×10^-6。

第二階段 (32K ->128K):序列長度設置為128K,Batch Size 設置為480,學習率設置為7.3×10^-6。

上圖(報告第23頁) 的 "Needle In A Haystack" (NIAH) 測試結(jié)果清晰地展示了 DeepSeek-V3在處理長文本方面的卓越能力。

此外,DeepSeek-V3還采用了多 Token 預測 (MTP) 策略(2.2節(jié),第10頁),要求模型在每個位置預測未來的多個 Token,而不僅僅是下一個 Token。圖3(第10頁) 詳細展示了 MTP 的實現(xiàn)方式。

這種策略增強了模型的預見能力,并提供了更豐富的訓練信號,從而提升了訓練效率。表4(第26頁) 的消融實驗結(jié)果證明了 MTP 策略的有效性。

后訓練

DeepSeek-V3的后訓練 (Post-Training) 階段,包括有監(jiān)督微調(diào) (Supervised Fine-Tuning, SFT)和強化學習 (Reinforcement Learning, RL)兩個步驟。

有監(jiān)督微調(diào) (SFT)

SFT 階段,DeepSeek-V3在一個包含1.5M 指令-響應對的高質(zhì)量數(shù)據(jù)集上進行了微調(diào)。該數(shù)據(jù)集涵蓋了多種任務類型和領域,并采用了不同的數(shù)據(jù)構建策略,以最大程度地激發(fā)模型的潛能。

數(shù)據(jù)構建策略

推理數(shù)據(jù) (Reasoning Data):對于數(shù)學、代碼、邏輯推理等需要復雜推理過程的任務,DeepSeek 采用了基于 DeepSeek-R1模型生成的高質(zhì)量推理數(shù)據(jù)。DeepSeek-R1模型在推理任務上表現(xiàn)出色,但其生成的響應往往存在過度推理、格式不規(guī)范、長度過長等問題。為了兼顧 R1模型生成數(shù)據(jù)的高準確性與標準答案的簡潔性,SFT 階段的數(shù)據(jù)構建采用了以下策略:

對于每個問題,生成兩種類型的 SFT 樣本:

在后續(xù)的 RL 階段,模型會利用高溫采樣 (High-Temperature Sampling) 生成多樣化的響應,這些響應會融合 R1生成數(shù)據(jù)和原始數(shù)據(jù)中的模式,即使在沒有明確系統(tǒng)提示的情況下,也能生成高質(zhì)量的響應。

經(jīng)過數(shù)百步的 RL 訓練后,中間的 RL 模型會逐漸學會融入 R1模型的推理模式,從而提升整體性能。

最后,利用訓練完成的 RL 模型進行拒絕采樣 (Rejection Sampling),生成高質(zhì)量的 SFT 數(shù)據(jù),用于最終模型的訓練。

<問題, 原始響應>:將問題與 R1模型生成的原始響應直接配對。

<系統(tǒng)提示, 問題, R1響應>:將問題與 R1模型的響應配對,并在問題前添加一個精心設計的系統(tǒng)提示 (System Prompt)。該系統(tǒng)提示旨在引導模型生成更符合人類偏好的響應,例如更簡潔、更易懂的格式。

表9(第34頁) 展示了從 DeepSeek-R1蒸餾知識對性能的提升。可以看到,在 LiveCodeBench-CoT 和 MATH-500任務上,經(jīng)過 R1蒸餾后,模型的 Pass@1指標分別提升了6.3和8.6個百分點,證明了該策略的有效性。

非推理數(shù)據(jù) (Non-Reasoning Data):對于創(chuàng)意寫作、角色扮演、簡單問答等非推理類任務,則利用 DeepSeek-V2.5生成響應,并由人工進行標注和校驗,以確保數(shù)據(jù)的準確性和可靠性。

訓練細節(jié)

訓練輪數(shù) (Epochs):2

學習率調(diào)度 (Learning Rate Schedule):Cosine 衰減,從5×10^-6逐步降低至1×10^-6。

樣本掩碼 (Sample Masking):為了避免不同樣本之間的相互干擾,SFT 階段采用了樣本掩碼策略,確保每個樣本的訓練都是獨立的。

強化學習 (RL)

為了使 DeepSeek-V3更好地對齊人類偏好,DeepSeek 采用了強化學習 (RL) 技術,并構建了基于規(guī)則的獎勵模型 (Rule-Based RM) 和基于模型的獎勵模型 (Model-Based RM) 相結(jié)合的獎勵機制。

基于規(guī)則的獎勵模型 (Rule-Based RM):對于可以通過明確規(guī)則進行判別的任務 (例如數(shù)學題、編程題),采用基于規(guī)則的獎勵模型。例如,對于數(shù)學題,可以設定規(guī)則檢查最終答案是否正確;對于編程題,可以利用編譯器進行測試用例驗證。這種方式可以提供準確且穩(wěn)定的獎勵信號。

基于模型的獎勵模型 (Model-Based RM):對于難以通過規(guī)則進行判別的任務 (例如開放式問答、創(chuàng)意寫作),則采用基于模型的獎勵模型。該模型基于 DeepSeek-V3SFT 階段的檢查點進行訓練,并采用了一種特殊的訓練數(shù)據(jù)構建方式:

偏好數(shù)據(jù)構建:構建的偏好數(shù)據(jù)不僅包含最終的獎勵值,還包括了得出該獎勵值的思維鏈 (Chain-of-Thought),這有助于提升獎勵模型的可靠性,并減少特定任務上的獎勵“hack”現(xiàn)象。

模型輸入:對于有明確答案的任務,模型輸入為問題和生成的響應;對于沒有明確答案的任務,模型僅輸入問題和對應的響應。

模型判斷:對于有明確答案的任務,模型判斷響應是否與正確答案匹配;對于沒有明確答案的任務,模型根據(jù)問題和響應給出綜合評價。

作為獎勵模型,在 RewardBench 上的表現(xiàn)上,DeepSeek 多個方面超越或持平 GPT-4o 和 Claude-3.5-sonnet。

RL 過程中,DeepSeek-V3采用了 Group Relative Policy Optimization (GRPO) 算法(原報告第30頁) 。與傳統(tǒng)的 PPO 算法不同,GRPO 不需要一個單獨的 Critic 模型來估計 Value 函數(shù),而是通過比較一組樣本的獎勵來估計 Advantage。具體流程如下:

對于每個問題q,從當前的策略模型 π_old 中采樣一組K個響應 {y_1, y_2, ..., y_K}。

利用獎勵模型對每個響應進行評分,得到對應的獎勵 {r_1, r_2, ..., r_K}。

計算每個響應的 Advantage 值:A_i = (r_i - mean(r)) / std(r),其中 mean(r) 和 std(r) 分別表示該組獎勵的均值和標準差。

根據(jù)以下目標函數(shù)更新策略模型 π_θ:

[公式26和27(第30頁)]

其中,π_ref 是參考模型 (通常是 SFT 階段的模型),β 和 ε 是超參數(shù)。

數(shù)據(jù)配比

在后訓練過程中,DeepSeek-V3整合了多種類型的數(shù)據(jù),數(shù)據(jù)來源和配比如下:

數(shù)學推理類數(shù)據(jù):主要來自 DeepSeek-R1模型生成的數(shù)學題解題步驟和邏輯推理過程。這類數(shù)據(jù)在后訓練階段占比約為25%。

代碼生成類數(shù)據(jù):包括了從開源代碼庫中精選的代碼片段,以及利用 DeepSeek-R1模型生成的代碼補全和代碼解釋數(shù)據(jù)。這類數(shù)據(jù)占比約為20%。

通用領域?qū)υ挃?shù)據(jù):涵蓋了開放域問答、創(chuàng)意寫作、角色扮演等多種任務類型,主要利用 DeepSeek-V2.5生成,并經(jīng)過人工校驗。這類數(shù)據(jù)占比約為45%。

安全和倫理類數(shù)據(jù):包含了用于提升模型安全性和符合倫理規(guī)范的指令和響應數(shù)據(jù),占比約為10%。

以上就是關于【DeepSeek-V3 是怎么訓練的|深度拆解】的相關內(nèi)容,希望對大家有幫助!

  免責聲明:本文由用戶上傳,與本網(wǎng)站立場無關。財經(jīng)信息僅供讀者參考,并不構成投資建議。投資者據(jù)此操作,風險自擔。 如有侵權請聯(lián)系刪除!

 
分享:
最新文章