专栏名称: 深度学习这件小事
机器学习算法、深度学习算法、自然语言处理等干货知识集中营
目录
相关文章推荐
APPSO  ·  华为的新形态手机 Pura X ... ·  3 小时前  
小众软件  ·  另外两件事[250320] ·  10 小时前  
小众软件  ·  安卓订阅管理器:Tilla ·  昨天  
小众软件  ·  内购限免:订阅制软件管理、提醒应用 ·  昨天  
51好读  ›  专栏  ›  深度学习这件小事

32b R1-Zero复现,聚焦scaling

深度学习这件小事  · 公众号  ·  · 2025-03-13 00:00

正文

大模型智能|分享
来源 | 新智元

截止到目前,包括hf在内已有很多组织尝试完整复现R1-Zero,但目前开源的一些项目主要还是聚焦到简单场景和小size模型上(以qwen-7b系列为主)

完整复现出R1-Zero的test scaling曲线并不是一件容易的事,需要高质量的数据,较大size的模型。本文尝试总结与记录我们完整复现R1-Zero的过程。

01
已有的开源项目参考
  • https://github.com/huggingface/open-r1
  • https://github.com/hkust-nlp/simpleRL-reason?tab=readme-ov-file
  • https://oatllm.notion.site/oat-zero
  • https://github.com/Jiayi-Pan/TinyZero
02
从7b出发

复现simple RL

tinyZero的任务场景过于简单,因此我们尝试先从simpleRL的复现入手。选择simpleRL的理由,是因为其所用的训练数据相对简单,模型7b很好训练,能很快获取一个数据和算法认知,以便更好地帮助我们在32b以及72b模型上训练。

训练数据

math training 3-5levelsimpleRL的训练数据使用的是chat格式:

system\nPlease reason step by step, and put your final answer within \\boxed{}.\nuser\nLet $a$ and $b$ be the two real values of $xforwhich\\[\\sqrt[3]{x} + \\sqrt[3]{20 - x} = 2\\]The smaller of the two values can be expressed as $p - \\sqrt{q}$, where$p$ and $q$ are integers. Compute $p + q$.\nassistant

我们同时基于R1提供的prompt制作了以下格式数据:

A conversation between User and Assistant. The user asks a question, and the Assistant solves it. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer, ensuring that the final result in the answer is enclosed in \\boxed{{}}. The reasoning process and answer are enclosed within '''' and '''' tags, respectively, i.e.,  reasoning process here   answer here . User: Let $a$ and $b$ be the two real values of $xforwhich\\[\\sqrt[3]{x} + \\sqrt[3]{20 - x} = 2\\]The smaller of the two values can be expressed as $p - \\sqrt{q}$, where$p$ and $q$ are integers. Compute $p + q$. Assistant:

注意这里第二种格式的情况,eos需要用来表示,那么就有两种做法,prompt中明确提示用结尾或者修改generation配置,两者测试下来差异并不会很大,但会影响resps lens的观测

评测

math500 && AIME24

reward

针对第一种prompt,format的判定为respsonse中是否出现\\boxed字段

第二种prompt的话,format的判定为response是否满足 reasoning process here answer here 的格式要求并且出现\\boxed字段

奖励分成三种情况:

  • 不满足format:-1
  • 满足format,answer错误:0
  • 满足format,answer正确:1

判断函数使用math-verifiy和qwen-eval

基座与算法

分别对比了qwen-7b base与qwen-7b math base的效果

并对比了GRPO和PPO的效果差异

实验结论

1. qwen-7b ppo上测试两种prompt的区别,resps lens上第二种prompt会出现先下降后增加(快速拟合pattern并学习eos),第一种则是很快增加后基本不变,但是二者的eval效果接近。为什么lens先下降后上升,因为我们并没有去以做为结束的标志,而是通过提示让模型自己生成eos,但模型前期并不稳定,eos学的不好,所以前期通过format的约束会出现lens迅速下降去拟合正确结束的格式,然后在后期慢慢变长。

两个prompt的区别是第二种prompt更适合pretrain model,本身是个续写任务,而第一种则是chat格式,更适合sft(因为qwen做过cpt,所以有这个chat格式的qa数据,也不用担心special token没有训练过)。但整体上来讲第二种prompt更有利于涌现long cot,一个是格式pattern会收缩探索空间(减少极端负例),另一个是这种续写出来的答案更自然。

2. qwen 7b上为什么没有明显观测到cot变长的现象?

我们后续又增加了几组实验验证了,cot变长可能和两个因素有关系,训练的步数和query的难度,simpleRL所用的math数据在后期train acc已经收敛到90以上,所以无法在该训练集上进一步出现cot变长的现象。但当切换到另一个较难数据集上时,在1k步能明显观测到cot变长至1.2k tokens,但限于7b的能力,train acc也只能收敛到0.25,继续训练意义不大

3. ppo上测试结果表明qwen math-7b更优于qwen-7b,AIME24最后可以到0.5 (在线测的数据是这个Maxwell-Jia/AIME_2024),实际上离线用qwen的包跑测和simpleRL的结果一致为0.37,AIME的数据还不一样?) ,math 0.77

这个是和cpt有直接关系的,所以如果像拿到较高的zero效果,cpt应该也是重要的一个环节

紫色是qwen-math-7b ppo,橘色的是qwen-7b base
紫色是qwen-math-7b ppo,橘色的是qwen-7b base

4. ppo和grpo的效果基本持平

math-7b用grpo与ppo在AIME24上的效果对比,灰色的是grpo






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