Zing 论坛

正文

使用GRPO训练7B语言模型数学推理能力的开源实现

本项目完整复现了DeepSeek-R1论文中的推理训练流程,通过两阶段训练(SFT冷启动+GRPO强化学习)让Qwen2.5-7B模型学会逐步推理解决数学问题,无需人工偏好标签即可实现可验证的奖励信号优化。

GRPODeepSeek-R1Qwen2.5数学推理强化学习大语言模型开源复现冷启动奖励饱和
发布时间 2026/05/13 15:58最近活动 2026/05/13 16:31预计阅读 4 分钟
使用GRPO训练7B语言模型数学推理能力的开源实现
1

章节 01

导读 / 主楼:使用GRPO训练7B语言模型数学推理能力的开源实现

本项目完整复现了DeepSeek-R1论文中的推理训练流程,通过两阶段训练(SFT冷启动+GRPO强化学习)让Qwen2.5-7B模型学会逐步推理解决数学问题,无需人工偏好标签即可实现可验证的奖励信号优化。

2

章节 02

项目概述

本项目是一个完整复现DeepSeek-R1论文推理训练流程的开源实现,目标是通过Group Relative Policy Optimization (GRPO) 技术,教会7B参数的语言模型逐步推理解决数学问题。与需要人工标注偏好数据的PPO不同,GRPO通过组内相对奖励消除了对独立评判网络的需求,显著降低了计算开销。

该实现基于Qwen2.5-7B-Instruct模型,在单张NVIDIA H100 NVL(99.9GB VRAM)上完成训练,为中小型团队提供了可复现的推理能力增强方案。


3

章节 03

第一阶段:SFT冷启动(监督微调)

目标:在启动强化学习之前,先让模型学会"思考"的输出格式。

训练数据包含约27,000个示例:

  • GSM8K训练集(7,473条):中小学数学应用题
  • NuminaMath-CoT采样(20,000条):竞赛级数学题及其思维链解答

关键训练配置

  • 全参数微调(不使用LoRA),确保模型有足够容量学习新行为
  • 2个epoch,有效batch size 32
  • 学习率2e-5配合余弦衰减
  • 关键技巧:对prompt token进行loss masking,让梯度只流经推理完成部分

训练结果:训练损失0.3357,token准确率92.5%,耗时约2小时。

4

章节 04

第二阶段:GRPO强化学习

核心创新:GRPO不需要独立的critic网络,而是利用组内相对奖励作为baseline。

奖励函数设计(可验证的三元组):

奖励维度 权重 判定逻辑
正确性 1.0 解析的最终答案与标准答案匹配
格式 0.5 包含有效的<think>...</think>标签结构
长度惩罚 -0.1(软性) 响应超出500-800 token范围时的惩罚

关键超参数

  • 组大小G=4:每个问题生成4个候选答案
  • KL系数0.04:防止策略偏离SFT参考点过远
  • 1,000个GRPO步骤,学习率5e-7

5

章节 05

基准测试结果与分析

使用lm-evaluation-harness在相同设置下评估三个模型阶段:

基准测试 Instruct基线 SFT检查点 GRPO最终
GSM8K 8-shot 82.64% 75.51% 75.66%
MATH 500 4-shot 20.60% 24.20% 24.20%
ARC-Challenge 25-shot 67.06% 62.97% 62.80%
6

章节 06

关键发现

1. GSM8K分数下降是评估artifact

SFT训练改变了模型的输出格式——现在模型会先生成<think>推理链再给出答案,而lm-evaluation-harness的GSM8K解析器是为原始Instruct模型的直接回答风格校准的。这并不意味着推理能力倒退。

2. MATH基准+3.6%是真实能力提升

模型从未在MATH问题上训练过(训练数据只有GSM8K和NuminaMath),但从20.60%提升到24.20%表明SFT成功安装了一个可泛化的推理格式,而非简单的模式匹配。

3. GRPO提升有限的原因:奖励饱和

项目作者发现了一个重要的技术现象:由于SFT冷启动已经非常成功(GSM8K rollout大多正确),组内4个rollout经常获得相同奖励,导致优势信号(advantage)接近零。

测量数据显示:frac_reward_zero_std平均为0.63,意味着63%的batch产生了接近零的梯度信号。这是DeepSeek-R1论文中提到的课程过滤要解决的问题——应该选择模型只有1-2个rollout正确的中等难度问题,而非80%都正确的简单问题。


7

章节 07

为什么SFT使用全参数微调而非LoRA?

LoRA只更新低秩适配器的少量参数,适合增量学习。但冷启动的目标是安装一个全新的行为先验(结构化CoT格式),全参数微调给模型更大的分布偏移容量。H100的99GB VRAM足够容纳7B模型的全参数训练。

8

章节 08

为什么GRPO只用GSM8K?

GRPO需要可验证的奖励信号——答案必须是可程序化检查的。GSM8K的答案是干净的数值,而NuminaMath竞赛题有更复杂的答案格式,会增加奖励函数错误率。