DeepSeek 系列模型詳解之 DeepSeek Math
DeepSeek Math發(fā)布于2024年2月,雖然是一個(gè)7B參數(shù)量的模型,但在Math基準(zhǔn)榜單上的表現(xiàn)卻超過(guò)了多個(gè)30B~70B參數(shù)量的開(kāi)源模型。

一、技術(shù)亮點(diǎn)
1. 數(shù)據(jù)集
使用Common Crawl提取的120B(1200億個(gè))高質(zhì)量數(shù)學(xué)網(wǎng)頁(yè)數(shù)據(jù)(具體包括與數(shù)學(xué)相關(guān)的token,以及自然語(yǔ)言和代碼數(shù)據(jù)等),總數(shù)據(jù)量是開(kāi)源數(shù)據(jù)集OpenWebMath的9倍。如此大規(guī)模且高質(zhì)量的數(shù)據(jù)集為模型提供了豐富的數(shù)學(xué)知識(shí)背景,使得它在處理數(shù)學(xué)相關(guān)任務(wù)時(shí)具有更強(qiáng)的能力。
2. 訓(xùn)練策略
基于代碼領(lǐng)域模型DeepSeek-Coder-v1.5進(jìn)行初始化,而不是從通用語(yǔ)言模型開(kāi)始。從而賦予模型更好的數(shù)學(xué)推理能力。
3. 對(duì)齊技術(shù)
引入了一種近端策略?xún)?yōu)化(PPO)的變體——群組相對(duì)策略?xún)?yōu)化(GRPO)。GRPO通過(guò)將相似的任務(wù)或狀態(tài)分組,并根據(jù)它們之間的相對(duì)關(guān)系來(lái)調(diào)整獎(jiǎng)勵(lì)信號(hào),從而增強(qiáng)了模型的泛化能力和推理性能。此外,GRPO丟棄了Critic Model,顯著減少了訓(xùn)練所需的顯存,提高了訓(xùn)練效率和對(duì)齊效果。
4. 數(shù)學(xué)基準(zhǔn)表現(xiàn)
在中文和英文數(shù)學(xué)基準(zhǔn)榜單上,DeepSeek Math的表現(xiàn)超過(guò)了Mistral 7B、Llemma-34B等模型,并且其數(shù)學(xué)推理能力逼近GPT-4,與Minerva 540B的效果相當(dāng)。
二、數(shù)據(jù)
1. 數(shù)據(jù)采集
如圖所示,是一個(gè)迭代Pipeline,展示了如何從一個(gè)種子語(yǔ)料庫(kù)(例如,一個(gè)小規(guī)模但質(zhì)量高的數(shù)學(xué)相關(guān)數(shù)據(jù)集)開(kāi)始,系統(tǒng)地從Common Crawl收集大規(guī)模數(shù)學(xué)語(yǔ)料庫(kù)。

