200多行程式碼,復旦大學超低成本復現DeepSeekR1「AhaMoment」!


©來源 |機器之心
本文是復旦大學知識工場實驗室肖仰華教授、梁家卿青年副研究員科研團隊的最新研究成果,他們用簡潔的程式碼高效復現了 R1-zero 的自發反思能力。
在關於 DeepSeek 的文章中,我們會多次聽到「Aha Moment」這個詞。它指的是模型在訓練過程中經歷的一種頓悟時刻,表現為模型突然展現出類似人類的自我反思和策略調整能力。
▲ DeepSeek 論文中提到的 Aha Moment
DeepSeek-R1-zero 經過強化學習實現了大模型頓悟時刻的自發湧現,引發了大量對其方案的解讀與復現工作。
其中,基於 GRPO( Group Relative Policy Optimization)強化學習方案尤其受到關注。業界先後開源了多個基於 GRPO 演算法的 R1-zero 復現專案。然而,這些復現專案嚴重依賴一些複雜程式碼框架,有著較高的程式碼實現複雜度,對部署環境存在較高依賴,資源利用率不高,程式碼可讀性與可維護性仍存在改進空間。
對此,復旦大學知識工場實驗室肖仰華教授、梁家卿青年副研究員科研團隊基於 GRPO 演算法思想高效復現了 R1-zero 自發反思能力。目前,該專案(Simple-GRPO)的第一版程式碼實現已經開源並提交 Github。
程式碼地址:
https://github.com/lsdefine/simple_GRPO
該專案相對於現有開源的 R1-zero 復現具有以下優勢:
程式碼簡潔,依賴簡單,只需要 200 多行;
資源消耗低,透過模型解耦與分離進一步降低算力需求,該專案支援在一張 A800 (80G) 加一張 3090 (24G) 完成 7B 模型的訓練。根據 AutoDL 平臺計費標準,一張 A800 (80G) 5.98 元 / 時,一張 3090 (24G) 1.32 元 / 時。以專案作者經驗,模型在這樣的算力平臺下,訓練 1h 模型就能出現 aha moment,摺合人民幣 7.3 元,單次實驗成本壓縮至奶茶價格區間。
專案介紹
本專案程式碼簡單,GRPO 演算法實現僅有 200 多行程式碼,且僅依賴基礎的深度學習程式碼庫,如 deepspeed 和 torch,而無需 ray 等複雜框架。具體實現細節如下:
1. 參考模型分離:
在實現過程中,參考模型(reference model)被解耦,允許其在不同的 GPU 上執行(甚至可以執行在 3090 顯示卡上)。這避免了將參考模型和訓練模型放在同一個 GPU 上,防止 torch 的多程序機制建立多個副本,避免視訊記憶體浪費,並使得在 A800(80G)上訓練 7B 模型成為可能。
2. 核心損失計算:
損失計算公式基於 Hugging Face 的 trl 實現。
3. 訓練環境與過程
專案在 1 張 A800(80G)顯示卡上用 Zero-Stage 2 做最佳化,使用另一張 A800(80G)顯示卡進行參考模型的推理,參考模型分離使得 GRPO 的訓練更加高效。
在以上訓練環境中,Qwen2.5-3B 訓練 60 步需要 12 分 34 秒,Qwen2.5-7B 訓練 60 步需要 16 分 40 秒。其中在前 30 步最佳化中,Qwen2.5-7B 和 Qwen2.5-3B 的輸出內容中,均出現了「頓悟時刻」現象。示例如下:
Qwen2.5-3B(步驟 20)
其中文翻譯如下:
「<think> … 要找出卡姆登畫的雞蛋比阿諾德多多少,我們從卡姆登畫的雞蛋數量中減去阿諾德畫的雞蛋數量。所以,21-28 = -7。然而,這個結果在問題的背景下沒有意義,因為卡姆登畫的雞蛋不可能比阿諾德少。讓我們重新考慮最初的解決方案步驟:我們應該驗證關於卡姆登和莎拉的雞蛋之間關係的初始假設是否正確。… </think> <answer>-7</answer>」
Qwen2.5-7B(步驟 20)
其中文翻譯如下:
「<think> … 因此,Joanne 從普通樹上摘了 350 個蘋果。但是,這似乎不對,因為總數應該是 500 個,而我們已經計算了 150 個,只剩下 350 個普通樹上的蘋果,這與總數相矛盾。讓我們重新評估一下 。… </think> <answer>350</answer>」

實驗結果

使用 Qwen2.5-3B 和 Qwen2.5-7B 作為基礎模型,測試了模型訓練過程中正確率(左圖)和格式遵循能力(右圖)的變化情況,比較符合預期。
Qwen2.5-3B:
在 GSM8K 和 Math 混合資料集進行訓練,從上圖可以看出,Qwen2.5-3B 的準確率在經歷 5 步的最佳化後能穩定在 60% 以上,最高能達到 70% 左右;格式遵循能力在 30 步以後接近 100%。
Qwen2.5-7B:
在 GSM8K 資料集上進行訓練,從上圖可以看出,Qwen2.5-7B 的無論是準確率還是格式遵循能力都能在三十步以內快速收斂,準確率(左圖)始終保持在 90% 以上,格式遵循能力(右圖)到達 100%。

改進方向

近期本專案將進一步推出以下方向的最佳化版本,敬請關注。
組內答案同質性問題:根據 GRPO 演算法中的分組策略,當組內答案全部正確或全為錯誤時,獎勵函式無法有效分配差異化獎勵,強化學習將缺乏對比性的訓練訊號,導致模型難以收斂。後續將在訓練過程中即時監控答案分佈,對同質化的答案進行重新取樣和分組,以提供有效的對比訊號。
長思維鏈(CoT)視訊記憶體佔用問題:當模型生成較長的思維鏈(CoT)時,由於文字序列長度較長,視訊記憶體佔用會顯著增加。對此,後續考慮拆分組別,減小批次大小,或對長序列分階段處理,以減小訓練過程中的 GPU 記憶體開銷,提升訓練效率。
更多閱讀

#投 稿 通 道#
 讓你的文字被更多人看到 
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋樑,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。 
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析科研心得競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝 稿件基本要求:
• 文章確係個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標註 
• 稿件建議以 markdown 格式撰寫,文中配圖以附件形式傳送,要求圖片清晰,無版權問題
• PaperWeekly 尊重原作者署名權,並將為每篇被採納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬 投稿通道:
• 投稿郵箱:[email protected] 
• 來稿請備註即時聯絡方式(微信),以便我們在稿件選用的第一時間聯絡作者
• 您也可以直接新增小編微信(pwbot02)快速投稿,備註:姓名-投稿
△長按新增PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜尋「PaperWeekly」
點選「關注」訂閱我們的專欄吧
·
·
·

相關文章