今天带来DeepSeek R1的解读
一、介绍
deepseek主打复杂推理任务,如数学、代码任务。
R1以预训练过的V1-base初始化,主要发挥了RL在长思维链上的优势,R1-Zero直接RL而在前置步骤中不进行SFT,即缺少了有监督的指令微调阶段,探索了思维链解决复杂问题的能力,使得R1-Zero表现出自我验证、反思、产生长思维链的能力;同时用较大的模型的复杂推理能力来蒸馏,以提升llama和qwen的推理能力。
R1在数学、代码等benchmark上表现出色,一些数据集上超过O1
二、方法
2.1 R1-Zero
探索预训练后不经过SFT直接进行RL在推理任务上的能力
2.1.1 策略优化算法
使用GRPO(Group Relative Policy Optimization)的强化学习策略优化算法,以减少RL阶段的训练消耗,具体来说是在PPO的优化目标的基础上,在每个数据点上采样多次,使用多个样本的奖励输出归一化后作为优势函数,代替了价值模型在优化算法中的需求,少了一个需要更新参数的模型。
2.1.2 奖励模型
使用基于规则的奖励,以及格式奖励,要求其将思考过程放在两个思考token之间;无基于模型的奖励,防止reward hacking(类似于GAN中的模式坍塌,即防止奖励模型在强化学习过程中无法泛化到所有任务)在大规模强化学习过程中出现。
2.1.3 现象
随着RL的过程,模型表现出更复杂的行为:
1.响应长度加长
2.出现aha moment,即训练到一定程度开始出现回顾之前的输出步骤的现象。
看起来是模型在回顾之前的输出,并且去寻找不同的解决问题的路径,给真正的智能带来一定曙光
2.1.4 缺点
R1-zero
未经过SFT,存在可读性不强,语言混合的问题
2.2 R1
探索两个问题:(1)以一部分高质量数据冷启动加强推理表现并且加速收敛(2)训练更可用的长cot和通用表现的模型
2.3.1 冷启动
为防止R1-Zero的不稳定的从V3 base模型的冷启动阶段强化学习,构建、收集了小部分长CoT的冷启动数据去微调base模型作为强化学习的起始,这里的微调数据从R1中以few shot的形式生成
好处是:
1.规定了输出格式,可读性更好;
2.效果更好,SFT数据经过人工后处理
2.3.2 推理导向强化学习
在强化学习过程中加入语言一致性的奖励,将其作为基于规则的奖励作为奖励的第一部分;
同时,将可基于规则判断产生的推理任务的数据作为奖励的第二部分
2.3.3 拒绝采样和有监督微调
推理数据:
使用2.3.2阶段训出来的模型使用拒绝采样收集SFT数据;同时通过采用生成奖励模型,将事实和模型输出丢给v3做判断;过滤了混合语言、长段落、代码块
收集共600K推理相关的训练样本
非推理数据:
采用V3的SFT数据,对特定非推理任务,用V3产生可能的思维链数据,过于简单的问题不在响应中提供CoT数据
200K推理无关数据
将V3-base 在以上SFT数据上训练2epoch
2.3.4 全场景强化学习
对推理数据,和R1一样根据规则的强化学习;通用数据,按V3的流程
2.4 蒸馏
主要在qwen和llama上做,只做了SFT,验证蒸馏的作用
三、其他探索
3.1 蒸馏和强化的对比
在Qwen base的基础上对代码、数学、STEM数据进行强化学习训练,和用R1蒸馏做了对比,发现蒸馏效果更好,
那么为什么不用R1-zero做蒸馏,这样不是更公平些,比较zero没做sft而R1流程更全?
感觉是trick
3.2 失败的尝试
过程奖励模型:由于在推理中定义细粒度步骤很困难;界定中间步骤是否正确同样困难、存在奖励hacking问题
Monte Carlo Tree Search:涉及将答案拆解成小步骤,让模型系统地探索解决空间。该方法当训练规模变大时、词表变大时搜索树变得很大;同时存在价值模型不好训练的问题
四、结论和展望
R1和R1 zero探索了纯RL对推理任务的极大提升,同时用R1通过(冷启动+RL)训练出一个产推理类型数据的模型,以合成长cot的SFT以及强化数据,再进行SFT+强化过程,取得有力效果;同时探索了蒸馏的意义,提升小模型的能力。
四个未来做的:
1.通用能力
2.多语言
3.提示词工程
4.软件服务支持