专栏名称: 极市平台
极市平台是由深圳极视角推出的专业的视觉算法开发与分发平台,为视觉开发者提供多领域实景训练数据库等开发工具和规模化销售渠道。本公众号将会分享视觉相关的技术资讯,行业动态,在线分享信息,线下活动等。 网站: http://cvmart.net/
目录
相关文章推荐
电商头条  ·  张兰留了一手,麻六记门店开播,带货超500万 ·  23 小时前  
蛋先生工作室  ·  最新豆粕、玉米、生猪行情 ·  2 天前  
西藏市场监管  ·  事关无理由退货!5月1日起正式实施! ·  3 天前  
西藏市场监管  ·  事关无理由退货!5月1日起正式实施! ·  3 天前  
豪玛正能量  ·  【电商时讯】2025年春节线上电商火爆 ... ·  4 天前  
51好读  ›  专栏  ›  极市平台

Deepseek R1 Zero成功复现全过程:三阶段RL,Response长度涨幅超50%,涌现语言混杂

极市平台  · 公众号  ·  · 2025-02-10 22:00

正文

↑ 点击 蓝字 关注极市平台
作者丨涮月亮的谪仙人
来源丨https://zhuanlan.zhihu.com/p/21290410831
编辑丨极市平台

极市导读

Deepseek R1 Zero模型通过三阶段强化学习(RL)成功复现的过程记录,模型在测试集上的准确率从0.2提升到0.41,输出长度增长超过50%,并涌现出多语言混杂、迟疑、多路径探索等能力,展示了强化学习在提升模型性能和推理能力方面的潜力。 >> 加入极市CV技术交流群,走在计算机视觉的最前沿

