🚀 Light-R1:通過課程式SFT與DPO,僅用1000美元從零超越R1-Distill
Light-R1是一個專注於數學領域的語言模型項目。該項目通過課程式SFT(監督微調)和DPO(直接偏好優化)技術,從Qwen2.5 - 32B - Instruct模型開始訓練,在AIME24數學競賽中取得了76.6的高分,超越了其他模型,且訓練成本僅需1000美元左右。
項目信息
屬性 |
詳情 |
基礎模型 |
Qwen/Qwen2.5 - 32B - Instruct |
許可證 |
apache - 2.0 |
庫名稱 |
transformers |
任務類型 |
文本生成 |
模型對比
模型 |
訓練基礎 |
發佈日期 |
AIME24 |
AIME25 |
DeepSeek - R1 - Distill - Llama - 70B |
Llama - 3.3 - 70B - Instruct |
25.1.20 |
70.0 |
54.1 |
DeepSeek - R1 - Distill - Qwen - 32B |
Qwen2.5 - 32B |
25.1.20 |
72.6 |
54.9 |
LIMO (32B) |
Qwen2.5 - 32B - Instruct |
25.2.4 |
56.3 |
47.1 |
s1.1 - 32B |
Qwen2.5 - 32B - Instruct |
25.2.8 |
64.7 |
47.8 |
OpenThinker - 32B |
Qwen2.5 - 32B - Instruct |
25.2.12 |
66.0 |
50.9 |
[Light - R1 - 32B (我們的模型) 🤗](https://huggingface.co/qihoo360/Light - R1 - 32B) |
Qwen2.5 - 32B - Instruct |
25.3.4 |
76.6 |
64.6 |
技術報告與GitHub頁面
- 技術報告
- [GitHub頁面](https://github.com/Qihoo360/Light - R1)
模型優勢
儘管有許多開源工作試圖在72B及以下的模型上覆現DeepSeek - R1,但在AIME24這一具有挑戰性的數學競賽中,沒有一個模型能達到DeepSeek - R1 - Distill - Qwen - 32B的72.6分。而Light - R1 - 32B從Qwen2.5 - 32B - Instruct開始訓練,在AIME24中取得了76.6分的成績。
發佈詳情
- 模型:Light - R1 - 32B模型發佈在[🤗 huggingface](https://huggingface.co/qihoo360/Light - R1 - 32B)。
- 數據集:課程式[🤗SFT](https://huggingface.co/datasets/qihoo360/Light - R1 - SFT)和[🤗DPO](https://huggingface.co/datasets/qihoo360/Light - R1 - DPO)數據集。
- 訓練腳本:基於[360 - LLaMA - Factory](https://github.com/Qihoo360/360 - LLaMA - Factory)的訓練腳本位於[train - scripts](./train - scripts/)。
- 評估代碼:基於[DeepScaleR](https://github.com/agentica - project/deepscaler)的評估代碼位於[deepscaler - release](./deepscaler - release/),包含Light - R1 - 32B的評估日誌(如[AIME24](https://huggingface.co/qihoo360/Light - R1 - 32B/blob/main/evaluation - results.aime24.json))。所有報告的分數均為64次運行的平均值;公開模型的分數取自其評估結果,若未提供則進行64次運行取平均值。研究發現,16次運行的平均值有時會導致不同運行之間出現2 - 3分的偏差。
- 技術報告:技術報告正在進行中。
推理注意事項
⚠️ 重要提示
Light - R1 - 32B並非總是能進行思考,因為其思考能力僅通過數學數據進行訓練。
我們按照DeepSeek的建議,在聊天模板中模型生成輸出之前硬編碼<think>
來強制Light - R1進行思考。
💡 使用建議
建議使用[vLLM](https://github.com/vllm - project/vllm)或[SGLang](https://github.com/sgl - project/sglang)進行推理。Light - R1 - 32B繼承了Qwen模型的聊天模板,並添加了<think>
和</think>
作為特殊標記,且硬編碼<think>
以強制思考。
課程式SFT與DPO的訓練後結果
|
AIME24 pass@1 (64次平均) |
AIME25 |
GPQA Diamond |
Qwen2.5 - 32B - Instruct |
16.6 |
13.6 |
48.8 |
DeepSeek - R1 - Distill - Qwen - 32B |
72.6 |
54.9 |
62.1 |
Light - R1 - SFT - stage1 |
69.0 |
57.4 |
64.3 |
Light - R1 - SFT - stage2 |
73.0 |
64.3 |
60.6 |
Light - R1 - DPO |
75.8 |
63.4 |
61.8 |
Light - R1 - 32B |
76.6 |
64.6 |
61.8 |
訓練過程
數學數據來源
訓練問題收集自多個公開數學數據集,包括[OpenR1 - Math - 220k](open - r1/OpenR1 - Math - 220k)、[OpenThoughts - 114k](https://huggingface.co/datasets/open - thoughts/OpenThoughts - 114k)、LIMO、[OpenMathInstruct - 2](https://huggingface.co/datasets/nvidia/OpenMathInstruct - 2)、[s1K - 1.1](https://huggingface.co/datasets/simplescaling/s1K - 1.1)、[Omni - MATH](https://huggingface.co/datasets/KbsdJames/Omni - MATH)、[hendrycks_math](https://hf - mirror.com/datasets/baber/hendrycks_math)和AIME(截至2023年)。我們對這些問題進行了去汙染處理,以避免與常見推理基準(如AIME24/25、MATH - 500和GPQA Diamond)產生衝突。
課程式SFT與DPO
- SFT階段1:我們收集了DeepSeek - R1對這些問題的回答,並根據驗證結果和通過採樣[DeepScaleR - 1.5B - Preview](https://huggingface.co/agentica - org/DeepScaleR - 1.5B - Preview)評估的難度等級進行過濾,形成了一個76k的數據集用於SFT階段1。
- SFT階段2:在SFT階段1之後,從76k數據集中篩選出一個更具挑戰性的子集,包含3k條數據用於SFT階段2。此階段的數據可以將DeepSeek - R1 - Distill - Qwen - 32B在AIME 24/25上的成績從72.6/54.9提升到0.779/0.675。
- DPO:在SFT階段2之後,我們對Light - R1 - SFT - stage2的回答進行採樣,根據驗證結果和DeepSeek - R1的回答過濾出每個問題的正確和錯誤回答,並構建DPO對。DPO(或[NCA](https://github.com/thu - ml/Noise - Contrastive - Alignment))在SFT階段2的基礎上,使用[360 - LLaMA - Factory](https://github.com/Qihoo360/360 - LLaMA - Factory)中的序列並行進行訓練。
上述訓練步驟相當快速,預計在12臺H800機器上不到6小時即可完成,因此估計成本約為1000美元。
模型融合
最後,我們將SFT - stage2、DPO和另一個AIME24分數為74.7的DPO版本的模型進行融合。這兩個DPO版本的區別在於其中一個數據在拒絕回答中跳過了特殊標記。有趣的是,融合後的版本也表現出了性能提升。
我們觀察到這種方法帶來了逐步的改進,每個階段的中間評估結果如上表所示。在我們完全未進行訓練的GPQA科學問題評估中,專門的數學訓練導致了一定程度的遺忘。然而,Light - R1 - 32B仍然展示出了強大的泛化能力。
數據去汙染
我們仔細評估了幾個開源數據集的數據汙染情況。雖然在預訓練過程中某些汙染可能不可避免,但在訓練後與基準進行比較時,這種汙染是不可接受的。MATH - 500存在一些問題,有數十個問題與基準完全相同或僅數字不同。AIME 24和25保持完整,但在納入截至2023年的AIME數據時,我們必須特別注意。Light - R1 - 32B通過精確或N - gram匹配進行了徹底的去汙染處理。
許可證與致謝
本項目發佈的所有材料均遵循開源許可證Apache 2.0。我們的訓練實驗由[360 - LLaMA - Factory](https://github.com/Qihoo360/360 - LLaMA - Factory)提供支持,評估腳本基於[DeepScaleR](https://github.com/agentica - project/deepscaler),因此也依賴於verl。Light - R1 - 32B基於[Qwen2.5 - 32B - Instruct](https://huggingface.co/Qwen/Qwen2.5 - 32B - Instruct)進行訓練,訓練數據收集自多個公開來源。
引用
@misc{lightr1proj,
title={Light-R1: Surpassing R1-Distill from Scratch with $1000 through Curriculum SFT & DPO},
author={Liang Wen, Fenrui Xiao, Xin He, Yunke Cai, Qi An, Zhenyu Duan, Yimin Du, Junchen Liu, Lifu Tang, Xiaowei Lv, Haosheng Zou, Yongchao Deng, Shousheng Jia, Xiangzheng Zhang},
year={2025},
eprint={},
archivePrefix={},
url={https://github.com/Qihoo360/Light-R1},
}