作者 | xxx 编辑 | 自动驾驶之心
原文链接:xxxxx
点击下方卡片,关注“自动驾驶之心”公众号
>>点击进入→自动驾驶之心『BEV感知』技术交流群
本文只做学术分享,如有侵权,联系删文
小小梦想的R1模型(复现R1)
作者复现R1基于HF的open-r1,底层使用trl库,在GSM8K数据集上进行了复现,使用了4张40G的A100和Qwen2.5 1.5B-Instruct模型。代码在https://github.com/Mryangkaitong/deepseek-r1-gsm8k
奖励:
格式奖励参考了Logic-RL的工作,格式检查了以下内容:
出现在之后,
在之后,
在之后,
以上三种任意一种都是格式错误,奖励值出-1,其他出+1;
accuracy_reward直接看结果是否正确,正确奖励值为1,错误奖励值为0。
参数:
作者使用了DeepSpeed Zero3,FlashAttention2, 提示词长度最大512,回答长度最大1024,每张卡1个BS,梯度累计16步, 每次采样3个回答,学习率3e-6,BF16,使用VLLM。
作者的复现效果:

作者使用Qwen2.5 1.5B-Instruct在GSM8K训练完的准确率为74.29%。
HF的Open-R1(复现R1)
github.com/huggingface/open-r1/
作者复现的训练步骤:

首先对有指令遵循的模型蒸馏DeepSeek R1的训练数据,得到Open R1-Distill;
对Base 模型用GRPO训练得到OpenR1-Zero;
对Base模型先蒸馏Open R1-Zero的指令遵循数据,再使用GRPO训练得到Open R1。
作者的复现效果

作者的生成使用的温度系数为0.6。
Mini-R1 (基于GRPO的用来玩小游戏的模型)
作者希望能通过GRPO的训练,让模型精通Countdown游戏。Countdown 游戏是一个数字拼图游戏,玩家使用一组随机抽取的数字和基本的算术运算 (+、-、×、÷) 来达到或尽可能接近目标数字
作者的技术文章在 https://www.philschmid.de/mini-deepseek-r1
奖励设置
Format Reward:检查生成的格式是否满足[thinking][answer]的格式。满足奖励值为 1.0 ,否则为0。
Accuracy Reward:从标签中提取方程式,并根据目标以及每个数字是否使用一次对其进行评估。
生成的回答必须包含且必须可以被(.?)解析出内容,同时解析出的内容只能包含数字、运算符(+、-、、/)、括号、点号(.)和空白字符。
数字使用正确:解析出的内容中的数字只能是输入的几种数字。
使用eval运行解析出的表达式,结果需要和答案的差异小于1e-5。
异常处理:报异常直接返回0.
参数设置
每个设备一个BatchSize,梯度累计8步,采样8次,使用VLLM。
观察
在 ~50 步时,模型已学习正确的格式。...\n...
在 100 步时,求解方程的成功率约为 25%。模型开始用单词 “推理” ,见下面的例子。
在 200 步时,性能似乎收敛得慢得多,我们的成功率为 ~40%。该模型开始学习一种新的 “格式”,在其中,它通过尝试不同的组合并查看结果,类似于以编程方式求解方程式,请参阅“步骤 200 和 450 之间的成功推理样本”。
在 450 个步骤中,我们求解方程的成功率为 50%。性能仍然缓慢提高,模型从步骤 200 开始保持其新的格式形式。

Logic-RL(复现R1)
文档链接 https://evxpwrsfkdb.feishu.cn/docx/NokEdaMBmo6aqZxVdxkcSm2cnab
代码链接 https://github.com/Unakar/Logic-RL
奖励设置:
作者自己写的规则
作者发现:
我们发现模型在学习format的时候,其实是一个快速收敛--逐渐崩坏--又忽然找回format的形式,与我们三阶段RL训练设置吻合。
还有一个有趣的小发现,在中间阶段,模型似乎认为格式反而阻碍了它的思考:日志里看到不少例子,模型在tag开始后意识到自己犯错了,想重回进入思考模式,可惜被format reward狠狠惩罚了
奖励设置:
格式是否遵循think> [thinking][answer]的格式。满足奖励值为 1.0 ,否则为-1.0。
答案是否正确:如果答案正确是2,答案可以解析但是错误是-1.5,答案不可以解析是-2
参数:
模型:Qwen2.5-7B-Instruct-1M
数据集&场景:作者使用了不到2K合成数据集。 场景:逻辑问题类似老实人和骗子的益智题,老实人总说真话,骗子总说假话,下面N个人,各有各的表述,请判断谁是骗子。
训练(全局GRPO):
预热:作者先使用一共三个人的逻辑问题作为训练集,3epoch的RL训练后,成功让qwen-7B达到了0.41。模型在10step训练里很快就能学会把format error降到0.1的占比
训练:高温采样设置温度系数1.2
退火:温度从1.2慢慢降到0.9,学习率降低到2e-7。
作者在挑选模型发现Qwen 7B MATH:
首先它指令跟随能力比较一般,很难学会format;
其次,它说话老爱用python code解题,训练很难克服移除system prompt后,还是习惯用\box{}包裹answer,还是format不行Markdown味道太重,一板一眼的,Reasoning模型本应思想跳脱一些才是。
从逻辑上确实是Qwen 7B Math更高,但是格式遵循不如Qwen Instruct模型。
作者使用了GRPO,采样数逐渐减少 64-32-16(因现存有限,每个设备的BatchSize先小后大)。
simpleRL-reason(Math模型)
Qwen2.5-7B-SimpleRL训练使用了8K条math相关的数据,
SFT:作者先从Qwen 32B QwQ生成 对应回答,然后对基模进行蒸馏。
RL: 作者使用GRPO,每个采样8个回答,训练模型。
Qwen2.5-7B-SimpleRL-Zero训练只有RL步骤,无SFT。
效果
(pass@1) 33.3% on AIME, 62.5% on AMC, and 77.2% on MATH。
总结
Reasoning能力:这几个复现项目都以Qwen为基模。预训练通过较好的过滤,减少知识的冲突,提高数据质量,把世界知识灌注好,通过GRPO就可以激发模型的reasoning能力。
高效训练:强化学习可以参考OpenRLHF 、Ray和 生成时考虑VLLM。
蒸馏具有Reasoning能力的教师模型或者通过Rule-Base RL训练都可以得到不错的效果。但是蒸馏涉及到数据的选取问题,RL涉及到Rule的质量,规避Reward hacking现象。
通过高温采样可以得到多样性强的结果。
讨论
本人水平有限,如有问题,欢迎指正,本人不胜感激!
① 自动驾驶论文辅导来啦
② 国内首个自动驾驶学习社区
『自动驾驶之心知识星球』近4000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(端到端自动驾驶、世界模型、仿真闭环、2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型,更有行业动态和岗位发布!欢迎扫描加入

③全网独家视频课程
端到端自动驾驶、仿真测试、自动驾驶C++、BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、CUDA与TensorRT模型部署、大模型与自动驾驶、NeRF、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
④【自动驾驶之心】全平台矩阵