整體數(shù)據(jù)采集過(guò)程是迭代式的。經(jīng)過(guò)四輪數(shù)據(jù)收集迭代,最終收集了3550萬(wàn)個(gè)數(shù)學(xué)網(wǎng)頁(yè),總計(jì)1200億個(gè)token。具體流程如下:
- 選擇OpenWebMath(一個(gè)高質(zhì)量數(shù)學(xué)網(wǎng)頁(yè)文本的集合)作為初始種子語(yǔ)料庫(kù)。并使用這個(gè)語(yǔ)料庫(kù),訓(xùn)練fastText模型。
- 利用訓(xùn)練好的FastText模型,在包含400億網(wǎng)頁(yè)的Common Crawl中召回更多與數(shù)學(xué)相關(guān)的網(wǎng)頁(yè)。
- 在召回的數(shù)學(xué)網(wǎng)頁(yè)中,通過(guò)統(tǒng)計(jì)識(shí)別出與數(shù)學(xué)相關(guān)的域名(例如,mathoverflow.net)。
- 對(duì)這些域名下的URL路徑進(jìn)行人工標(biāo)注,標(biāo)記出與數(shù)學(xué)內(nèi)容相關(guān)的路徑(例如,mathoverflow.net/questions)。
- 將這些特定路徑下的網(wǎng)頁(yè),如果它們未被前述步驟召回,則將它們作為正樣本加入到種子集合中,以供下一輪迭代使用。重復(fù)這一過(guò)程直到完成四輪迭代。
為了避免基準(zhǔn)污染,沿用DeepSeek-Coder的n-gram過(guò)濾方法,過(guò)濾掉包含來(lái)自英語(yǔ)數(shù)學(xué)基準(zhǔn)(如GSM8K和MATH)以及中文基準(zhǔn)(如CMATH和AGIEval)的問(wèn)題或答案的網(wǎng)頁(yè)。過(guò)濾標(biāo)準(zhǔn)如下:
- 10-gram匹配:任何包含與評(píng)估基準(zhǔn)中的子字符串完全匹配的10-gram文本段落都將從數(shù)學(xué)訓(xùn)練語(yǔ)料庫(kù)中移除。
- 短文本精確匹配:對(duì)于長(zhǎng)度不足10-gram但至少有3-gram的基準(zhǔn)文本,采用精確匹配方法過(guò)濾受污染的網(wǎng)頁(yè)。
2. 與開(kāi)源數(shù)據(jù)對(duì)比
為了驗(yàn)證DeepSeekMath數(shù)據(jù)的質(zhì)量,采用相同的初始化模型(DeepSeek-Coder-v1.5)和訓(xùn)練設(shè)置,在多個(gè)不同的數(shù)學(xué)數(shù)據(jù)集上分別訓(xùn)練了1500億個(gè)token,并對(duì)比最終模型的效果。
如下圖展示了不同數(shù)學(xué)數(shù)據(jù)集訓(xùn)練模型的效果對(duì)比。紅線(xiàn)代表使用DeepSeekMath數(shù)據(jù)訓(xùn)練的模型,其在多個(gè)數(shù)學(xué)基準(zhǔn)上的表現(xiàn)顯著領(lǐng)先于其他數(shù)據(jù)集。特別地,在一個(gè)epoch范圍內(nèi)(例如對(duì)于Proof-Pile-2是50B tokens),DeepSeekMath數(shù)據(jù)訓(xùn)練的模型效果更好,進(jìn)一步證明了其數(shù)據(jù)質(zhì)量的優(yōu)越性。

下表展示了更多詳細(xì)的榜單和數(shù)據(jù)集結(jié)果對(duì)比,DeepSeekMath數(shù)據(jù)在以下幾個(gè)方面表現(xiàn)出優(yōu)勢(shì):中英雙語(yǔ)、更大規(guī)模、更高質(zhì)量。

