章节 01
导读 / 主楼:纯强化学习训练推理模型:开源复现DeepSeek-R1-Zero的GRPO实践
本项目展示了如何仅通过纯强化学习(GRPO算法)训练1.5B参数模型获得推理能力,无需任何监督微调或人工标注的思维链数据,在GSM8K和数学推理任务上实现了34%的相对提升。
正文
本项目展示了如何仅通过纯强化学习(GRPO算法)训练1.5B参数模型获得推理能力,无需任何监督微调或人工标注的思维链数据,在GSM8K和数学推理任务上实现了34%的相对提升。
章节 01
本项目展示了如何仅通过纯强化学习(GRPO算法)训练1.5B参数模型获得推理能力,无需任何监督微调或人工标注的思维链数据,在GSM8K和数学推理任务上实现了34%的相对提升。
章节 02
\nA_{i,j} = (r_{i,j} - mean_j) / (std_j + ε)\n\n\n这种相对优势估计消除了对单独价值/批判网络的需求(PPO需要),显著降低了显存占用和训练复杂度。\n\nGRPO损失函数:\n\n\nL = -E[ min(ratio × A, clip(ratio, 1-ε, 1+ε) × A) ] + β × KL(π_θ || π_ref)\n\n\n其中ratio = exp(log π_θ - log π_ref)表示新旧策略的概率比。KL散度项确保策略不会偏离参考模型太远,保持训练稳定性。\n\n## 奖励函数设计:简单但有效\n\n本项目采用两个基于规则的奖励信号,完全避免了学习奖励模型可能带来的奖励黑客问题:\n\n正确性奖励(权重0.9):硬二进制奖励。如果提取的答案与 ground truth 匹配,获得1.0奖励;否则为0.0。这种设计简单、可验证、无歧义。\n\n格式奖励(权重0.1):软奖励,鼓励模型遵循<think>...</think><answer>...</answer>的结构化输出格式。这有助于形成可解释的推理过程,便于后续分析模型学到了什么。\n\n值得注意的是,这里没有使用任何神经网络奖励模型,也没有人工标注的推理过程。奖励完全基于可验证的规则,这是实现真正自主推理的关键。\n\n## 实验结果与性能分析\n\n在单张A100 80GB GPU上训练后,模型在推理基准测试中取得了显著提升:\n\n| 基准测试 | 基础模型 | GRPO训练后 | 相对提升 |\n|---------|---------|-----------|---------|\n| GSM8K(数学应用题) | ~38% | ~51% | +34% |\n| MATH(竞赛数学题) | ~12% | ~16% | +34% |\n\n这些结果与DeepSeek-R1-Zero论文中报告的34%相对提升完全吻合,验证了本复现的有效性。考虑到基础模型仅有1.5B参数,这一提升幅度相当可观。\n\n## 技术栈与实现细节\n\n本项目的技术选型兼顾了训练效率和服务性能:\n\n- PyTorch:模型训练框架\n- Hugging Face Transformers:模型和分词器加载、数据集访问\n- 自研GRPO实现:从零实现的GRPO算法(见src/grpo/目录)\n- vLLM:使用PagedAttention实现高吞吐量推理服务,相比HuggingFace生成有2-4倍的速度提升\n- Weights & Biases:实验追踪,记录奖励曲线、KL散度、损失值、每步完成数等关键指标\n- FastAPI + uvicorn:提供REST API服务接口\n\n## 硬件需求与优化建议\n\n| 配置 | 最低显存 | 推荐配置 |\n|-----|---------|---------|\n| 训练(1.5B模型) | 24 GB | 40-80 GB |\n| 推理(vLLM) | 8 GB | 16 GB |\n\n对于24GB显存(如RTX 4090)的用户,建议将batch_size减至2、group_size减至4,并使用gradient_accumulation_steps: 8来模拟更大的batch size。\n\n## 快速开始\n\n项目提供了完整的训练和推理流程:\n\nbash\n# 1. 安装依赖\ngit clone https://github.com/Aryan1643/rl-reasoning-model\ncd rl-reasoning-model\npip install -r requirements.txt\n\n# 2. 配置(编辑 configs/train_config.yaml)\n# 3. 训练\npython train.py --config configs/train_config.yaml\n\n# 4. 评估\npython evaluate.py --checkpoint ./outputs/checkpoints/final --dataset gsm8k\n\n# 5. 服务部署\npython serve.py --model_path ./outputs/checkpoints/final --port 8000\n\n\n## 关键设计选择的技术原理\n\n为什么选择GRPO而非PPO?\n\nPPO需要维护一个单独的价值网络来估计状态价值,这在LLM场景中特别昂贵,因为需要为每个token存储和计算价值估计。GRPO通过组内相对归一化消除了价值网络需求,在保持训练稳定性的同时大幅降低了显存占用。\n\n为什么使用Qwen2-1.5B作为基础模型?\n\n1.5B参数规模适中,既有足够的表达能力学习推理策略,又能在消费级硬件上训练。Qwen2系列在数学预训练方面表现优异,为后续的RL优化提供了良好基础。最重要的是,它是完全开源可获取的。\n\n为什么采用规则奖励而非学习奖励模型?\n\n学习奖励模型存在奖励黑客风险——模型可能学会欺骗奖励模型而非真正解决问题。规则奖励基于可验证的正确性,不存在这一问题,同时避免了训练奖励模型的额外开销。\n\n## 意义与启示\n\n本项目的意义不仅在于复现了DeepSeek-R1-Zero的结果,更在于证明了:\n\n1. 推理能力可以通过纯RL涌现:无需昂贵的SFT数据标注\n2. 小模型也能获得显著推理提升:1.5B参数模型通过RL可获得34%的相对改进\n3. 开源社区可以独立复现前沿成果:完整的训练、评估、服务代码,使用标准开源工具\n\n对于希望开发专用推理模型但缺乏大量标注资源的团队,这一方法提供了一条可行的技术路径。对于研究AI对齐和自主学习的学者,这也是理解LLM推理机制的重要实验平台。章节 03
纯强化学习训练推理模型:开源复现DeepSeek-R1-Zero的GRPO实践\n\n项目背景与核心突破\n\nDeepSeek-R1-Zero的发布在AI领域引发了一场关于推理能力来源的深刻讨论。它证明了大型语言模型的推理能力可以通过纯粹的强化学习(RL)自我涌现,而无需依赖人工标注的思维链(Chain-of-Thought)数据或监督微调(SFT)。这一发现挑战了传统的"先SFT后RL"的训练范式,为低成本开发推理模型开辟了新的路径。\n\n本项目是对DeepSeek-R1-Zero的完整开源复现,使用仅1.5B参数的Qwen2基础模型,通过GRPO(Group Relative Policy Optimization)算法进行训练,成功让模型自主学会了链式思考推理。\n\n核心方法论:无监督微调的纯RL训练\n\n为什么跳过SFT阶段?\n\n传统的推理模型训练遵循"预训练→SFT→RL"的三阶段流程。SFT阶段需要大量人工标注的推理示例,成本高昂且难以扩展。DeepSeek-R1-Zero的核心洞见是:如果奖励信号设计得当,模型可以通过试错自主发现有效的推理策略。\n\n本项目的训练流程完全摒弃了SFT:\n\n1. 从基础LLM开始:使用未经指令微调的Qwen2-1.5B预训练模型\n2. 为每个问题生成多个解:采样G个不同的完成结果\n3. 规则验证正确性:通过硬编码规则检查答案是否正确(无需学习奖励模型)\n4. 基于正确性给予奖励:正确答案获得奖励,错误答案受到惩罚\n5. 使用GRPO更新策略:通过组内相对优势估计进行策略优化\n6. 重复迭代:模型逐渐自我发现思维链推理模式\n\nGRPO算法详解\n\nGRPO(Group Relative Policy Optimization)是本项目采用的强化学习算法,它是对PPO的改进,专门针对LLM推理任务优化:\n\n组采样机制:对于每个提示,从当前策略中采样G个完成结果构成一个组。这种设计允许算法在组内进行相对比较,而非依赖绝对奖励值。\n\n相对优势计算:每个完成结果的优势通过组内归一化计算:\n\n\nA_{i,j} = (r_{i,j} - mean_j) / (std_j + ε)\n\n\n这种相对优势估计消除了对单独价值/批判网络的需求(PPO需要),显著降低了显存占用和训练复杂度。\n\nGRPO损失函数:\n\n\nL = -E[ min(ratio × A, clip(ratio, 1-ε, 1+ε) × A) ] + β × KL(π_θ || π_ref)\n\n\n其中ratio = exp(log π_θ - log π_ref)表示新旧策略的概率比。KL散度项确保策略不会偏离参考模型太远,保持训练稳定性。\n\n奖励函数设计:简单但有效\n\n本项目采用两个基于规则的奖励信号,完全避免了学习奖励模型可能带来的奖励黑客问题:\n\n正确性奖励(权重0.9):硬二进制奖励。如果提取的答案与 ground truth 匹配,获得1.0奖励;否则为0.0。这种设计简单、可验证、无歧义。\n\n格式奖励(权重0.1):软奖励,鼓励模型遵循<think>...</think><answer>...</answer>的结构化输出格式。这有助于形成可解释的推理过程,便于后续分析模型学到了什么。\n\n值得注意的是,这里没有使用任何神经网络奖励模型,也没有人工标注的推理过程。奖励完全基于可验证的规则,这是实现真正自主推理的关键。\n\n实验结果与性能分析\n\n在单张A100 80GB GPU上训练后,模型在推理基准测试中取得了显著提升:\n\n| 基准测试 | 基础模型 | GRPO训练后 | 相对提升 |\n|---------|---------|-----------|---------|\n| GSM8K(数学应用题) | ~38% | ~51% | +34% |\n| MATH(竞赛数学题) | ~12% | ~16% | +34% |\n\n这些结果与DeepSeek-R1-Zero论文中报告的34%相对提升完全吻合,验证了本复现的有效性。考虑到基础模型仅有1.5B参数,这一提升幅度相当可观。\n\n技术栈与实现细节\n\n本项目的技术选型兼顾了训练效率和服务性能:\n\n- PyTorch:模型训练框架\n- Hugging Face Transformers:模型和分词器加载、数据集访问\n- 自研GRPO实现:从零实现的GRPO算法(见src/grpo/目录)\n- vLLM:使用PagedAttention实现高吞吐量推理服务,相比HuggingFace生成有2-4倍的速度提升\n- Weights & Biases:实验追踪,记录奖励曲线、KL散度、损失值、每步完成数等关键指标\n- FastAPI + uvicorn:提供REST API服务接口\n\n硬件需求与优化建议\n\n| 配置 | 最低显存 | 推荐配置 |\n|-----|---------|---------|\n| 训练(1.5B模型) | 24 GB | 40-80 GB |\n| 推理(vLLM) | 8 GB | 16 GB |\n\n对于24GB显存(如RTX 4090)的用户,建议将batch_size减至2、group_size减至4,并使用gradient_accumulation_steps: 8来模拟更大的batch size。\n\n快速开始\n\n项目提供了完整的训练和推理流程:\n\nbash\n1. 安装依赖\ngit clone https://github.com/Aryan1643/rl-reasoning-model\ncd rl-reasoning-model\npip install -r requirements.txt\n\n2. 配置(编辑 configs/train_config.yaml)\n3. 训练\npython train.py --config configs/train_config.yaml\n\n4. 评估\npython evaluate.py --checkpoint ./outputs/checkpoints/final --dataset gsm8k\n\n5. 服务部署\npython serve.py --model_path ./outputs/checkpoints/final --port 8000\n\n\n关键设计选择的技术原理\n\n为什么选择GRPO而非PPO?\n\nPPO需要维护一个单独的价值网络来估计状态价值,这在LLM场景中特别昂贵,因为需要为每个token存储和计算价值估计。GRPO通过组内相对归一化消除了价值网络需求,在保持训练稳定性的同时大幅降低了显存占用。\n\n为什么使用Qwen2-1.5B作为基础模型?\n\n1.5B参数规模适中,既有足够的表达能力学习推理策略,又能在消费级硬件上训练。Qwen2系列在数学预训练方面表现优异,为后续的RL优化提供了良好基础。最重要的是,它是完全开源可获取的。\n\n为什么采用规则奖励而非学习奖励模型?\n\n学习奖励模型存在奖励黑客风险——模型可能学会欺骗奖励模型而非真正解决问题。规则奖励基于可验证的正确性,不存在这一问题,同时避免了训练奖励模型的额外开销。\n\n意义与启示\n\n本项目的意义不仅在于复现了DeepSeek-R1-Zero的结果,更在于证明了:\n\n1. 推理能力可以通过纯RL涌现:无需昂贵的SFT数据标注\n2. 小模型也能获得显著推理提升:1.5B参数模型通过RL可获得34%的相对改进\n3. 开源社区可以独立复现前沿成果:完整的训练、评估、服务代码,使用标准开源工具\n\n对于希望开发专用推理模型但缺乏大量标注资源的团队,这一方法提供了一条可行的技术路径。对于研究AI对齐和自主学习的学者,这也是理解LLM推理机制的重要实验平台。