当前位置: 首页 > news >正文

【RL系列】StepFun之Open-Reasoner-Zero

1. 简介

开源了一个大规模RL训练框架之Open-Reasoner-Zero,仅使用vanilla PPO,GAE中参数 λ = 1 , γ = 1 \lambda =1, \gamma =1 λ=1,γ=1,rule-based reward,不需要KL regularization就可以增加response length和benchmark上的指标。跟DeepSeek-R1-Zero表现差不多。
在这里插入图片描述

  • 主要贡献:
    • 开源了一个基于base LLM的large-scale RL的训练框架。
    • 分享了实验分析及教训。
    • 开源了完整的训练代码,参数,数据,模型权重等。

2. Basic Settings

  • base model:Qwen2.5-7B,Qwen2.5-32B
  • SFT:没有经过任务finetune
  • 框架:基于openRLHF开发
  • prompt:见下图
    在这里插入图片描述
  • Dataset
    • 数据:考虑数据的数量(quantity) ,多样性(diversity)和质量(quality)。
    • 搜集和清洗过程:
      • 搜集包括AIME(up to 2023),MATH,Numina-Math,Tulu3 MATH,OpenR1-Math-220k等其他开源数据集。为了保证数据集的难度,在AMC,AIME,Math,Olympiads和AoPS等搜集数据作为难的prompts。
      • 使用编程方式合成一些额外的推理任务数据。
      • 过滤掉一些rule-based reward function评估不好的数据。
      • 训练一些模型过滤数据,用来过滤通过比例过高或零通过的数据。
      • 数据集大小:129K
      • 通过训练一个模型辨别一些困难的样本(64次回答,回答对的个数少于4),搜集到了13k的prompts,然后用于模型最后的训练(100 additional steps)。
  • Reward Function
    • 只有rule-based reward,没有format rewards。rule-based reward计算是抽取之间的内容, 用于跟reference answer对比。对于跟reference answer完全一致的anser给1,其他给0。
    • 虽然没有format reward,但是模型能够很快的学习到格式。并且实验证明,复杂的reward设计是没有必要的,甚至可能会造成reward hacking。
  • RL算法
    • 使用PPO算法,目标函数为:
      在这里插入图片描述

3. Key Finding

  • RL Algorithm Key Implementations:vanilla PPO算法就能训练的很好,GAE参数在训练中很重要,当 λ \lambda λ=1.0, γ \gamma γ=1.0,训练稳定性和效果都是最佳。
  • Minimal Reward Function Design:简单的reward设计效果就很好,可以避免reward hacking
  • Loss Function:没有KL-based regularization。
  • Scale up Training Data:scaling up data quantity and diversity至关重要。

4. 实验

  • 训练细节:
    • 用Qwen-2.5 base model初始化policy和critic model。
    • value head 随机初始化 μ ( − 5 , 5 ) \mu(-\sqrt{5}, \sqrt{5}) μ(5 ,5 ),without bias term。
    • policy和critic在训练过程中,没有共享网络。
    • policy和critic都使用AdamW with β = [ 0.9 , 0.95 ] \beta=[0.9, 0.95] β=[0.9,0.95] ,并且没有weight decay。
    • learning rate:policy为 1 ∗ 1 0 − 6 1*10^{-6} 1106,critic为 5 ∗ 1 0 − 6 5*10^{-6} 5106
    • learning rate scheduler:constant learning rate with linear warm-up of 50 optimizer steps。训练中采用sample packing。
    • 每个生成步骤包含128个prompts,每个prompt生成64个responses。生成temperature和top-p为1。严格执行on-policy,每个生成对应一次optimization step。针对critic model,对off-policy updates不是很敏感,所以将experiences分成12个mini-batches,每个iteration执行12次optimization steps。
    • 在训练中,使用batch level advantage normalization。
    • 针对32B模型,采用退火机制,在训练最后阶段,使用上面提到的困难样本训练模型,learning rate采用linear decay schedule,在100个step降低到 3 ∗ 1 0 − 7 3*10^{-7} 3107
    • 训练中,没有任何的KL-related regularization 或 entropy bonuses。
  • 实验结果
    在这里插入图片描述
    在这里插入图片描述
    • 从上面两个图中,可以看出模型随着训练突然变好,有突现的推理能力。
      在这里插入图片描述
    • 从上图中可以看出,模型是通过思考得到正确的答案。并且有Aha Moment。
      在这里插入图片描述
    • 从上图中可以看出, λ \lambda λ参数和KL的消融实验结果。
      在这里插入图片描述
    • 从上图中,可以看出训练数据大小对效果的影响。
      在这里插入图片描述
    • 从上图中可以看出,模型大小对效果的影响。

5. 总结

  • The bitter lession:模型指标的改进主要靠scale of training data,model size及training iterations,而不是复杂的设计。最重要的事情是怎么设计一个简单有效的RL算法,然后scale up the training process。
  • GAE中参数 λ = 1.0 , γ = 1.0 \lambda=1.0,\gamma=1.0 λ=1.0γ=1.0比较好。
  • 训练过程中,不使用KL散度和entropy bounses比较好。
  • 简单rule-based reward比较好,容易避免reward hacking。
  • 数据集的质量,多样性,数量对训练结果影响很大。

6. 资源:

  • github:https://github.com/Open-Reasoner-Zero/Open-Reasoner-Zero
  • huggingface:https://huggingface.co/Open-Reasoner-Zero
http://www.dtcms.com/a/121773.html

相关文章:

  • 机器学习 Day09 KNN算法
  • 大数据专业学习路线
  • 某团某点评mtgsig1.2 H5guard加密算法剖析
  • 深入解析Java中的栈:从JVM原理到开发实践
  • 基于IDEA+SpringBoot+Mave+Thymeleaf的系统实现
  • 量子计算入门:开启未来计算的次元之门
  • 华为数字芯片机考2025合集4已校正
  • 【安卓】APP生成器v1.0,生成属于你的专属应用
  • FRP练手:hello,world实现
  • JavaScript的可选链操作符 ?.
  • 【WPF】IOC控制反转的应用:弹窗但不互相调用ViewModel
  • 构建实时、融合的湖仓一体数据分析平台:基于 Delta Lake 与 Apache Iceberg
  • 基于机器视觉的多孔零件边缘缺陷检测(源码C++、opencv、凸包、凸缺陷检测)
  • eplan许可证的用户权限管理
  • 4.实战篇-延迟约束
  • 基于MCP协议调用的大模型agent开发02
  • 11. 盛最多水的容器
  • Linux系统之rm命令的基本使用
  • leetcode每日一题:子数组异或查询
  • 主键索引和唯一索引的区别
  • linux安装mysql常出现的问题
  • 【Linux】进程信号(下)
  • 显示背光发烫异常解析
  • SQL语法进阶篇(一),数据库复杂查询——子查询
  • Redis过期key处理、内存淘汰策略与缓存一致性策略实践方案
  • PG:数据库表年龄大和表大的解决方案
  • Vue 框架组件间通信方式
  • Matplotlib图表坐标轴中文标签显示问题
  • 打印大X | 第六届蓝桥杯省赛C++C组
  • TDengine 数据模型设计:多列模式与单列模式对比(二)