三、訓(xùn)練設(shè)置
DeepSeek Math對(duì)一個(gè)具有13億參數(shù)的通用預(yù)訓(xùn)練語(yǔ)言模型進(jìn)行數(shù)學(xué)訓(xùn)練。該模型與DeepSeek LLM采用相同框架,記為DeepSeek LLM 1.3B。在每個(gè)數(shù)學(xué)語(yǔ)料庫(kù)上分別對(duì)模型進(jìn)行1500億token的訓(xùn)練。所有實(shí)驗(yàn)均使用高效輕量的HAI-LLM訓(xùn)練框架進(jìn)行。以下是詳細(xì)的訓(xùn)練設(shè)置:
(1) 使用AdamW優(yōu)化器,參數(shù)設(shè)置如下:
- 動(dòng)量參數(shù) (\beta_1 = 0.9)
- 動(dòng)量參數(shù) (\beta_2 = 0.95)
- 權(quán)重衰減系數(shù) (weight_decay = 0.1)
(2) 采用多步學(xué)習(xí)率調(diào)度策略:
- 預(yù)熱階段:學(xué)習(xí)率在前2000個(gè)warmup steps后線(xiàn)性增加到最大值。
- 第一階段:在訓(xùn)練進(jìn)程的80%時(shí),學(xué)習(xí)率降低到峰值的31.6%。
- 第二階段:在訓(xùn)練進(jìn)程的90%時(shí),學(xué)習(xí)率進(jìn)一步降低到峰值的10.0%。
(3) 最大學(xué)習(xí)率設(shè)置為
。
(4) 使用400萬(wàn)個(gè)token的批量大?。╞atch size)。
(5) 上下文長(zhǎng)度設(shè)置為4000個(gè)token(context length)。
四、對(duì)齊階段
1. 監(jiān)督式微調(diào)SFT
(1) 數(shù)據(jù)集
DeepSeek Math構(gòu)建了一個(gè)數(shù)學(xué)指令微調(diào)數(shù)據(jù)集,涵蓋來(lái)自不同數(shù)學(xué)領(lǐng)域、具有不同復(fù)雜程度的中英文數(shù)學(xué)問(wèn)題。這些問(wèn)題與鏈?zhǔn)剿季S(Chain-of-Thought, CoT)、程序思維(Program-of-Thought, PoT)和工具集成推理格式(Tool-Integrated Reasoning Format)呈現(xiàn)的解決方案一一配對(duì)。總共有776,000個(gè)訓(xùn)練樣本。
- 英語(yǔ)數(shù)學(xué)數(shù)據(jù)集:為GSM8K和MATH問(wèn)題標(biāo)注了工具集成解決方案,并采用了MathInstruct的一個(gè)子集,以及Lila-OOD的訓(xùn)練集,其中的問(wèn)題通過(guò)思維鏈(CoT)或程序思維(PoT)解決。英文數(shù)據(jù)集涵蓋了數(shù)學(xué)的多個(gè)領(lǐng)域,如代數(shù)、概率、數(shù)論、微積分和幾何等。
- 中國(guó)數(shù)學(xué)數(shù)據(jù)集:收集了涵蓋76個(gè)子主題(如線(xiàn)性方程)的中文 K-12 數(shù)學(xué)問(wèn)題,并標(biāo)注了 CoT 和工具集成推理格式的解決方案。
(2) 微調(diào)訓(xùn)練
基于 DeepSeekMath-Base 進(jìn)行數(shù)學(xué)指令調(diào)優(yōu),得到DeepSeekMath-Instruct 7B。訓(xùn)練樣本隨機(jī)拼接,直到達(dá)到4K token的最大上下文長(zhǎng)度。對(duì)模型進(jìn)行500個(gè)步驟的訓(xùn)練,批量大小為256,恒定學(xué)習(xí)率為
。
2. 強(qiáng)化學(xué)習(xí)RL
(1) 從PPO到GRPO
近端策略?xún)?yōu)化(Proximal Policy Optimization,PPO)是一種基于演員-評(píng)論家(actor-critic)的強(qiáng)化學(xué)習(xí)算法,廣泛應(yīng)用于大語(yǔ)言模型的強(qiáng)化學(xué)習(xí)微調(diào)階段。PPO通過(guò)最大化以下替代目標(biāo)來(lái)優(yōu)化大模型:

其中,
和
分別是當(dāng)前策略模型和舊策略模型- q和o分別是從問(wèn)題數(shù)據(jù)集和舊策略模型
中采樣得到的問(wèn)題和輸出。 - 參數(shù)是PPO中引入的剪切相關(guān)超參數(shù),用于穩(wěn)定訓(xùn)練。
是優(yōu)勢(shì)值,通過(guò)廣義優(yōu)勢(shì)估計(jì)(Generalized Advantage Estimation, GAE)計(jì)算得出。
在PPO中,獎(jiǎng)勵(lì)函數(shù) 和一個(gè)學(xué)習(xí)的價(jià)值函數(shù) 起著關(guān)鍵作用。因此,價(jià)值函數(shù)需要與策略模型一同訓(xùn)練,為了緩解獎(jiǎng)勵(lì)模型的過(guò)優(yōu)化問(wèn)題,標(biāo)準(zhǔn)方法是在每個(gè) token 的獎(jiǎng)勵(lì)中添加來(lái)自參考模型的每個(gè) token 的 KL 散度懲罰項(xiàng),即:

