DeepSeek 系列模型詳解之 DeepSeek Math
DeepSeek Math發(fā)布于2024年2月,雖然是一個7B參數(shù)量的模型,但在Math基準(zhǔn)榜單上的表現(xiàn)卻超過了多個30B~70B參數(shù)量的開源模型。
一、技術(shù)亮點
1. 數(shù)據(jù)集
使用Common Crawl提取的120B(1200億個)高質(zhì)量數(shù)學(xué)網(wǎng)頁數(shù)據(jù)(具體包括與數(shù)學(xué)相關(guān)的token,以及自然語言和代碼數(shù)據(jù)等),總數(shù)據(jù)量是開源數(shù)據(jù)集OpenWebMath的9倍。如此大規(guī)模且高質(zhì)量的數(shù)據(jù)集為模型提供了豐富的數(shù)學(xué)知識背景,使得它在處理數(shù)學(xué)相關(guān)任務(wù)時具有更強(qiáng)的能力。
2. 訓(xùn)練策略
基于代碼領(lǐng)域模型DeepSeek-Coder-v1.5進(jìn)行初始化,而不是從通用語言模型開始。從而賦予模型更好的數(shù)學(xué)推理能力。
3. 對齊技術(shù)
引入了一種近端策略優(yōu)化(PPO)的變體——群組相對策略優(yōu)化(GRPO)。GRPO通過將相似的任務(wù)或狀態(tài)分組,并根據(jù)它們之間的相對關(guān)系來調(diào)整獎勵信號,從而增強(qiáng)了模型的泛化能力和推理性能。此外,GRPO丟棄了Critic Model,顯著減少了訓(xùn)練所需的顯存,提高了訓(xùn)練效率和對齊效果。
4. 數(shù)學(xué)基準(zhǔn)表現(xiàn)
在中文和英文數(shù)學(xué)基準(zhǔn)榜單上,DeepSeek Math的表現(xiàn)超過了Mistral 7B、Llemma-34B等模型,并且其數(shù)學(xué)推理能力逼近GPT-4,與Minerva 540B的效果相當(dāng)。
二、數(shù)據(jù)
1. 數(shù)據(jù)采集
如圖所示,是一個迭代Pipeline,展示了如何從一個種子語料庫(例如,一個小規(guī)模但質(zhì)量高的數(shù)學(xué)相關(guān)數(shù)據(jù)集)開始,系統(tǒng)地從Common Crawl收集大規(guī)模數(shù)學(xué)語料庫。
整體數(shù)據(jù)采集過程是迭代式的。經(jīng)過四輪數(shù)據(jù)收集迭代,最終收集了3550萬個數(shù)學(xué)網(wǎng)頁,總計1200億個token。具體流程如下:
- 選擇OpenWebMath(一個高質(zhì)量數(shù)學(xué)網(wǎng)頁文本的集合)作為初始種子語料庫。并使用這個語料庫,訓(xùn)練fastText模型。
- 利用訓(xùn)練好的FastText模型,在包含400億網(wǎng)頁的Common Crawl中召回更多與數(shù)學(xué)相關(guān)的網(wǎng)頁。
- 在召回的數(shù)學(xué)網(wǎng)頁中,通過統(tǒng)計識別出與數(shù)學(xué)相關(guān)的域名(例如,mathoverflow.net)。
- 對這些域名下的URL路徑進(jìn)行人工標(biāo)注,標(biāo)記出與數(shù)學(xué)內(nèi)容相關(guān)的路徑(例如,mathoverflow.net/questions)。
- 將這些特定路徑下的網(wǎng)頁,如果它們未被前述步驟召回,則將它們作為正樣本加入到種子集合中,以供下一輪迭代使用。重復(fù)這一過程直到完成四輪迭代。
為了避免基準(zhǔn)污染,沿用DeepSeek-Coder的n-gram過濾方法,過濾掉包含來自英語數(shù)學(xué)基準(zhǔn)(如GSM8K和MATH)以及中文基準(zhǔn)(如CMATH和AGIEval)的問題或答案的網(wǎng)頁。過濾標(biāo)準(zhǔn)如下:
- 10-gram匹配:任何包含與評估基準(zhǔn)中的子字符串完全匹配的10-gram文本段落都將從數(shù)學(xué)訓(xùn)練語料庫中移除。
- 短文本精確匹配:對于長度不足10-gram但至少有3-gram的基準(zhǔn)文本,采用精確匹配方法過濾受污染的網(wǎng)頁。
2. 與開源數(shù)據(jù)對比
為了驗證DeepSeekMath數(shù)據(jù)的質(zhì)量,采用相同的初始化模型(DeepSeek-Coder-v1.5)和訓(xùn)練設(shè)置,在多個不同的數(shù)學(xué)數(shù)據(jù)集上分別訓(xùn)練了1500億個token,并對比最終模型的效果。
如下圖展示了不同數(shù)學(xué)數(shù)據(jù)集訓(xùn)練模型的效果對比。紅線代表使用DeepSeekMath數(shù)據(jù)訓(xùn)練的模型,其在多個數(shù)學(xué)基準(zhǔn)上的表現(xiàn)顯著領(lǐng)先于其他數(shù)據(jù)集。特別地,在一個epoch范圍內(nèi)(例如對于Proof-Pile-2是50B tokens),DeepSeekMath數(shù)據(jù)訓(xùn)練的模型效果更好,進(jìn)一步證明了其數(shù)據(jù)質(zhì)量的優(yōu)越性。
下表展示了更多詳細(xì)的榜單和數(shù)據(jù)集結(jié)果對比,DeepSeekMath數(shù)據(jù)在以下幾個方面表現(xiàn)出優(yōu)勢:中英雙語、更大規(guī)模、更高質(zhì)量。
三、訓(xùn)練設(shè)置
DeepSeek Math對一個具有13億參數(shù)的通用預(yù)訓(xùn)練語言模型進(jìn)行數(shù)學(xué)訓(xùn)練。該模型與DeepSeek LLM采用相同框架,記為DeepSeek LLM 1.3B。在每個數(shù)學(xué)語料庫上分別對模型進(jìn)行1500億token的訓(xùn)練。所有實驗均使用高效輕量的HAI-LLM訓(xùn)練框架進(jìn)行。以下是詳細(xì)的訓(xùn)練設(shè)置:
(1) 使用AdamW優(yōu)化器,參數(shù)設(shè)置如下:
- 動量參數(shù) (\beta_1 = 0.9)
- 動量參數(shù) (\beta_2 = 0.95)
- 權(quán)重衰減系數(shù) (weight_decay = 0.1)
(2) 采用多步學(xué)習(xí)率調(diào)度策略:
- 預(yù)熱階段:學(xué)習(xí)率在前2000個warmup steps后線性增加到最大值。
- 第一階段:在訓(xùn)練進(jìn)程的80%時,學(xué)習(xí)率降低到峰值的31.6%。
- 第二階段:在訓(xùn)練進(jìn)程的90%時,學(xué)習(xí)率進(jìn)一步降低到峰值的10.0%。
(3) 最大學(xué)習(xí)率設(shè)置為。
(4) 使用400萬個token的批量大?。╞atch size)。
(5) 上下文長度設(shè)置為4000個token(context length)。
四、對齊階段
1. 監(jiān)督式微調(diào)SFT
(1) 數(shù)據(jù)集
DeepSeek Math構(gòu)建了一個數(shù)學(xué)指令微調(diào)數(shù)據(jù)集,涵蓋來自不同數(shù)學(xué)領(lǐng)域、具有不同復(fù)雜程度的中英文數(shù)學(xué)問題。這些問題與鏈?zhǔn)剿季S(Chain-of-Thought, CoT)、程序思維(Program-of-Thought, PoT)和工具集成推理格式(Tool-Integrated Reasoning Format)呈現(xiàn)的解決方案一一配對??偣灿?76,000個訓(xùn)練樣本。
- 英語數(shù)學(xué)數(shù)據(jù)集:為GSM8K和MATH問題標(biāo)注了工具集成解決方案,并采用了MathInstruct的一個子集,以及Lila-OOD的訓(xùn)練集,其中的問題通過思維鏈(CoT)或程序思維(PoT)解決。英文數(shù)據(jù)集涵蓋了數(shù)學(xué)的多個領(lǐng)域,如代數(shù)、概率、數(shù)論、微積分和幾何等。
- 中國數(shù)學(xué)數(shù)據(jù)集:收集了涵蓋76個子主題(如線性方程)的中文 K-12 數(shù)學(xué)問題,并標(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的最大上下文長度。對模型進(jìn)行500個步驟的訓(xùn)練,批量大小為256,恒定學(xué)習(xí)率為。
2. 強(qiáng)化學(xué)習(xí)RL
(1) 從PPO到GRPO
近端策略優(yōu)化(Proximal Policy Optimization,PPO)是一種基于演員-評論家(actor-critic)的強(qiáng)化學(xué)習(xí)算法,廣泛應(yīng)用于大語言模型的強(qiáng)化學(xué)習(xí)微調(diào)階段。PPO通過最大化以下替代目標(biāo)來優(yōu)化大模型:
其中,
和
分別是當(dāng)前策略模型和舊策略模型
- q和o分別是從問題數(shù)據(jù)集和舊策略模型
中采樣得到的問題和輸出。
- 參數(shù)是PPO中引入的剪切相關(guān)超參數(shù),用于穩(wěn)定訓(xùn)練。
是優(yōu)勢值,通過廣義優(yōu)勢估計(Generalized Advantage Estimation, GAE)計算得出。
在PPO中,獎勵函數(shù) 和一個學(xué)習(xí)的價值函數(shù) 起著關(guān)鍵作用。因此,價值函數(shù)需要與策略模型一同訓(xùn)練,為了緩解獎勵模型的過優(yōu)化問題,標(biāo)準(zhǔn)方法是在每個 token 的獎勵中添加來自參考模型的每個 token 的 KL 散度懲罰項,即:
其中,
是獎勵模型。
是參考模型,通常是初始的監(jiān)督微調(diào)(SFT)模型。
-
是KL懲罰的系數(shù)。
由于PPO中使用的價值函數(shù)通常是與策略模型規(guī)模相當(dāng)?shù)牧硪粋€模型,這帶來了巨大的內(nèi)存和計算負(fù)擔(dān)。此外,在強(qiáng)化學(xué)習(xí)訓(xùn)練期間,價值函數(shù)在優(yōu)勢值計算中被用作基線以減少方差。然而,在大語言模型的情境中,通常只有最后一個 token 由獎勵模型賦予獎勵分?jǐn)?shù),這可能會使在每個 token 上都準(zhǔn)確的價值函數(shù)的訓(xùn)練變得復(fù)雜。
為了解決這些問題,DeepSeekMath提出了群組相對策略優(yōu)化(Group Relative Policy Optimization,GRPO)。GRPO無需像PPO那樣進(jìn)行額外的價值函數(shù)近似,而是使用針對同一問題生成的多個采樣輸出的平均獎勵作為基線。如下圖所示:
對于每個問題q,GRPO從舊策略中采樣
個輸出
然后通過最大化以下目標(biāo)來優(yōu)化策略模型:
其中,
和
是超參數(shù)。
是基于同一組內(nèi)輸出的相對獎勵計算的優(yōu)勢值。
具體步驟如下:
① 初始化策略模型:使用初始策略模型。
② 迭代優(yōu)化:
- 參考模型更新:將當(dāng)前策略模型
作為參考模型
。
- 采樣輸出:對于每個問題
,從舊策略模型
中采樣
個輸出
。
- 計算獎勵:使用獎勵模型
計算每個采樣輸出
的獎勵
。
- 計算優(yōu)勢值:通過組相對優(yōu)勢估計計算每個 token 的優(yōu)勢值
。
- 更新策略模型:通過最大化 GRPO 目標(biāo)函數(shù)更新策略模型
。
- 更新獎勵模型:通過連續(xù)訓(xùn)練使用回放機(jī)制更新獎勵模型
。
GRPO利用組相對的方式計算優(yōu)勢值,這與獎勵模型的比較性質(zhì)非常契合,因為獎勵模型通常是在關(guān)于同一問題的輸出之間的比較數(shù)據(jù)集上進(jìn)行訓(xùn)練的。
此外,與PPO中使用的KL懲罰項不同,GRPO通過以下無偏估計器估計KL散度:
(2) 采用GRPO的結(jié)果監(jiān)督強(qiáng)化學(xué)習(xí)
對于每個問題,從舊策略模型
中采樣
個輸出
。然后,使用獎勵模型對這些輸出進(jìn)行評分,得到
個獎勵
。
接下來,這些獎勵通過減去組平均值并除以組標(biāo)準(zhǔn)差進(jìn)行歸一化。歸一化后的獎勵用于設(shè)置每個輸出的優(yōu)勢值
,即
最后,通過最大化目標(biāo)函數(shù)來優(yōu)化策略模型。
(3) 采用GRPO的過程監(jiān)督強(qiáng)化學(xué)習(xí)
結(jié)果監(jiān)督(Outcome Supervision)僅在每個輸出的末尾提供獎勵,這在復(fù)雜的數(shù)學(xué)任務(wù)中可能不夠充分和高效。過程監(jiān)督(Process Supervision)在每個推理步驟的末尾提供獎勵。
具體來說,給定問題和從舊策略模型
中采樣的
個輸出
,使用過程獎勵模型對每個步驟的輸出進(jìn)行評分,得到相應(yīng)的獎勵:
其中,
是第
步的結(jié)束token索引。
是第
個輸出的總步數(shù)。
接下來,這些獎勵通過減去組平均值并除以組標(biāo)準(zhǔn)差進(jìn)行歸一化:
然后,過程監(jiān)督計算每個 token 的優(yōu)勢值為后續(xù)步驟的歸一化獎勵之和:
最后,通過最大化目標(biāo)函數(shù)來優(yōu)化策略模型。
(4) 迭代強(qiáng)化學(xué)習(xí)
在強(qiáng)化學(xué)習(xí)訓(xùn)練過程中,舊的獎勵模型可能不足以監(jiān)督當(dāng)前的策略模型。因此,DeepSeek Math還探索了迭代強(qiáng)化學(xué)習(xí)(Iterative RL)與GRPO的結(jié)合。
如下算法所示,在迭代 GRPO 中,根據(jù)策略模型的采樣結(jié)果為獎勵模型生成新的訓(xùn)練集,并使用一種納入 10% 歷史數(shù)據(jù)的回放機(jī)制持續(xù)訓(xùn)練舊的獎勵模型。然后,將參考模型設(shè)置為策略模型,并使用新的獎勵模型持續(xù)訓(xùn)練策略模型。
具體步驟詳解如下:
(1) 初始化策略模型和獎勵模型
。
(2) 迭代過程:
- 參考模型更新:將當(dāng)前策略模型
作為參考模型
。
- 采樣輸出:對于每個問題
,從舊策略模型
中采樣
個輸出
。
- 計算獎勵:使用獎勵模型
計算每個采樣輸出
的獎勵
。
- 歸一化獎勵:對獎勵進(jìn)行歸一化處理,得到
。
- 計算優(yōu)勢值:計算每個 token 的優(yōu)勢值
為后續(xù)步驟的歸一化獎勵之和。
- 更新策略模型:通過最大化 GRPO 目標(biāo)函數(shù)更新策略模型
。
- 更新獎勵模型:通過連續(xù)訓(xùn)練使用回放機(jī)制更新獎勵模型
,并保留10%的歷史數(shù)據(jù)以確保獎勵模型的穩(wěn)定性。
五、模型效果
下表評估的是模型未使用工具情況下,通過自身CoT解決數(shù)學(xué)題的能力。在MATH數(shù)學(xué)競賽數(shù)據(jù)集上,DeepSeekMath-RL 7B超過了7B~70B所有開源模型,以及大多數(shù)閉源模型(例如Inflection-2和Gemini Pro)13%的絕對值,非常接近GPT-4和Gemini Ultra性能。
其中值得注意的是,DeepSeekMath-RL 7B所有評估指標(biāo)上都超過了基準(zhǔn)模型DeepSeekMath-Instruct 7B,展示了GRPO強(qiáng)化學(xué)習(xí)訓(xùn)練的有效性。
參考:https://arxiv.org/abs/2402.03300