读了论文感觉字里行间透露出一句话就是RL is all you need。
大致总结一下,主要的工作是从基座模型DeepSeek-V3训练推理模型(也就是要求模型在推理基线测试上取得好结果)。推理还是基于CoT,毕竟必须得用上下文空间/推理时间来解决更高复杂度的问题。
主要训练了俩大模型R1-zero和R1,然后用R1蒸馏了几个通义千问和Llama的小模型。
R1-Zero
R1-zero主要贡献基本就是证明要提高模型推理能力,只需要RL就够了。具体训练方式就是rule-based reward+GRPO,但我在一篇知乎文章上看到更常用的PPO以及Prime也是可以复现一定结果的。基本上就是大模型后训练常见的策略梯度法都可以work。
细节如下:
Prompt提供CoT模版,要求模型将思考过程放到 <think> </think>标签里,回答放到<answer> </answer>标签里。Rule-based reward基于两点:1. answer里的答案是否正确,2. 回答是否符合模版规定的格式要求。没有基于过程的奖励,也不基于SFT,无需CoT数据。
仅通过RL训练,R1-zero就取得了几乎相当于o1的推理能力。并且在这个过程中自然涌现出类似反思、检查的行为。
但是R1-zero的思考过程缺乏可读性,并且会混杂多种语言,为了解决这些问题并且进一步提高推理能力训练了R1。
R1
R1基于四个阶段训练:
- 冷启动:用精心挑选的CoT数据进行SFT,提高了思考的可读性,以及(文章声称)利用人类数据的先验知识增加推理潜力。
- 用和R1-zero一样的方法进行RL训练
- 再次SFT,但这次用模型自己产生的CoT数据,结合正确结果让非推理模型V3打分,拒绝低分的样本(拒绝采样),并且筛去了包含语言混合,长段落,代码块等难懂的数据。最终筛选得到60万条推理数据。对于非推理数据,复用了V3 SFT的管线和数据集,20万条,对于其中的简单问题,不使用CoT prompt。
- 再次RL,但在综合场景上。除了推理任务,新增了一些通用任务,对齐人类偏好,增加一些模型安全性。类似于RLHF、安全性对齐。
这样得到的R1解决了R1-zero的缺乏可读性的问题,并在一些推理基线测试上超过o1。
蒸馏模型
接下来文章证明了推理模型可以蒸馏到小模型上。蒸馏的方法就是R1作为教师模型生成数据,只通过SFT蒸馏到小模型上。比较搞笑的结果是,R1蒸馏到通义千问Qwen-14B上的模型效果比阿里自己在Qwen-32B上练的推理模型效果还好。
然后证明了,直接在Qwen-32B上按和R1相同方法进行RL训练,无法达到R1蒸馏到Qwen-32B的推理能力。说明推理能力可能必须通过大模型得到,再蒸馏到小模型上。(V3参数量为671B)
最后提到尝试过但是失败的方向,一个是过程奖励模型,也就是利用人工标注的带有过程奖励的数据(比如解题按中间步骤给奖励)进行RL学习,分析原因主要还是因为过程奖励实际上存在太多人为引入的bias导致不可scalling/可能被滥用;另一个是MCTS,蒙特卡洛树搜索,失败的原因是搜索空间太大而且深度太深,计算开销大(计算LLM的状态转移比计算棋盘的状态转移成本高多了),限制扩展次数又会导致值函数估计错误陷入局部最优。(个人理解是在大模型RL微调上最好不要用过度依赖值迭代收敛性的方法,直接估计优势+策略梯度就好了)
为没有背景的同学解释一下英文缩写:
RL: Reinforcement Learning, 强化学习。基本上就是基于数据更新agent(智能体),使其策略(即根据当前状态/历史轨迹产生当前动作/动作分布的函数)最优化(最大化reward回报/最小化Cost代价)的一类学习方法。在大模型微调语境下,一般来说agent就是LLM,动作就是输出某个token,策略就是LLM给出的token的概率分布,当然也有单独训一个agent或者残差的。
CoT: Chain of Thought, 思维链。通过微调让大模型输出带有思考过程的文本,即思维链。因为LLM推理时能看到之前输出的结果,所以可以理解为CoT给LLM提供了草稿纸/推理时记忆/缓存来记录中间结果,也让LLM运行了更长时间,从而可以让LLM解决更复杂的问题。一般用CoT来实现大模型推理能力。
SFT: Supervised Fine Tuning, 监督微调。用人工产生/筛选的高质量数据让大模型训练,用交叉熵损失反向传播更新模型参数。本质上和pretrain过程一致,只是强调让模型在特定数据集上拟合,而且是在后训练环节,所以叫有监督的微调。
RLHF: RL with Human Feedback, 基于人类反馈的强化学习。有时chatGPT会问你两个生成结果(在RL意义下是trajectories或者rollouts)哪个更好,这就是获取人类反馈。根据人类反馈/或者说任何偏好,有一套RL方法,用这个来微调大模型的方法就是RLHF。
GRPO: 组相对策略优化。不用值迭代,直接分组排序得到一个启发式的优势然后用来做策略梯度。
Rule-based Reward: 基于规则的奖励。个人理解是相对于过程奖励/人工标注的奖励/人类偏好奖励而言的,毕竟是完全基于规则算出来的奖励。