其中,
是獎(jiǎng)勵(lì)模型。
是參考模型,通常是初始的監(jiān)督微調(diào)(SFT)模型。-
是KL懲罰的系數(shù)。
由于PPO中使用的價(jià)值函數(shù)通常是與策略模型規(guī)模相當(dāng)?shù)牧硪粋€(gè)模型,這帶來(lái)了巨大的內(nèi)存和計(jì)算負(fù)擔(dān)。此外,在強(qiáng)化學(xué)習(xí)訓(xùn)練期間,價(jià)值函數(shù)在優(yōu)勢(shì)值計(jì)算中被用作基線(xiàn)以減少方差。然而,在大語(yǔ)言模型的情境中,通常只有最后一個(gè) token 由獎(jiǎng)勵(lì)模型賦予獎(jiǎng)勵(lì)分?jǐn)?shù),這可能會(huì)使在每個(gè) token 上都準(zhǔn)確的價(jià)值函數(shù)的訓(xùn)練變得復(fù)雜。
為了解決這些問(wèn)題,DeepSeekMath提出了群組相對(duì)策略?xún)?yōu)化(Group Relative Policy Optimization,GRPO)。GRPO無(wú)需像PPO那樣進(jìn)行額外的價(jià)值函數(shù)近似,而是使用針對(duì)同一問(wèn)題生成的多個(gè)采樣輸出的平均獎(jiǎng)勵(lì)作為基線(xiàn)。如下圖所示:

對(duì)于每個(gè)問(wèn)題q,GRPO從舊策略
中采樣
個(gè)輸出
然后通過(guò)最大化以下目標(biāo)來(lái)優(yōu)化策略模型:

其中,
和
是超參數(shù)。
是基于同一組內(nèi)輸出的相對(duì)獎(jiǎng)勵(lì)計(jì)算的優(yōu)勢(shì)值。
具體步驟如下:
① 初始化策略模型:使用初始策略模型
。
② 迭代優(yōu)化:
- 參考模型更新:將當(dāng)前策略模型
作為參考模型
。 - 采樣輸出:對(duì)于每個(gè)問(wèn)題
,從舊策略模型
中采樣
個(gè)輸出
。 - 計(jì)算獎(jiǎng)勵(lì):使用獎(jiǎng)勵(lì)模型
計(jì)算每個(gè)采樣輸出
的獎(jiǎng)勵(lì)
。 - 計(jì)算優(yōu)勢(shì)值:通過(guò)組相對(duì)優(yōu)勢(shì)估計(jì)計(jì)算每個(gè) token 的優(yōu)勢(shì)值
。 - 更新策略模型:通過(guò)最大化 GRPO 目標(biāo)函數(shù)更新策略模型
。 - 更新獎(jiǎng)勵(lì)模型:通過(guò)連續(xù)訓(xùn)練使用回放機(jī)制更新獎(jiǎng)勵(lì)模型
。
GRPO利用組相對(duì)的方式計(jì)算優(yōu)勢(shì)值,這與獎(jiǎng)勵(lì)模型的比較性質(zhì)非常契合,因?yàn)楠?jiǎng)勵(lì)模型通常是在關(guān)于同一問(wèn)題的輸出之間的比較數(shù)據(jù)集上進(jìn)行訓(xùn)練的。
此外,與PPO中使用的KL懲罰項(xiàng)不同,GRPO通過(guò)以下無(wú)偏估計(jì)器估計(jì)KL散度:

(2) 采用GRPO的結(jié)果監(jiān)督強(qiáng)化學(xué)習(xí)
對(duì)于每個(gè)問(wèn)題
,從舊策略模型
中采樣
個(gè)輸出
。然后,使用獎(jiǎng)勵(lì)模型對(duì)這些輸出進(jìn)行評(píng)分,得到
個(gè)獎(jiǎng)勵(lì)
。
接下來(lái),這些獎(jiǎng)勵(lì)通過(guò)減去組平均值并除以組標(biāo)準(zhǔn)差進(jìn)行歸一化。歸一化后的獎(jiǎng)勵(lì)用于設(shè)置每個(gè)輸出
的優(yōu)勢(shì)值
,即

