作者 | xxx 编辑 | 自动驾驶之心
原文链接:xxxxx
点击下方
卡片
,关注“
自动驾驶之心
”公众号
小小梦想的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。
作者的复现效果:
来源于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/
作者复现的训练步骤:
-
首先对有指令遵循的模型蒸馏DeepSeek R1的训练数据,得到Open R1-Distill;
-
对Base 模型用GRPO训练得到OpenR1-Zero;
-
对Base模型先蒸馏Open R1-Zero的指令遵循数据,再使用GRPO训练得到Open R1。
作者的复现效果
左侧是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。
-
参数设置
每个设备一个BatchSize,梯度累计8步,采样8次,使用VLLM。