聲明:本文來自于微信公眾號 賽博禪心,作者:賽博禪心,授權(quán)站長之家轉(zhuǎn)載發(fā)布。
這兩天,DeepSeek-V3低調(diào)發(fā)布,在國際上狠狠秀了一波肌肉:只用了500多萬美金的成本,帶來了不輸 Claude3.5的成績,并開源!
下面,讓我們以更加系統(tǒng)的方式,來看看這次的 DeepSeek-V3,是這么煉成的。本文將從性能、架構(gòu)、工程、預(yù)訓(xùn)練和后訓(xùn)練五個緯度來拆解 V3,所用到的圖表、數(shù)據(jù)源于技術(shù)報告:《DeepSeek-V3Technical Report》。
公眾號后臺回復(fù):DSV3,獲得詳細(xì)報告。
性能
DeepSeek-V3的性能優(yōu)勢,在各項基準(zhǔn)測試中得到了充分驗證。
如圖,DeepSeek-V3在 MMLU-Pro、GPQA-Diamond、MATH500、AIME2024、Codeforces (Percentile) 和 SWE-bench Verified 等涵蓋知識理解、邏輯推理、數(shù)學(xué)能力、代碼生成以及軟件工程能力等多個維度的權(quán)威測試集上,均展現(xiàn)出了領(lǐng)先或極具競爭力的性能。特別是在MATH500和AIME2024這類考察高級數(shù)學(xué)推理能力的測試中,DeepSeek-V3的表現(xiàn)尤為突出,大幅超越其他模型。
在與 DeepSeek-V2-Base、Qwen2.572B Base 和 LLaMA-3.1405B Base 等開源基礎(chǔ)模型的對比中,DeepSeek-V3-Base 在 BBH、MMLU 系列、DROP、HumanEval、MBPP、LiveCodeBench-Base、GSM8K、MATH、MGSM、CMath 等幾乎所有任務(wù)上均取得最佳成績。
經(jīng)過指令微調(diào)后,DeepSeek-V3的性能進(jìn)一步提升。在與包括 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 等任務(wù)上,均展現(xiàn)出與其相當(dāng)甚至更優(yōu)的性能。
并且,這么棒的數(shù)據(jù),總成本只需要約550萬美金:如果是租 H800來搞這個(但我們都知道,DeepSeek 背后的幻方,最不缺的就是卡)
架構(gòu)
DeepSeek-V3的這次發(fā)布,伴隨三項創(chuàng)新:Multi-head Latent Attention (MLA)、DeepSeekMoE 架構(gòu)以及無額外損耗的負(fù)載均衡策略。
Multi-head Latent Attention (MLA):高效處理長文本
MLA 通過將 Key (K) 和 Value (V) 聯(lián)合映射至低維潛空間向量 (cKV),顯著降低了 KV Cache 的大小,從而提升了長文本推理的效率。DeepSeek-V3中 MLA 的 KV 壓縮維度 (dc) 設(shè)置為512,Query 壓縮維度 (d') 設(shè)置為1536,解耦 Key 的頭維度 (dr) 設(shè)置為64。這種設(shè)計在保證模型性能的同時,大幅減少了顯存占用和計算開銷。
DeepSeekMoE 架構(gòu):稀疏激活,高效擴(kuò)展
DeepSeek-V3采用的 DeepSeekMoE 架構(gòu),通過細(xì)粒度專家、共享專家和 Top-K 路由策略,實現(xiàn)了模型容量的高效擴(kuò)展。每個 MoE 層包含1個共享專家和256個路由專家,每個 Token 選擇8個路由專家,最多路由至4個節(jié)點。這種稀疏激活的機制,使得 DeepSeek-V3能夠在不顯著增加計算成本的情況下,擁有龐大的模型容量。
無額外損耗的負(fù)載均衡:MoE 的關(guān)鍵優(yōu)化
DeepSeek-V3提出了一種創(chuàng)新的無額外損耗負(fù)載均衡策略,通過引入并動態(tài)調(diào)整可學(xué)習(xí)的偏置項 (Bias Term) 來影響路由決策,避免了傳統(tǒng)輔助損失對模型性能的負(fù)面影響。該策略的偏置項更新速度 (γ) 在預(yù)訓(xùn)練的前14.3T 個 Token 中設(shè)置為0.001,剩余500B 個 Token 中設(shè)置為0.0;序列級平衡損失因子 (α) 設(shè)置為0.0001。
以上圖(報告第28頁,圖9)中的數(shù)據(jù)為例,使用了該策略的訓(xùn)練模型在不同領(lǐng)域的專家負(fù)載情況,相比于添加了額外負(fù)載損失(Aux-Loss-Based)的模型,分工更為明確,這表明該策略能更好地釋放MoE的潛力。
工程
DeepSeek-V3的這次發(fā)布,伴隨多項工程優(yōu)化貫穿了流水線并行、通信優(yōu)化、內(nèi)存管理和低精度訓(xùn)練等多個方面。
DualPipe 流水線并行:雙向奔赴,消弭氣泡
DeepSeek-V3采用了一種名為DualPipe的創(chuàng)新流水線并行策略。與傳統(tǒng)的單向流水線 (如1F1B) 不同,DualPipe 采用雙向流水線設(shè)計,即同時從流水線的兩端饋送 micro-batch。這種設(shè)計可以顯著減少流水線氣泡 (Pipeline Bubble),提高 GPU 利用率。
此外,DualPipe 還將每個 micro-batch 進(jìn)一步劃分為更小的 chunk,并對每個 chunk 的計算和通信進(jìn)行精細(xì)的調(diào)度。通過巧妙地編排計算和通信的順序,實現(xiàn)了兩者的高度重疊。
單個 forward 和 backward chunk 的重疊策略(原報告第12頁)。如圖,如何將一個 chunk 劃分為 attention、all-to-all dispatch、MLP 和 all-to-all combine 等四個組成部分,并通過精細(xì)的調(diào)度策略,使得計算和通信可以高度重疊。其中,橙色表示 forward,綠色表示 "backward for input",藍(lán)色表示 "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)度情況,可以看到,通過雙向流水線的設(shè)計,以及計算和通信的重疊,流水線氣泡被顯著減少,GPU 利用率得到了極大提升。
DualPipe 在流水線氣泡數(shù)量和激活內(nèi)存開銷方面均優(yōu)于1F1B 和 ZeroBubble 等現(xiàn)有方法。(原報告第13頁)
通信優(yōu)化:多管齊下,突破瓶頸
跨節(jié)點 MoE 訓(xùn)練的一大挑戰(zhàn)是巨大的通信開銷。DeepSeek-V3通過一系列精細(xì)的優(yōu)化策略,有效地緩解了這一瓶頸。
節(jié)點限制路由 (Node-Limited Routing):將每個 Token 最多路由到4個節(jié)點,有效限制了跨節(jié)點通信的范圍和規(guī)模。
定制化 All-to-All 通信內(nèi)核:DeepSeek 團(tuán)隊針對 MoE 架構(gòu)的特點,定制了高效的跨節(jié)點 All-to-All 通信內(nèi)核。這些內(nèi)核充分利用了 IB 和 NVLink 的帶寬,并最大程度地減少了用于通信的 SM 數(shù)量。
Warp 專業(yè)化 (Warp Specialization):將不同的通信任務(wù) (例如 IB 發(fā)送、IB-to-NVLink 轉(zhuǎn)發(fā)、NVLink 接收等) 分配給不同的 Warp,并根據(jù)實際負(fù)載情況動態(tài)調(diào)整每個任務(wù)的 Warp 數(shù)量,實現(xiàn)了通信任務(wù)的精細(xì)化管理和優(yōu)化。
自動調(diào)整通信塊大小:通過自動調(diào)整通信塊的大小,減少了對 L2緩存的依賴,降低了對其他計算內(nèi)核的干擾,進(jìn)一步提升了通信效率。
內(nèi)存管理:精打細(xì)算,極致利用
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è)計減少了模型的參數(shù)量和內(nèi)存占用。
FP8低精度訓(xùn)練:精度與效率的平衡
DeepSeek-V3通過 FP8混合精度訓(xùn)練,在保證模型精度的同時,大幅降低顯存占用并提升訓(xùn)練速度。
選擇性高精度:對于模型中對精度較為敏感的組件(例如 Embedding、Output Head、MoE Gating、Normalization、Attention 等),DeepSeek-V3仍然采用 BF16或 FP32進(jìn)行計算,以保證模型的性能。(圖7,來自原報告第15頁)
細(xì)粒度量化 (Fine-Grained Quantization):DeepSeek-V3沒有采用傳統(tǒng)的 per-tensor 量化,而是采用了更細(xì)粒度的量化策略:對激活值采用1x128tile-wise 量化,對權(quán)重采用128x128block-wise 量化。這種策略可以更好地適應(yīng)數(shù)據(jù)的分布,減少量化誤差。(圖7a,來自原報告第16頁)
提高累加精度:為了減少 FP8計算過程中的精度損失,DeepSeek-V3將 MMA (Matrix Multiply-Accumulate) 操作的中間結(jié)果累加到 FP32寄存器中。(圖7b,來自原報告第16頁)
低精度存儲和通信:為了進(jìn)一步降低顯存占用和通信開銷,DeepSeek-V3將激活值和優(yōu)化器狀態(tài)以FP8或 BF16格式進(jìn)行存儲,并在通信過程中也使用這些低精度格式。(圖10,來自原報告第47頁)
預(yù)訓(xùn)練
DeepSeek-V3的訓(xùn)練策略涵蓋了數(shù)據(jù)構(gòu)建、分詞其、超參數(shù)設(shè)置、長上下文擴(kuò)展和多 Token 預(yù)測等多個方面。
數(shù)據(jù)構(gòu)建
DeepSeek-V3的預(yù)訓(xùn)練語料庫規(guī)模達(dá)到了14.8萬億 Token,這些數(shù)據(jù)經(jīng)過了嚴(yán)格的篩選和清洗,以確保其高質(zhì)量和多樣性。相比于前代模型 DeepSeek-V2,新模型的數(shù)據(jù)構(gòu)建策略更加精細(xì)。首先,大幅提升了數(shù)學(xué)和編程相關(guān)數(shù)據(jù)在整體數(shù)據(jù)中的占比,這直接增強了模型在相關(guān)領(lǐng)域的推理能力,使其在 MATH500、AIME2024等數(shù)學(xué)基準(zhǔn)測試和 HumanEval、LiveCodeBench 等代碼基準(zhǔn)測試中表現(xiàn)突出。其次,進(jìn)一步擴(kuò)展了多語言數(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)方法,將多個文檔拼接成一個訓(xùn)練樣本,避免了傳統(tǒng)方法中由于截斷導(dǎo)致的上下文信息丟失,確保模型能夠?qū)W習(xí)到更完整的語義信息。
針對代碼數(shù)據(jù),DeepSeek-V3借鑒了 DeepSeekCoder-V2中采用的Fill-in-Middle (FIM)策略,以0.1的比例將代碼數(shù)據(jù)構(gòu)造成<|fim_begin|> pre<|fim_hole|> suf<|fim_end|> middle<|eos_token|>的形式。這種策略通過“填空”的方式,迫使模型學(xué)習(xí)代碼的上下文關(guān)系,從而提升代碼生成和補全的準(zhǔn)確性。
分詞器與詞表:兼顧效率與準(zhǔn)確性
DeepSeek-V3采用了基于字節(jié)級 BPE (Byte-level BPE) 的分詞器,并構(gòu)建了一個包含128K 個 token 的詞表。為了優(yōu)化多語言的壓縮效率,DeepSeek 對預(yù)分詞器 (Pretokenizer) 和訓(xùn)練數(shù)據(jù)進(jìn)行了專門的調(diào)整。
與 DeepSeek-V2相比,新的預(yù)分詞器引入了將標(biāo)點符號和換行符組合成新 token的機制。這種方法可以提高壓縮率,但也可能在處理不帶換行符的多行輸入 (例如 few-shot 學(xué)習(xí)的 prompt) 時引入 token 邊界偏差 (Token Boundary Bias) (Lundberg,2023)。為了減輕這種偏差,DeepSeek-V3在訓(xùn)練過程中以一定概率隨機地將這些組合 token 拆分開來,從而讓模型能夠適應(yīng)更多樣化的輸入形式,提升了模型的魯棒性。 (下圖來自 Token Boundary Bias 的原文)
模型配置與超參數(shù)
DeepSeek-V3的模型配置和訓(xùn)練超參數(shù)都經(jīng)過了精心的設(shè)計和調(diào)優(yōu),以最大化模型的性能和訓(xùn)練效率。
模型配置:
DeepSeek-V3的Transformer 層數(shù)設(shè)置為61層,隱藏層維度為7168。所有可學(xué)習(xí)參數(shù)均采用標(biāo)準(zhǔn)差為0.006的隨機初始化。在MLA 結(jié)構(gòu)中,注意力頭的數(shù)量(nh) 設(shè)置為128,每個注意力頭的維度(dh) 為128,KV 壓縮維度(dc) 為512,Query 壓縮維度(d') 為1536,解耦的 Key 頭的維度(dr) 為64。除了前三層之外,其余的 FFN 層均替換為MoE 層。每個MoE 層包含1個共享專家和256個路由專家,每個專家的中間隱藏層維度為2048。每個 Token 會被路由到8個專家,并且最多會被路由到4個節(jié)點。多 Token 預(yù)測的深度(D) 設(shè)置為1,即除了預(yù)測當(dāng)前 Token 之外,還會額外預(yù)測下一個 Token。此外,DeepSeek-V3還在壓縮的潛變量之后添加了額外的 RMSNorm 層,并在寬度瓶頸處乘以了額外的縮放因子。
訓(xùn)練超參數(shù):
DeepSeek-V3采用了 AdamW 優(yōu)化器,β1設(shè)置為0.9,β2設(shè)置為0.95,權(quán)重衰減系數(shù) (weight_decay) 設(shè)置為0.1。最大序列長度設(shè)置為4K。學(xué)習(xí)率方面,采用了組合式的調(diào)度策略:在前2K 步,學(xué)習(xí)率從0線性增加到2.2×10^-4;然后保持2.2×10^-4的學(xué)習(xí)率直到模型處理完10T 個 Token;接下來,在4.3T 個 Token 的過程中,學(xué)習(xí)率按照余弦曲線 (Cosine Decay) 逐漸衰減至2.2×10^-5;在最后的500B 個 Token 中,學(xué)習(xí)率先保持2.2×10^-5不變 (333B 個 Token),然后切換到一個更小的常數(shù)學(xué)習(xí)率7.3×10^-6(167B 個 Token)。梯度裁剪的范數(shù)設(shè)置為1.0。Batch Size 方面,采用了動態(tài)調(diào)整的策略,在前469B 個 Token 的訓(xùn)練過程中,Batch Size 從3072逐漸增加到15360,并在之后的訓(xùn)練中保持15360不變。
為了實現(xiàn) MoE 架構(gòu)中的負(fù)載均衡,DeepSeek-V3采用了無額外損耗的負(fù)載均衡策略,并將偏置項的更新速度 (γ) 在預(yù)訓(xùn)練的前14.3T 個 Token 中設(shè)置為0.001,在剩余的500B 個 Token 中設(shè)置為0.0。序列級平衡損失因子 (α) 設(shè)置為0.0001,以避免單個序列內(nèi)的極端不平衡。多 Token 預(yù)測 (MTP)損失的權(quán)重 (λ) 在前10T 個 Token 中設(shè)置為0.3,在剩余的4.8T 個 Token 中設(shè)置為0.1。
長上下文擴(kuò)展與多 Token 預(yù)測:錦上添花
為了使 DeepSeek-V3具備處理長文本的能力,DeepSeek采用了兩階段的訓(xùn)練策略,將模型的上下文窗口從4K 逐步擴(kuò)展到128K。他們采用了YaRN(Peng et al.,2023a) 技術(shù),并將其應(yīng)用于解耦的共享 Key (k)。在長上下文擴(kuò)展階段,DeepSeek-V3的超參數(shù)保持不變:scale 設(shè)置為40,β 設(shè)置為1,ρ 設(shè)置為32,縮放因子設(shè)置為0.1ln n +1。
第一階段 (4K ->32K):序列長度設(shè)置為32K,Batch Size 設(shè)置為1920,學(xué)習(xí)率設(shè)置為7.3×10^-6。
第二階段 (32K ->128K):序列長度設(shè)置為128K,Batch Size 設(shè)置為480,學(xué)習(xí)率設(shè)置為7.3×10^-6。
上圖(報告第23頁) 的 "Needle In A Haystack" (NIAH) 測試結(jié)果清晰地展示了 DeepSeek-V3在處理長文本方面的卓越能力。
此外,DeepSeek-V3還采用了多 Token 預(yù)測 (MTP) 策略(2.2節(jié),第10頁),要求模型在每個位置預(yù)測未來的多個 Token,而不僅僅是下一個 Token。圖3(第10頁) 詳細(xì)展示了 MTP 的實現(xiàn)方式。
這種策略增強了模型的預(yù)見能力,并提供了更豐富的訓(xùn)練信號,從而提升了訓(xùn)練效率。表4(第26頁) 的消融實驗結(jié)果證明了 MTP 策略的有效性。
后訓(xùn)練
DeepSeek-V3的后訓(xùn)練 (Post-Training) 階段,包括有監(jiān)督微調(diào) (Supervised Fine-Tuning, SFT)和強化學(xué)習(xí) (Reinforcement Learning, RL)兩個步驟。
有監(jiān)督微調(diào) (SFT)
SFT 階段,DeepSeek-V3在一個包含1.5M 指令-響應(yīng)對的高質(zhì)量數(shù)據(jù)集上進(jìn)行了微調(diào)。該數(shù)據(jù)集涵蓋了多種任務(wù)類型和領(lǐng)域,并采用了不同的數(shù)據(jù)構(gòu)建策略,以最大程度地激發(fā)模型的潛能。
數(shù)據(jù)構(gòu)建策略
推理數(shù)據(jù) (Reasoning Data):對于數(shù)學(xué)、代碼、邏輯推理等需要復(fù)雜推理過程的任務(wù),DeepSeek 采用了基于 DeepSeek-R1模型生成的高質(zhì)量推理數(shù)據(jù)。DeepSeek-R1模型在推理任務(wù)上表現(xiàn)出色,但其生成的響應(yīng)往往存在過度推理、格式不規(guī)范、長度過長等問題。為了兼顧 R1模型生成數(shù)據(jù)的高準(zhǔn)確性與標(biāo)準(zhǔn)答案的簡潔性,SFT 階段的數(shù)據(jù)構(gòu)建采用了以下策略:
對于每個問題,生成兩種類型的 SFT 樣本:
在后續(xù)的 RL 階段,模型會利用高溫采樣 (High-Temperature Sampling) 生成多樣化的響應(yīng),這些響應(yīng)會融合 R1生成數(shù)據(jù)和原始數(shù)據(jù)中的模式,即使在沒有明確系統(tǒng)提示的情況下,也能生成高質(zhì)量的響應(yīng)。
經(jīng)過數(shù)百步的 RL 訓(xùn)練后,中間的 RL 模型會逐漸學(xué)會融入 R1模型的推理模式,從而提升整體性能。
最后,利用訓(xùn)練完成的 RL 模型進(jìn)行拒絕采樣 (Rejection Sampling),生成高質(zhì)量的 SFT 數(shù)據(jù),用于最終模型的訓(xùn)練。
<問題, 原始響應(yīng)>:將問題與 R1模型生成的原始響應(yīng)直接配對。
<系統(tǒng)提示, 問題, R1響應(yīng)>:將問題與 R1模型的響應(yīng)配對,并在問題前添加一個精心設(shè)計的系統(tǒng)提示 (System Prompt)。該系統(tǒng)提示旨在引導(dǎo)模型生成更符合人類偏好的響應(yīng),例如更簡潔、更易懂的格式。
表9(第34頁) 展示了從 DeepSeek-R1蒸餾知識對性能的提升??梢钥吹?,在 LiveCodeBench-CoT 和 MATH-500任務(wù)上,經(jīng)過 R1蒸餾后,模型的 Pass@1指標(biāo)分別提升了6.3和8.6個百分點,證明了該策略的有效性。
非推理數(shù)據(jù) (Non-Reasoning Data):對于創(chuàng)意寫作、角色扮演、簡單問答等非推理類任務(wù),則利用 DeepSeek-V2.5生成響應(yīng),并由人工進(jìn)行標(biāo)注和校驗,以確保數(shù)據(jù)的準(zhǔn)確性和可靠性。
訓(xùn)練細(xì)節(jié)
訓(xùn)練輪數(shù) (Epochs):2
學(xué)習(xí)率調(diào)度 (Learning Rate Schedule):Cosine 衰減,從5×10^-6逐步降低至1×10^-6。
樣本掩碼 (Sample Masking):為了避免不同樣本之間的相互干擾,SFT 階段采用了樣本掩碼策略,確保每個樣本的訓(xùn)練都是獨立的。
強化學(xué)習(xí) (RL)
為了使 DeepSeek-V3更好地對齊人類偏好,DeepSeek 采用了強化學(xué)習(xí) (RL) 技術(shù),并構(gòu)建了基于規(guī)則的獎勵模型 (Rule-Based RM) 和基于模型的獎勵模型 (Model-Based RM) 相結(jié)合的獎勵機制。
基于規(guī)則的獎勵模型 (Rule-Based RM):對于可以通過明確規(guī)則進(jìn)行判別的任務(wù) (例如數(shù)學(xué)題、編程題),采用基于規(guī)則的獎勵模型。例如,對于數(shù)學(xué)題,可以設(shè)定規(guī)則檢查最終答案是否正確;對于編程題,可以利用編譯器進(jìn)行測試用例驗證。這種方式可以提供準(zhǔn)確且穩(wěn)定的獎勵信號。
基于模型的獎勵模型 (Model-Based RM):對于難以通過規(guī)則進(jìn)行判別的任務(wù) (例如開放式問答、創(chuàng)意寫作),則采用基于模型的獎勵模型。該模型基于 DeepSeek-V3SFT 階段的檢查點進(jìn)行訓(xùn)練,并采用了一種特殊的訓(xùn)練數(shù)據(jù)構(gòu)建方式:
偏好數(shù)據(jù)構(gòu)建:構(gòu)建的偏好數(shù)據(jù)不僅包含最終的獎勵值,還包括了得出該獎勵值的思維鏈 (Chain-of-Thought),這有助于提升獎勵模型的可靠性,并減少特定任務(wù)上的獎勵“hack”現(xiàn)象。
模型輸入:對于有明確答案的任務(wù),模型輸入為問題和生成的響應(yīng);對于沒有明確答案的任務(wù),模型僅輸入問題和對應(yīng)的響應(yīng)。
模型判斷:對于有明確答案的任務(wù),模型判斷響應(yīng)是否與正確答案匹配;對于沒有明確答案的任務(wù),模型根據(jù)問題和響應(yīng)給出綜合評價。
作為獎勵模型,在 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,從當(dāng)前的策略模型 π_old 中采樣一組K個響應(yīng) {y_1, y_2, ..., y_K}。
利用獎勵模型對每個響應(yīng)進(jìn)行評分,得到對應(yīng)的獎勵 {r_1, r_2, ..., r_K}。
計算每個響應(yīng)的 Advantage 值:A_i = (r_i - mean(r)) / std(r),其中 mean(r) 和 std(r) 分別表示該組獎勵的均值和標(biāo)準(zhǔn)差。
根據(jù)以下目標(biāo)函數(shù)更新策略模型 π_θ:
[公式26和27(第30頁)]
其中,π_ref 是參考模型 (通常是 SFT 階段的模型),β 和 ε 是超參數(shù)。
數(shù)據(jù)配比
在后訓(xùn)練過程中,DeepSeek-V3整合了多種類型的數(shù)據(jù),數(shù)據(jù)來源和配比如下:
數(shù)學(xué)推理類數(shù)據(jù):主要來自 DeepSeek-R1模型生成的數(shù)學(xué)題解題步驟和邏輯推理過程。這類數(shù)據(jù)在后訓(xùn)練階段占比約為25%。
代碼生成類數(shù)據(jù):包括了從開源代碼庫中精選的代碼片段,以及利用 DeepSeek-R1模型生成的代碼補全和代碼解釋數(shù)據(jù)。這類數(shù)據(jù)占比約為20%。
通用領(lǐng)域?qū)υ挃?shù)據(jù):涵蓋了開放域問答、創(chuàng)意寫作、角色扮演等多種任務(wù)類型,主要利用 DeepSeek-V2.5生成,并經(jīng)過人工校驗。這類數(shù)據(jù)占比約為45%。
安全和倫理類數(shù)據(jù):包含了用于提升模型安全性和符合倫理規(guī)范的指令和響應(yīng)數(shù)據(jù),占比約為10%。
(舉報)