最后,通過(guò)最大化目標(biāo)函數(shù)來(lái)優(yōu)化策略模型。
(3) 采用GRPO的過(guò)程監(jiān)督強(qiáng)化學(xué)習(xí)
結(jié)果監(jiān)督(Outcome Supervision)僅在每個(gè)輸出的末尾提供獎(jiǎng)勵(lì),這在復(fù)雜的數(shù)學(xué)任務(wù)中可能不夠充分和高效。過(guò)程監(jiān)督(Process Supervision)在每個(gè)推理步驟的末尾提供獎(jiǎng)勵(lì)。
具體來(lái)說(shuō),給定問(wèn)題
和從舊策略模型
中采樣的
個(gè)輸出
,使用過(guò)程獎(jiǎng)勵(lì)模型對(duì)每個(gè)步驟的輸出進(jìn)行評(píng)分,得到相應(yīng)的獎(jiǎng)勵(lì):

其中,
是第
步的結(jié)束token索引。
是第
個(gè)輸出的總步數(shù)。
接下來(lái),這些獎(jiǎng)勵(lì)通過(guò)減去組平均值并除以組標(biāo)準(zhǔn)差進(jìn)行歸一化:

然后,過(guò)程監(jiān)督計(jì)算每個(gè) token 的優(yōu)勢(shì)值為后續(xù)步驟的歸一化獎(jiǎng)勵(lì)之和:

最后,通過(guò)最大化目標(biāo)函數(shù)來(lái)優(yōu)化策略模型。
(4) 迭代強(qiáng)化學(xué)習(xí)
在強(qiáng)化學(xué)習(xí)訓(xùn)練過(guò)程中,舊的獎(jiǎng)勵(lì)模型可能不足以監(jiān)督當(dāng)前的策略模型。因此,DeepSeek Math還探索了迭代強(qiáng)化學(xué)習(xí)(Iterative RL)與GRPO的結(jié)合。
如下算法所示,在迭代 GRPO 中,根據(jù)策略模型的采樣結(jié)果為獎(jiǎng)勵(lì)模型生成新的訓(xùn)練集,并使用一種納入 10% 歷史數(shù)據(jù)的回放機(jī)制持續(xù)訓(xùn)練舊的獎(jiǎng)勵(lì)模型。然后,將參考模型設(shè)置為策略模型,并使用新的獎(jiǎng)勵(lì)模型持續(xù)訓(xùn)練策略模型。

具體步驟詳解如下:
(1) 初始化策略模型
和獎(jiǎng)勵(lì)模型
。
(2) 迭代過(guò)程:
- 參考模型更新:將當(dāng)前策略模型
作為參考模型
。 - 采樣輸出:對(duì)于每個(gè)問(wèn)題
,從舊策略模型
中采樣
個(gè)輸出
。 - 計(jì)算獎(jiǎng)勵(lì):使用獎(jiǎng)勵(lì)模型
計(jì)算每個(gè)采樣輸出
的獎(jiǎng)勵(lì)
。 - 歸一化獎(jiǎng)勵(lì):對(duì)獎(jiǎng)勵(lì)進(jìn)行歸一化處理,得到
。 - 計(jì)算優(yōu)勢(shì)值:計(jì)算每個(gè) token 的優(yōu)勢(shì)值
為后續(xù)步驟的歸一化獎(jiǎng)勵(lì)之和。 - 更新策略模型:通過(guò)最大化 GRPO 目標(biāo)函數(shù)更新策略模型
。 - 更新獎(jiǎng)勵(lì)模型:通過(guò)連續(xù)訓(xùn)練使用回放機(jī)制更新獎(jiǎng)勵(lì)模型
,并保留10%的歷史數(shù)據(jù)以確保獎(jiǎng)勵(lì)模型的穩(wěn)定性。
五、模型效果
下表評(píng)估的是模型未使用工具情況下,通過(guò)自身CoT解決數(shù)學(xué)題的能力。在MATH數(shù)學(xué)競(jìng)賽數(shù)據(jù)集上,DeepSeekMath-RL 7B超過(guò)了7B~70B所有開(kāi)源模型,以及大多數(shù)閉源模型(例如Inflection-2和Gemini Pro)13%的絕對(duì)值,非常接近GPT-4和Gemini Ultra性能。

其中值得注意的是,DeepSeekMath-RL 7B所有評(píng)估指標(biāo)上都超過(guò)了基準(zhǔn)模型DeepSeekMath-Instruct 7B,展示了GRPO強(qiáng)化學(xué)習(xí)訓(xùn)練的有效性。
參考:https://arxiv.org/abs/2402.03300


































