Reasoning模型复现R1经验综述

作者 | xxx 编辑 | 自动驾驶之心

原文链接:xxxxx

点击下方卡片,关注“自动驾驶之心”公众号

戳我-> 领取自动驾驶近15个方向学习路线

>>点击进入→自动驾驶之心『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。


作者的复现效果:

97e2e444aaacf8d2a3b78f68eb3db6c8.png
来源于https://github.com/Mryangkaitong/deepseek-r1-gsm8k/blob/main/log/log.png

作者使用Qwen2.5 1.5B-Instruct在GSM8K训练完的准确率为74.29%。


HF的Open-R1(复现R1)

github.com/huggingface/open-r1/


作者复现的训练步骤:

61fea32a41771ee3767b12c627b7ee4e.png
  1. 首先对有指令遵循的模型蒸馏DeepSeek R1的训练数据,得到Open R1-Distill;

  2. 对Base 模型用GRPO训练得到OpenR1-Zero;

  3. 对Base模型先蒸馏Open R1-Zero的指令遵循数据,再使用GRPO训练得到Open R1。


作者的复现效果

584db0a53342eebdb4f2fc0aee5b1493.png
左侧是HF Open R1,右侧是DeepSeek 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 开始保持其新的格式形式。

f8f014b51bffcf4ee8eaa2fa40abe2eb.png


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现象。

  • 通过高温采样可以得到多样性强的结果。


讨论

本人水平有限,如有问题,欢迎指正,本人不胜感激!

① 自动驾驶论文辅导来啦

ca5a34e128dcaffdf3ce452355741d43.jpeg

② 国内首个自动驾驶学习社区

『自动驾驶之心知识星球』近4000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知端到端自动驾驶世界模型仿真闭环2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案大模型,更有行业动态和岗位发布!欢迎扫描加入

b7a2b301c06c708c3fc3006e90f539c8.png

 ③全网独家视频课程

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

9ce02cb5cd0297d590d1df503c6d8fc4.png

网页端官网:www.zdjszx.com

④【自动驾驶之心】全平台矩阵

03063c1798f850247133320c66dd798c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值