自己建網(wǎng)站教程北京網(wǎng)站推廣公司
DeepSeek
v1版本
模型結(jié)構(gòu)
DeepSeek LLM基本上遵循LLaMA的設(shè)計(jì):
采?Pre-Norm結(jié)構(gòu),并使?RMSNorm函數(shù).
利?SwiGLU作為Feed-Forward Network(FFN)的激活函數(shù),中間層維度為8/3. 去除絕對位置編碼,采?了RoPE旋轉(zhuǎn)位置編碼。
為了優(yōu)化推理成本. 67B模型使?分組查詢注意?(GQA)?不是傳統(tǒng)的多頭注意?(MHA).
超參數(shù)設(shè)置
優(yōu)化器:采?adamW優(yōu)化器, β1=0.9, β2=0.95 ,weight_decay為0.1。
學(xué)習(xí)率策略:與Llama使?余弦學(xué)習(xí)率調(diào)度器不同,其采?的是多階段學(xué)習(xí)率調(diào)度器。該策略通過 “預(yù)熱-穩(wěn)態(tài)-分階衰減” 的耦合設(shè)計(jì),兼顧訓(xùn)練穩(wěn)定性、收斂效率與泛化性能。
預(yù)熱階段(0~2000步): 學(xué)習(xí)率從較?初始值線性增??峰值(如3e-4),通過漸進(jìn) 式升溫避免訓(xùn)練初期因梯度劇烈波動(dòng)導(dǎo)致的權(quán)重震蕩,為模型提供穩(wěn)定的初始化環(huán)境。
穩(wěn)定收斂階段(2000步后?總訓(xùn)練token的80%): 學(xué)習(xí)率保持峰值恒定,使模型在核 ?訓(xùn)練周期內(nèi)充分利??學(xué)習(xí)率的快速收斂能?,同時(shí)配合梯度截?cái)?#xff08;clip=1.0) 約束 梯度幅值,防?梯度爆炸并提升訓(xùn)練穩(wěn)定性。
分步退?階段(總訓(xùn)練token的80%~100%):
第?階段退?(80%~90% token):學(xué)習(xí)率從峰值線性降?31.6%(如3e-4 → 9.48e-5),開始細(xì)化模型權(quán)重;
第?階段退?(90%~100% token):學(xué)習(xí)率進(jìn)?步降?峰值的10%(如9.48e 5 → 3e-5),通過低速微調(diào)抑制過擬合?險(xiǎn),促使模型收斂?更平坦的極?值區(qū) 域。
其他
作者還對DeepSeek LLM基礎(chǔ)模型進(jìn)?了SFT和直接偏好優(yōu)化(DPO),從?創(chuàng)建了DeepSeek Chat模 型。與GPT-3.5相?,DeepSeek LLM 67B Chat表現(xiàn)出更優(yōu)越的性能。
DeepSeek Math
DeepSeekMath可以被看作是使?與DeepSeek LLM相同的模型架構(gòu),通過兩階段訓(xùn)練逐步優(yōu)化?來的模型,是專注于數(shù)學(xué)推理任務(wù)的模型。
第?階段:在特定的數(shù)據(jù)集上使?DeepSeek LLM相同的模型架構(gòu)進(jìn)?預(yù)訓(xùn)練,得到專注于代碼? 成與理解的DeepSeek-Coder-Base-v1.5;
第?階段:在DeepSeek-Coder-Base-v1.5基礎(chǔ)上,進(jìn)?步對與數(shù)學(xué)相關(guān)的任務(wù)和數(shù)據(jù)進(jìn)?專?的 預(yù)訓(xùn)練和微調(diào)(例如,?等數(shù)學(xué)、數(shù)學(xué)證明、符號計(jì)算等)。這個(gè)過程中,模型可能會(huì)結(jié)合代碼與 數(shù)學(xué)推理能?,使其在處理數(shù)學(xué)公式、復(fù)雜計(jì)算和邏輯推理任務(wù)上表現(xiàn)更優(yōu)。DeepSeekMath的 創(chuàng)新在于強(qiáng)化學(xué)習(xí)階段引?了Group Relative Policy Optimization (GRPO) 算法,進(jìn)?步提升了多 任務(wù)處理和推理能?。
PPO
SFT
在有標(biāo)注的數(shù)據(jù)上進(jìn)行模型的微調(diào),使得模型適應(yīng)特定的任務(wù),即:構(gòu)建SFT模型
①數(shù)據(jù)收集: 選擇一個(gè)問題列表, 標(biāo)注人員按要求寫下預(yù)期的輸出. 可用于調(diào)優(yōu)預(yù)訓(xùn)練的語言模型.
②模型選擇: 基線模型是最新版的 text-davinci-003(通過對程序代碼調(diào)優(yōu)的 GPT-3 模型)
由于此步驟的數(shù)據(jù)量有限, 該過程獲得的 SFT 模型可能會(huì)輸出仍然并非用戶關(guān)注的文本, 并且通常會(huì)出現(xiàn)不一致問題.
為了克服這個(gè)問題, 使用的策略是讓人工標(biāo)注者對 SFT 模型的不同輸出進(jìn)行排序,我們關(guān)注哪個(gè)輸出是最好的,進(jìn)而提出 RM 模型, 而不是讓人工標(biāo)注者創(chuàng)建一個(gè)更大的精選數(shù)據(jù)集.
RM
構(gòu)建判斷SFT模型的輸出是否滿足人類預(yù)期的獎(jiǎng)勵(lì)模型
選擇問題列表, SFT 模型為每個(gè)問題生成多個(gè)輸出(4 到 9 之間的任意值)
標(biāo)注者將輸出從最佳到最差排序. 結(jié)果是一個(gè)新的標(biāo)簽數(shù)據(jù)集, 該數(shù)據(jù)集的大小大約是用于 SFT 模型的精確數(shù)據(jù)集的 10 倍;
此新數(shù)據(jù)用于訓(xùn)練 RM 模型 . 該模型將 SFT 模型輸出作為輸入, 并按優(yōu)先順序?qū)λ鼈冞M(jìn)行排序.
模型選擇: RM模型是GPT-3的蒸餾版本(參數(shù)量為6億), 目的是通過該訓(xùn)練模型得到一個(gè)預(yù)測值(得分), 模型損失函數(shù)為下圖表示:
PPO
用SFT模型初始化參考模型(防止模型訓(xùn)歪),和Action模型(最后需要的模型,用于生成符合人類預(yù)期內(nèi)容的模型),用RM模型初始化獎(jiǎng)勵(lì)模型(當(dāng)前狀態(tài)下做出動(dòng)作后的獎(jiǎng)勵(lì))和Critic模型(做出當(dāng)前動(dòng)作后下一步可能獲得的獎(jiǎng)勵(lì)),并切在獎(jiǎng)勵(lì)中增加優(yōu)勢,包含當(dāng)前優(yōu)勢和下一步優(yōu)勢(中路走野區(qū)支援上路,原本可以收割一個(gè)人頭,但實(shí)際收割了兩個(gè),多出的人頭就是優(yōu)勢)
在訓(xùn)練過程中凍結(jié)參考模型和獎(jiǎng)勵(lì)模型的參數(shù),只更新Action模型和Critic模型的參數(shù)
GRPO
對比PPO,GRPO去除了Critic模型,對于同?個(gè) prompt 采 G 個(gè)答案,平均 G 個(gè)答案的得分當(dāng)作 baseline
GRPO?法主要包含以下五個(gè)步驟:
采樣:對于每個(gè)問題,GRPO從舊策略模型中采樣?組輸出。
獎(jiǎng)勵(lì)計(jì)算:使?獎(jiǎng)勵(lì)模型為每個(gè)采樣輸出打分,得到?組獎(jiǎng)勵(lì)。
基線估計(jì):將這些獎(jiǎng)勵(lì)進(jìn)?歸?化處理(減去組平均值,除以組標(biāo)準(zhǔn)差),然后使?歸?化的獎(jiǎng)勵(lì) 作為基線。
優(yōu)化?標(biāo):GRPO通過最?化?個(gè)包含相對優(yōu)勢的優(yōu)化?標(biāo)函數(shù)來更新策略模型。相對優(yōu)勢是指在 同?組中,各個(gè)輸出相對于基線的優(yōu)勢。
迭代訓(xùn)練:GRPO可以進(jìn)?迭代訓(xùn)練,其中獎(jiǎng)勵(lì)模型會(huì)根據(jù)策略模型的新采樣結(jié)果不斷更新,以提 供更準(zhǔn)確的訓(xùn)練信號。
DeepSeekV2
在 DeepSeek 67B的基礎(chǔ)上,DeepSeek-V2 對模型進(jìn)?了進(jìn)?步優(yōu)化,在注意?機(jī)制模塊和FFN上,設(shè) 計(jì)并采?了創(chuàng)新的架構(gòu)。
-
注意?模塊采?MLA,減少了推理過程中的KV Cache,提?了推理效率??梢匀菁{更?的batch和 更?的句?。
-
采?了sparse MOE結(jié)構(gòu),模型的訓(xùn)練效率更?。
MLA
GQA和MQA的實(shí)現(xiàn)?式,在于直接減少需要存儲(chǔ)的Key和Value,Key和Value都不再是【多頭】。 GQA通過Group的?式,多個(gè)Query組成?個(gè)Group對應(yīng)?個(gè)Key和Value;MQA直接由多個(gè)head 的Key和Value,變?yōu)閱蝹€(gè)Key和Value,即多頭的維度只保留在Query中。
MLA采?了另外?種思路,類似于LORA的低秩轉(zhuǎn)換的思路,不再直接減少Cache的Key和Value的 數(shù)量,?是通過【低秩】轉(zhuǎn)換為?個(gè)壓縮的KV,存儲(chǔ)的KV的維度顯著減?。同時(shí)在計(jì)算注意? 時(shí),通過projection的?式獲取多頭的Key和Value,保留了多頭的注意?計(jì)算?式。
MLA相?MQA和GQA(在明顯降低緩存的同時(shí),效果相?MHA還更好。MQA和GQA相?MHA,雖然 降低了KV Cache,但效果不如MHA。
MOE
-
細(xì)粒度專家分割(Fine-Grained Expert Segmentation):通過將每個(gè)FFN專家進(jìn)?步細(xì)分,這 允許模型在保持參數(shù)總數(shù)不變的情況下,激活更多的、更細(xì)粒度的專家。這種策略使得各個(gè)專家能 夠?qū)W⒂诟?xì)致的知識(shí)領(lǐng)域,提?了專家的專業(yè)化程度。(通過將FFN中間隱藏維度減少到原來? ?的1/m,將每個(gè)專家FFN分割為m個(gè)更?的專家。)
-
共享專家隔離(Shared Expert Isolation):設(shè)置?部分專家作為“共享專家”,這些專家總是被 激活,?于捕捉和整合常?的跨上下?知識(shí)。這樣可以減少路由專家之間的知識(shí)冗余,每個(gè)路由專 家可以更專注于獨(dú)特的知識(shí)領(lǐng)域。
改進(jìn)傳統(tǒng)的MOE存在的知識(shí)雜糅和知識(shí)冗余的問題
-
知識(shí)雜糅(Knowledge Hybridity):傳統(tǒng)的MoE模型中,每個(gè)專家往往需要處理多種類型的知 識(shí),這使得專家難以形成專?化的知識(shí)結(jié)構(gòu)。
-
知識(shí)冗余(Knowledge Redundancy):不同的專家在處理不同的輸?時(shí)可能需要相同的知識(shí), 導(dǎo)致多個(gè)專家中存在重復(fù)的知識(shí),浪費(fèi)了模型參數(shù)。
DeepSeekV3
無輔助損失的負(fù)載均衡策略
?輔助損失的負(fù)載均衡策略,相對?較簡單,就是進(jìn)?TopK運(yùn)算的時(shí)候添加了?個(gè)額外的偏置項(xiàng) 來調(diào)節(jié)路由專家被選擇到的概率
Multi-Token Prediction
舉例:
一個(gè)序列有10個(gè)token,主模型由前3個(gè)token(1,2,3)預(yù)測第4個(gè)token(2,3,4),在預(yù)測時(shí),將經(jīng)過解碼器層后的輸出和第一個(gè)MTP的輸入(2,3,4)經(jīng)過embedding后的結(jié)果拼接送入,預(yù)測(3, 4, 5),以此類推,直到預(yù)測到最后一個(gè)token
這?的訓(xùn)練損失就是預(yù)測的token序列和真實(shí)token序列的[交叉熵]損失;以上策略是?來提升主模 型的性能的,也就是說所有的MTP塊是不參與推理的,所以在推理時(shí),?模型做的仍然是?個(gè) Next-token Prediction的?作,且只有主模型在?作。
DeepSeekR1
冷啟動(dòng):與DeepSeek - R1 - Zero不同,DeepSeek - R1構(gòu)建并收集少量?思維鏈(CoT)數(shù)據(jù)對 DeepSeek - V3 - Base模型進(jìn)?微調(diào),作為RL的初始階段。這些冷啟動(dòng)數(shù)據(jù)格式更具可讀性,包含 推理過程總結(jié),基于?類先驗(yàn)知識(shí)設(shè)計(jì)模式,相?DeepSeek - R1 - Zero表現(xiàn)更優(yōu)。
推理導(dǎo)向的強(qiáng)化學(xué)習(xí):在冷啟動(dòng)微調(diào)后的模型上,采?與DeepSeek - R1 - Zero相同的?規(guī)模RL訓(xùn) 練過程。針對語?混合問題,引?語??致性獎(jiǎng)勵(lì),將推理任務(wù)準(zhǔn)確性和語??致性獎(jiǎng)勵(lì)結(jié)合,優(yōu) 化模型表現(xiàn),使其更符合?類偏好。
拒絕采樣和監(jiān)督微調(diào):推理導(dǎo)向的RL收斂后,利?模型檢查點(diǎn)收集監(jiān)督微調(diào)(SFT)數(shù)據(jù)。推理數(shù) 據(jù)通過拒絕采樣?成,擴(kuò)?數(shù)據(jù)集并納??成式獎(jiǎng)勵(lì)模型評估的數(shù)據(jù),同時(shí)過濾掉混亂和不可讀的 輸出。?推理數(shù)據(jù)復(fù)?DeepSeek - V3的部分SFT數(shù)據(jù)集,涵蓋寫作、事實(shí)問答等領(lǐng)域。?約800k 樣本對模型進(jìn)?兩個(gè)epoch的微調(diào)。
LLM 的拒絕采樣操作起來?常簡單:讓??的模型針對 prompt ?成多個(gè)候選 response, 然后? reward_model篩選出來?質(zhì)量的 response (也可以是 pair 對),拿來再次進(jìn)?訓(xùn) 練。
全場景強(qiáng)化學(xué)習(xí):為使模型更符合?類偏好,進(jìn)??次RL。推理數(shù)據(jù)采?基于規(guī)則的獎(jiǎng)勵(lì),通? 數(shù)據(jù)使?獎(jiǎng)勵(lì)模型捕捉?類偏好。分別從最終總結(jié)和整個(gè)響應(yīng)評估模型的有?性和?害性,確保模 型在推理能?提升的同時(shí),更安全、更實(shí)?。
總結(jié):
初始階段采?數(shù)千個(gè)?品質(zhì)樣本進(jìn)?監(jiān)督式微調(diào)
針對推理任務(wù)進(jìn)?強(qiáng)化學(xué)習(xí)
通過拒絕抽樣?法收集新的訓(xùn)練數(shù)據(jù)
對所有類型的任務(wù)進(jìn)?最終強(qiáng)化學(xué)習(xí)