🚀 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},
}