项目代码可见:Unakar/Logic-RL(https://github.com/Unakar/Logic-RL),欢迎关注和star!

我们将开源完整的wandb曲线和训练日志,wandb report(https://wandb.ai/ustc_ai/GRPO_logic_KK/reports/GRPO-Zero--VmlldzoxMTIwOTYyNw?accessToken=gnbnl5mu5pwfww7gtwxymohg85w7d7vthvjvbl4w8yxg0a99vf1k22m11e61cvv8)

在大四的最后一个寒假,和@AdusTinexl @ShadeCloak 两个小伙伴捣鼓出了点有意思的东西,非常开心,欢迎各位合作,指导!

先展示一下结果:

基座模型Qwen 7B在测试集上只会基础的step by step逻辑。

无 Long CoT冷启动蒸馏,三阶段Rule Based RL后 (约400steps),模型学会了

  • 迟疑 (标记当前不确定的step等后续验证),
  • 多路径探索 (Les't test both possibilities),
  • 回溯之前的分析 (Analyze .. statement again),
  • 阶段性总结 (Let's summarize, Now we have determined),
  • Answer前习惯于最后一次验证答案(Let's verify all statements),
  • Think时偶尔切换多语言作答 (训练数据纯英文的情况下,思考部分是中文,最后answer又切回英文)

测试集上性能也一举超越了gpt4o 的0.3,达到了 0.41的准确率,相比自身初始0.2 acc翻了一倍

非常漂亮的回复

demo1:迟疑,回溯,总结,verify。训练后期模型总是倾向于在最后输出answer前,优先全部verify一遍。这些能力是RL训练涌现的,未加任何引导

偶尔的多语言现象

demo2: 多语言的例子,思考忽然说中文,最后为了格式奖励用英文做最终回答,回复是对的

demo3:训练前模型原本的输出作为参考, 笨笨的也很可爱,看得出来是一点verify之类的基本思考单元也没有

Response长度增长

Demo 4, Settings: prompt mean 276 tokens, origin response mean 400 tokens

据我所知,这是第一个稳定实现输出长度大幅超越原始模型平均长度的 (数据集prompt长度全部小于300 tokens,相比于基座模型原本输出的平均长度 400 tokens, 训练后期平均长度稳定在650 tokens,约50%的涨幅)

Reward曲线

我们设置了严苛的format reward和Answer Reward。

Reward只有这两部分构成,避免任何reward hacking。

我们编写了不少if else逻辑和正则。刚开始模型总能以匪夷所思的方式绕过我的预想,在和它一次次的斗智斗勇里完善了rule的编写

我们发现模型在学习format的时候,其实是一个 快速收敛--逐渐崩坏--又忽然找回format 的形式,与我们三阶段RL训练设置吻合。

还有一个有趣的小发现, 在中间阶段,模型似乎认为格式反而阻碍了它的思考 :日志里看到不少例子,模型在 tag开始后意识到自己犯错了,想重回 进入思考模式,可惜被format reward狠狠惩罚了

Demo 5, 依次是平均reward, 全对的比例,格式错误比例,答案做错的比例

基本Settings

训练数据合成

其实只有2K不到的训练数据集, 完全由程序合成,确保对基座模型是OOD数据

其中逻辑问题类似老实人和骗子的益智题,老实人总说真话,骗子总说假话,下面N个人,各有各的表述,请判断谁是骗子。我们以此为例讲解实验细节。

可控性也不错,可以人为设置难度分级。测试下来gpt4o的acc在0.3左右,而3epoch的RL训练后,我们成功让qwen-7B达到了0.41。

gpt4o和claude sonnet在这种逻辑题上的准确率出乎意料的低。我们选了一个合适的人数来控制难度,确保它高于qwen 7B当前的能力,但又不会过难(在8个人的情况下,qwen完全不能作答,RL训练曲线也堪比蜗牛爬。我们最后选取了5人作为基线)

模型基座选取

我们注意到deepseek官方开了一系列distill模型,测试下来感觉有点矫枉过正了,小参数量承载了超越其自身的推理能力。回复里的wait, alternatively这种字眼频率过高。

Deepseek distill系列选了qwen-math-7B作为基座。我们本来也是这个,后来发现这个模型有坑:

  1. 首先它指令跟随能力比较一般,很难学会format;
  2. 其次,它说话老爱用python code解题,训练很难克服
  3. 移除system prompt后,还是习惯用\box{}包裹answer,还是format不行
  4. Markdown味道太重,一板一眼的,Reasoning模型本应思想跳脱一些才是

我们训了几版RL,效果始终不好,最后决定放弃Qwen Math系列,Qwen 7B 1M就好

RL基本设置

我们初始还是PPO,训练确实稳定,就是太慢了。Reinforce系列测试下来又快又好,显存还低,强烈推荐。

为了和deepseek对齐,我这里放出的所有结果都是GRPO Setting下的。

由于我只有四卡A100,跑实验相当费劲,坐等来个大佬资助我跑实验 ()

Train batch size只有8,Rollout先大后小 (32-64-16)

三阶段RL

我的经验是:高温采样+超大rollout Matters

Step1: 课程学习与格式遵循

为了训练的平稳过渡,我们先用少量3人逻辑题做预热,使用默认采样设置。

此阶段主要是学 的格式,只要不遵守该规则,我们就施加很大的负面奖励。模型在10step训练里很快就能学会把format error降到0.1的占比

伪变长 :此阶段观察到极少量的response length ++,主要提升的是最短response的长度,max response长度基本没变,是反馈到mean length上是一个变长的过程。

以及此阶段确实验证了 Pure Rule Based RL有效性,Val acc一直在涨,不过不如SFT来收益来的快

Step2:高温采样与大量rollout

数据集过渡到正式的5人谜题,此阶段训练持续最长。也是最容易崩溃的时候。

我训了14版超参,都是崩坏的,泪目,下面讲讲一些好玩的崩坏demo。

尝试将采样温度设置为1.2附近。(实测1.5会崩,1.5什么鸟语言都蹦出来了)。topp和topk也调了一下, 主要目的是紊乱模型回复格式,破坏其markdown的输出风格,增加token多样性

下图是截取的模型一个很有意思的repeat现象,可以看得出来,RL极大地增加了verify token被chosen的概率,这纯粹是自发形成的。数据集没有任何verify相关的思考token。

1. 模型的呓语:它想verify, 要precise, 注意consistent执念很深

2. Retrying too late,但没有后悔药可以吃

模型已经到达最后需要输出结果的answer阶段了,忽然意识到自己前面犯了错,想重回think模式,但是retry太晚了,这样的行为会被给予严厉的负format惩罚

3. 忽然学会了正确地verify,以及先总结初步结论再做进一步探索,但思考过程还是比较简陋

这里有很多有意思的设置小细节和中间输出的观察,非常值得深入探索

请等后续,几周内我们会写好完整文章~

Step3: 漫长的退火

采样设置里逐步回归正规,比如温度从1.2慢慢降到0.9。

此阶段模型的输出如demo1所示,非常的成熟,有verify,有反思,有回溯,有格式,要啥有啥,我很满意的。

整体思考并不冗长,废话也不多,比distill模型的回复看起来正常多了。

学习率也逐级递减到了2e-7。此阶段模型收敛速度贼慢,但多等一会,会有很多惊喜。还是让它训着吧。

奇怪的想法

  • 语言混杂的现象非常迷人。手动查找log,似乎后期每个语言混杂的response都是对的,难道对模型来说混合语言作答是更有利于它reasoning的pattern?






请到「今天看啥」查看全文