1、前言

最近Reasoning Model(推理模型)异常火爆,Kimi 和 DeepSeek 陆续推出自家的产品K1.5和R1,效果追评甚至超过o1,也引起了大家的关注,甚至OpenAI也慌了。我也第一时间体验了下产品的效果,推理能力确实惊艳。也非常好奇到底用了什么技术。国内的LLM开源玩家算是比较良心的,模型开源的同时,一些技术细节也都发表出来,也能进一步解答大家的好奇心。

2、Reasoning Model的早期猜想

自从OpenAI发布o1模型后,让我们体验到LLM在复杂问题的推理能力上的进步。Reasoning Model(推理模型)的复现之路也成为各家大模型追捧的热点。在猜想和复现的过程中,试图从OpenAI、Google、微软的近期的研究中找到一些蛛丝马迹,其中主流的一些猜测集中在使用PRM和MCTS方法,在Post-training和Inference阶段提升推理性能。

我们简单看下使用PRM和MCTS方法是如何提升推理性能的?

2.1. PRM增强推理能力

PRM(Process-supervised Reward Model)是OpenAI在Let’s Verify Step by Step一文中首次提出的概念。与之相对应的是ORM(Outcome-supervised Reward Model)。PRM和ORM都是奖励模型,两者区别:

  • PRM:过程奖励模型,是在生成过程中,分步骤,对每一步进行打分,是更细粒度的奖励模型。

  • ORM:结果奖励模型,是不管推理有多少步,对完整的生成结果进行一次打分,是一个反馈更稀疏的奖励模型。

使用PRM可以在Post-Training和Inference两阶段提升模型的推理性能。

  • Post-Training阶段:在偏好对齐阶段,通过在RL过程中增加PRM,对采样的结果按步骤输出奖励值,为模型提供更精细的监督信号,来指导策略模型优化,提升模型按步推理的能力。

  • Inference阶段:对于一个训练好的PRM,可以在Inference阶段来筛选优质生成结果。具体来说。对generator模型做N次采样(如Beam Search方法等),并通过PRM对每个采样的每步推理进行打分,最终拟合一个整体过程打分,并选取打分最高的结果作为最终的答案。

这里我们假设基础的generator模型在pretrain后做了指令微调(SFT),有基本的推理能力(能按步骤生成答案,但推理准确性可能较差)

2.2. MCTS增强推理能力

MCTS(Monte Carlo Tree Search)是强化学习领域提出的方法,通过采样方式预估当前动作或状态的价值。具体操作步骤:使用已有的策略与环境做仿真交互,进行多次rollout采样,最终构成了一个从当前节点出发的一颗Tree(每个rollout表示从当前节点到最终结束状态的多次与环境仿真交互的过程)。这颗Tree的所有叶子节点都是结束状态,结束状态是能量化收益的(量化收益的方法:比如方法1:答案错误收益-1, 答案正确收益 +3;再比如方法2:叶子节点的收益是到达叶子节点路径数/总路径数的概率,这是一种根据投票机制预估的价值,越多路径到达叶子节点,说明这个叶子节点越置信,那么这个叶子节点就有更高的奖励)。一颗Tree的叶子节点有了奖励值,就可通过反向传播,计算每个中间节点的奖励值,最终计算出整个Tree所有节点的奖励值。MCTS一次rollout包括:select,expand,simulate,backprop四个步骤。我们展开描述下四个步骤的具体工作。

  • Sample(采样): 选择一个未被探索的节点,在Reasoning Model中节点表示一个打了特定tag的推理步骤(如:planning 节点,reflection节点等)。初始情况,Tree只有一个表示原始问题的节点(如下图1的 )。

  • expand(扩展): 从未被选择的节点出发(如初始从 ),展开所有可能的子节点(如下图1中的 )。当然对于文本生成模型不可能穷举所有的子节点,需要设置个最大生成次数,在有限生成次数内的所有的不同的输出,认为是子节点的集合。

  • simulate(模拟): 从展开的子节点里,再随机选择一个节点,再展开它的子节点,重复做expand过程。直到最终到达叶子节点(生成答案)。当然这里也会控制最大树深度,模拟会进行N次。

  • backprop(回传): 通过多次模拟我们得到了一个从根节点(原始问题𝑆0 )到叶子节点(最终生成答案)的Tree,如下图1所示。我们通过计算(从当前节点出发到正确答案的路径数/从当前节点出发总路径数)的比值作为节点的奖励值。这个奖励值隐含表示的是从当前节点出发能得到正确答案的潜在的可能性。节点为例,从 出发共有4条路径,分别是: ,的奖励值为1/2。我们通过从后往前回溯,能计算出Tree中所有节点的奖励值。

图1、MCTS 生成Search Tree过程

使用MCTS提升模型的推理能力,也可在Post-Training和inference两阶段来实现。

  • Post-Traing阶段:对于每个problem 通过上述方法构造一个搜索Tree,然后进行Tree的游走遍历采样,再用采样的样本SFT或RL训练模型。

  • Inference阶段:在推理阶段,也是对一个problem探索多节点构造一颗搜索Tree,对于到达正确答案的路径,根据节点路径的置信度打分,贪心选取最优路径作为最终的推理结果。

使用PRM和MCTS训练推理模型的大致框图,如图2所示,主要是在Post Training和Inference阶段使用来提升模型的推理能力。

图2、基于PRM和MCTS的推理模型

注:这里对PRM和MCTS在Reasoning Model上的使用,是个人参考paper和网上的一些资料的总结,可能有不准确的地方。如有错误,欢迎指正~

2.3. PRM和MCTS方法存在的问题

PRM和MCTS的方法理论上都有自身的优势。对于复杂的推理过程,PRM可以按步骤做细粒度的监督,MCTS可以自动探索解空间。两者配合可以在探索(Exploration)和利用(Exploitation)上做平衡,以提升复杂问题的推理能力。

但在实践中这两种方法存在明显的局限性:

  • PRM的局限: 对于一般的推理任务,很难定义一个精细的执行步骤。对于语言模型判断一个中间步骤是否正确是一项艰巨的任务。另外对于PRM训练样本的质量要求较高,使用模型进行自动标注可能无法取得令人满意的结果,而手动标注则不利于扩展规模。一旦引入基于模型的PRM,就不可避免地会导致Reward Hacking问题。此外从头训练奖励一个奖励模型需要额外的训练资源,也使得整个模型训练流程复杂化。

  • MCTS的局限: MCTS方法核心是需要建搜索Tree,在生成模型任务中,需要提前定义好Tree的节点空间(如Planning,Reflection等类型节点),这个定义是非常难的:因为一方面生成模型面向的场景是多领域、多任务的,很难定义一个有限的节点集合来覆盖所有任务,而且就算提前定义好了一个集合,随着任务的新增,整个集合又要更新,模型要重新训练,这样就增加了维护和迭代的复杂性。另一方面token生成的搜索空间是指数级增长,在全空间做搜索是不可行的。为了解决搜索空间爆炸的问题,通常会做节点扩展限制的搜索,这样可能导致陷入局部最优解。另外MCTS方法一般依赖一个价值度量模型(如上述的PRM)来衡量节点的价值,引入价值模型也进一步增加了模型训练的复杂度。

PRM和MCTS方法,都会引入模型训练和推理的复杂性。在实际的复现Reasoning Model工作中,大家并没有应用这些技术,而是不约而同的选择了更轻量、更直接的方案。下面我们来看看国内3篇有价值的Reasoning Model的技术报告。

3、Reasoning Model三篇有价值的工作

三篇工作附原文链接,如下

  • 字节ReFT : REFT: Reasoning with REinforced Fine-Tuning

  • **kimi K1.5:**KIMI K1.5: SCALING REINFORCEMENT LEARNING WITH LLMS

  • deepseek R1 : DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning

注1:
这三篇Paper的核心的工作都是卷RL阶段来提升模型的推理能力。所以要更好的理解上述工作,要具备基本的RL的基础知识,本人之前整理过RL核心算法(PPO训练的源码阶段),如需要提前了解,可以适当参考:
-
姜富春:OpenRLHF源码解读:1.理解PPO单机训练
- 姜富春:OpenRLHF源码解读:2.PPO训练Experience数据采样过程
- 姜富春:OpenRLHF源码解读:3.PPO模型训练过程
注2:
本文并不是对三篇工作做从头到尾的翻译,二是主要讲解核心的实现思路,不会对效果、实验等细节展开讲解。如需要了解更多细节,请参考原文阅读

下面我们来看看ReFT、K1.5, R1的核心实现

4、ReFT**(Reasoning with** REinforced Fine-Tuning)

ReFT(Reinforced Fine-Turning)是字节24年初的一篇工作,ReFT方法包括两个阶段:SFT冷启阶段 和 强化学习训练阶段。

4.1. ReFT SFT冷启阶段(warm-up stage)

SFT阶段通过构造一批带推理过程的数据,来精调Base LLM模型,这个阶段主要是让模型有基本的CoT推理能力。ReFT的做法也非常简单,就是用一批开源的数据,通过Prompt工程来发压GPT-3.5t来收集样本,再SFT微调自己的小模型。

具体实现细节上,样本数据主要来源于GSM8K,SVAMP和MathQA 三个数据集,通过GPT-3.5-turbo few-shot prompting的方法收集的训练数据。数据集有两种推理格式:N-CoT, P-CoT。

作者在实验中并没有人工标注训练数据,而是完全通过self-instruct方式,基于GPT-3.5dump的训练样本。

图3、ReFT的SFT阶段样本样例数据

通过上述方法,收集了SFT数据集:62K的指令集样本,分布如下,

图4、ReFT的SFT阶段样本分布

模型训练: 这个阶段模型训练就是常规的SFT, 训练了40个Epoch(作者说这个训练步数是保证模型收敛的一个比较大的设置了)

4.2. 强化学习训练阶段(Reinforcement Learning Stage)

ReFT使用PPO的方法做强化学习,我们先回顾下PPO的具体方法,如下图5所示 (参考: 姜富春:OpenRLHF源码解读:1.理解PPO单机训练)

图5、PPO的训练流程图

4.2.1. PPO训练四阶段

  • 阶段1:先基于Pretrain model,训练一个精调模型(SFT Model) 和 一个奖励模型(Reward Model)。Reward model 一般可以基于SFT model 热启 或 基于 Pretrain model 热启训练

  • 阶段2:模型初始化,PPO过程,在线同时有四个模型,分别为

    • Actor Model : 是我们要优化学习的策略模型,同时用于做数据采样,用SFT Model热启

    • Reference Model : 代码中为initial_model,是为了控制Actor模型学习的分布与原始模型的分布相差不会太远的参考模型,通过loss中增加KL项,来达到这个效果。训练过程中该模型不更新

    • Critic Model : 是对每个状态做打分的价值模型,衡量当前token到生成结束的整体价值打分,用Reward Model热启

    • Reward Model : 这里实现的是ORM(Outcome Reward Model),对整个生成的结果打分,是事先训练好的Reward Model。训练过程中该模型不更新

  • 阶段3: 采样Experience数据,这个过程比较复杂,单独梳理一文。简述流程为:

    • 首先采样一批随机指令集(Prompt)

    • 调用Actor模型的generate()方法,采样1条或多条结果(sequences)

    • 四个模型一起参与组装Experience的多个Tensor域,用于后续模型训练

  • 阶段4: 用Experience样本,训练 Actor Model 和 Critic Model,后面单独一文介绍

重复3-4阶段,循环采样Experience数据-> 模型训练 ,直到loss收敛

由上述过程可知,做PPO训练,我们需要预先准备两个训练好的模型:Base LLM Generator 和 Reward Model。ReFT是如何准备这两个模型的?首先Base LLM Generator就是warm-up阶段SFT的模型,对于Reward Model本文作者并没有训练一个模型,而是通过定义一个规则函数,设置了一个Rule-Base RM,下面我们来看看细节。

4.2.2. Reward Model的设计:Rule-Base RM

ReFT主要是针对数学场景富集样本来训练Reasoning Model,数学计算的问题是可简单判断答案正确与否的。所以作者设置了一个判别函数作为奖励。具体如下

这里的Reward Model是个ORM,对于模型生成的中间状态,奖励都为0;对于终止状态判别有3种情况:

  1. 如果通过规则能抽取出正确答案则奖励为1;

  2. 如果抽取不出正确答案,但能解析出一个结果,奖励值设置为0.1;

  3. 如果最终结果无法解析,奖励制设置为0。

这里对错误答案的推理路径,设置了一个弱奖励的机制(赋值0.1),主要是为了减少奖励反馈稀疏的问题。如果能解析出一个答案,证明生成过程是在做一个推理的过程,虽然答案错了,但推理的执行过程对模型是有帮助的,所以设置个小的奖励值,激励模型按推理逻辑输出结果。

4.2.3. Critic Model的设计

Critic Model是对每个状态做打分的价值模型,衡量当前token到生成结束的整体价值打分,模型的结构一般跟Reward Model一致,通常也会用Reward热启。但本文中,并没有Reward Model,那么Critic Model如何设计的呢?

作者对Critic Model的设计还是遵从Reward Model的设计方式,在Base Model之上,增加一个回归头(regresion head)对每个生成的状态进行打分。ReFT也做了些优化,为了减少训练时模型的计算量和显存占用, Critic Model的参数与Actor Model(Policy Model)的参数共享。如下图所示:

4.2.4. self-training 实验设置

为了证明ReFT的有效性,作者也实现两个self-training的方法。这两个方法虽然被证明没有ReFT效果好,但这两种方法实际工作,是经常被使用的方法。所以也详细展开介绍下。有助于在实际工作中,根据自己的业务特点,选择合适的优化方案。

所谓self-training 就是不采用额外的人工标注的数据集,而是通过模型自己产出的数据再来迭代优化模型的方法。作者设置的两个self-training的实验如下:

  1. Offline Self-Training (Offline- ST) :用初始的SFT的模型作为generator,对于训练集的每个问题通过生成多次来采集多个样本。然后将采集的样本的答案跟ground Truth对比,筛选答案正确的样本,然后跟原始样本混合,再训练初始模型**。这就是我们通常使用的拒绝采样训练模型的方法。**

  2. Onlline Self-Training (Online-ST):跟ReFT类似,用SFT的模型warm-up,之后在每个训练步,我们通过当前版本的模型做即时采样,然后保留答案正确的Sample,再通过SFT训练当前版本模型,得到下一个版本的模型。重复上面的迭代过程,直到达到预期的训练步数。

为了清晰对比 Offline-ST, Online-ST和ReFT,如下图所示:

相较于上面两种Self-Training,ReFT优势主要有如下两方面:

  1. 样本充分利用: 在ReST中是基于RL的优化过程,对于采样的正负样本都参与模型训练。而上述两种Offline-ST和Online-ST两种方法都是基于SFT训练模型,SFT是只能使用正样本做模型训练的,样本使用上是不够充分的。

  2. 模型训练稳定: Offline-ST采样模型直接使用初始模型,而Online-ST采样模型是随着Policy模型的更新实时更新的,导致Online的方式可能使模型的分布大大偏离原始模型的分布。导致模型在采样的数据集上overfitting,最终实际应用中效果达不到预期。而ReST采用PPO的方法训练,模型更新过程通过KL限制Policy模型与初始Model分布不会偏离太远。保证了模型的效果稳定。

上述的Self-Training 方法,在实际的工作中,都是值得借鉴的,虽然ReFT理论上效果更好,但基于PPO的训练更复杂。可以结合自己业务的特点,考虑合适的方法驱动提升模型效果。

4.3. 总结ReFT

ReFT核心使用PPO算法来提升Reasoning的能力,相对于传统的PPO算法,主要做了两方面优化:1) 简化Reward Model ,使用的是Rule-Base Reward而非训练一个模型。2) Critic Model参数与Policy Model共享,压缩训练阶段模型的参数的存储空间,也进一步降低模型训练的复杂度。

5、Kimi-K1.5

Kimi K1.5 是个多模态的Reasoning Model,论文中对模型训练过程描述的比较详细。主要包括:预训练、监督微调和强化学习(RL)三个阶段,其中RL阶段仍然是Kimi重点优化的阶段。我们先来快速看看预训练和SFT阶段的一些细节,之后再重点看下RL阶段。

5.1. 预训练&监督微调

5.1.1. 预训练

预训练阶段比较常规,数据集包括文本和图像多领域多模态高质量数据集,训练包括三个阶段:

  1. Vision-language 预训练阶段:首先基于文本语料训练语言模型,然后进行多模态融合训练;

  2. 退火阶段:筛选公开的和合成的高质量数据来进一步提升模型的基础能力,特别富集了针对推理和知识型任务的高质量数据集,做模型训练

  3. Long-context训练阶段:这也是当前模型扩展长文能力的主要方法,在预训练的最后阶段,通过feed长文数据集提升长文理解和生成能力,Kimi最终将长文能力扩展到128K。

对于SFT精调阶段,Kimi做了两个阶段,分别是覆盖通用能力的基础监督微调和强化推理能力的long-CoT的监督微调

5.1.2. 基础监督微调(SFT)

Kimi富集了200万的监督微调数据集,其中包括100万的文本任务数据集(包括问答,编程,写作等)和100万的文本-视觉数据集(包括OCR,视觉推理等),样本数据主要通过人工标注和拒绝采样的方式富集。模型训练阶段首先以32K的序列长度训练一个epoch,然后又扩展到128K继续训练一个epoch。

5.1.3. 长思维链(long-CoT)监督微调

这一阶段重点通过Prompt方式生成长思维链的推理路径的小规模数据集,来做SFT训练。目的是让模型能够先内置一些推理的知识,学会基本的long-CoT的生成模式,能对推理过程的必要动作如:planning,evaluation,reflection,exploration等步骤做正确的、连贯的响应。

注:该步骤的数据集是基于RL阶段的数据集做后处理得到的,后面RL阶段会详细讲述数据集的富集过程

经过上述几步,模型除了具备了通用的能力,同时也有了基础的推理能力,下面就是KIMI重点优化的RL阶段,进一步提升模型的推理性能。

5.2. RL强化模型推理能力

5.2.1.策略优化算法

Kimi的RL训练过程,并没有采用PPO的方法, 而是采用了一种更轻量的类Policy Gradient的方法。具体方法如下:

首先定义一个初始的目标:找到最优的𝜋𝜃 ,使得输出的结果让Reward Model获得最大期望奖励,如下公式

其中:

  • 𝜋𝜃 是要优化的策略,𝜃 是策略的参数

  • 𝑥 表示问题,𝑦∗ 表示问题𝑥 对应的答案

  • 𝑦 是𝜋𝜃 预估的答案,𝑧 是 𝜃 预估的推理的中间步骤

  • 𝑟(𝑥,𝑦,𝑦∗) 是针对问题,参照ground truth 𝑦∗,评估模型输出的结果𝑦 的奖励值,𝑟∈[0,1] 通过奖励模型预估或规则函数计算得到。

接着,作者为了模型训练更加稳定,类似PPO,在公式(1)基础上,增加了KL的正则项,来限制优化的模型与初始模型分布相差不要太远。

其中 是控制正则项的大于0的参数。

对于公式(2),可以进一步做推导,当取最大值时,可以推导出一个解析解𝜋∗(𝑦,𝑧|𝑥) ,如下:

对于上述公式,两边同时取 𝑙𝑜𝑔 可以转化为

其中:

是一个归一化的加和项。

有了上面的转换,进一步我们通过最小二乘法的回归损失来重写loss(将真实解𝜋∗(𝑦,𝑧|𝑥) 替换成待优化函数 (𝑦,𝑧|𝑥) )如下:

对于实际采样的一批数据: () , 项可近似通过计算经验均值得到,如下推导:

最终我们用 替换 项,loss函数可重写为公式(4)如下。这个Loss是Kimi最终使用的版本。

这是一个Policy Gradient方法的变体版本,该方法移除了Critic网络计算Advantage的过程。减少的策略优化的复杂度。

注:上述公式省略了严谨的数学推导过程,只是从直观上给出了必要的公式结果。其实这里我们重点要理解的并不是数学上的证明,而是重点要get到Kimi做RL过程用的是一个类Policy Gradient的简化版本,在计算loss的时候没有依赖Critic Model。对公式感兴趣同学,可以自行推导~

5.2.2. Reward Model设计

K1.5中对于reward的设计还是比较精细的。对可直接规则判别对错的问题,用Rule-Base Reward简化打分过程。对于开放问答类问题,用Model-Base Reward。同时对于超长的CoT过程做了惩罚处理。

具体几种Reward设计如下:

  • Rule-Base Reward : 对于能简单判断对错的数学问题,直接通过规则函数来计算Reward,对于编程问题通过评估是否通过测试用例来直接判断Reward打分。

  • Model-Base Reward: 对于开放的问答类问题,训练一个Reward Model,通过模型打分

  • Length Penalty Reward:Kimi做了一个warmup的设置,在训练初始阶段不增加这个惩罚因子,让模型能学习生成long CoT,在训练后面阶段,为了防止生成过长的CoT,增加了生成长度的惩罚因子,鼓励模型进行适当思考,而不是生成过于冗长的内容。

5.2.3. RL Prompt和采样策略的精心设计

kimi通过实验表明 ,强化学习的Prompt的质量和多样性对RL学习是至关重要的,精心设计的Prompt不仅能引导模型稳健推理, 还能降低模型Reward hacking和过拟合。**好的数据集特点:领域分布多样,难度分布多样,可准确评估性。**为了确保收集到好的数据集,作者做了一系列数据筛选策略:

  • 多样性筛选策略:通过开发一些过滤器和分类器,选择有丰富推理路径且易于评估的问题。同时通过分类器,平衡不同领域的数据分布。

  • 难度分级筛选策略:使用一个相对较高的采样温度,让SFT模型生成十次答案,然后计算通过率,并将其作为Prompt难度的指标。通过率越低,表示Prompt的难度越高。利用这种方法,可以预先过滤掉大多数简单样本,并在强化学习训练期间根据问题难度探索不同的采样策略。

  • 筛选可准确评估的问题:为了避免Reward Hacking,确保每个Prompt的推理过程和答案都能被准确验证,需要排除一些容易作弊的问题。作者过滤掉了一些依赖复杂推理且容易作弊的问题,包括选择题,判断题和基于证明的问题。同时对于通过简单的Prompt多次采样能有概率回答正确问题做了过滤。

Kimi也对RL训练过程的采样策略做了精心设计,主要通过两个方法来提高训练效率:

  • 课程采样(Curriculum Sampling):作者设计先从训练较简单的任务开始,逐渐过渡到更具挑战性的任务。主要考虑是初始阶段,强化学习模型性能有限,将有限的计算预算花在非常困难的问题上往往只能产生很少的正确样本,从而导致训练效率降低。

  • 优先采样(Prioritized Sampling):关注模型表现不佳的问题。跟踪每个问题的成功率,对成功率低的问题进行更大概率采样,引导模型将精力集中在最薄弱的环节,从而实现更快的学习和更好的整体性能。

5.3. 总结Kimi K1.5

Kimi打磨K1.5的过程非常精细,从报告中可详细了解从PreTrain,到SFT精调,再到RL阶段的每一步的细节。核心工作还是集中在RL阶段。对于RL Kimi采用了一种类Policy Gradient的方法,模型训练裁剪掉了Critic Model以减少训练的复杂度;对于Reward设计比较精细,对于不同问题,不同训练阶段都有细致调整Reward 策略。同时对于采样做了课程采样和优先采样的精心设计,来提升训练效率。

06

DeepSeek-R1

DeepSeek做了两阶段探索: DeepSeek-R1-Zero 和 DeepSeek-R1。

  • DeepSeek-R1-Zero:是个纯做RL的阶段,验证RL对推理性能的提升的有效性。

  • DeepSeek-R1:由于DeepSeek-R1-Zero训练的模型可读性是比较差的,通常有多语言混合输出的问题,通用能力也较差。为了解决这些问题,并产出一个实际可用的模型。DeepSeek在R1阶段,做了多阶段的模型训练,并通过混合多任务数据,同时提升模型的通用能力和复杂问题推理能力。

我们先看看看硬卷RL的R1-Zero的一些核心细节

6.1. DeepSeek-R1-Zero

这是一个纯RL来探索模型推理能力的过程,具体RL优化过程和奖励模型设置如下:

6.1.1. 基于GRPO的RL优化过程

DeepSeek一如既往地使用自研的GRPO(Group Relative Policy Optimization)来做RL阶段的训练。GRPO原理比较简单,相对于PPO同时在线四个模型,GRPO做了简化,裁剪掉了Critic Model。GRPO中计算Advantage的过程,是一种基于组内相对优势的计算方式。具体来说,对于每个问题𝑞 ,通过Reference Model采样一组结果 {,,} ,再通过Reward Model计算一组结果的打分 {,,} 。GRPO计算每个采样 的Advantage( )就是对一组Reward Score做规范化处理(对每个采样的奖励 减去一组值的均值,再比上一组值的方差),如下公式:

GRPO与PPO的对比如下图所示。在GRPO训练过程中在线会有三个模型,其中Reference Model 和 Reward Model是Frozen的,最终只有Policy Model迭代更新的。

6.1.2. Reward Model的设计:Rule-Base RM

R1-Zero阶段只关注数学、程序类推理问题,都是能简单通过规则判别答案对错的,所以奖励模型采用的是纯Rule-Base 的设计,主要包括2类Reward:

  • 正确性校验Reward(Accuracy rewards): 数学问题通过简单的规则抽取答案与ground truth对比校验。对于程序题,通过编译生成的程序,校验是否能通过测试用例,产生一致的答案

  • 格式校验Reward(Format rewards): 校验是否thought内容是包含在‘’ 和 ‘’tags之间

6.1.3. 模型训练Prompt模板

DeepSeek训练Reasoning的指令模板相当简单,如下图,除了做些角色和格式描述,对于Reasoning的能力描述没有做过多限制,主要也是希望能激发模型的自主能力,防止过多人为设计引入Bias,干扰RL阶段模型的推理路径。(这种简单的指令集设计,确实也需要有DeepSeek-V3这样强大的基模能力才行…)

R1-Zero Prompt 模板

DeepSeek-R1-Zero的核心过程就是如此,论文中着实没有暴露更多细节

6.2. DeepSeek-R1

DeepSeek-R1-Zero 是个纯RL驱动模型训练过程,问题推理能力显著提升,但模型的通用能力有很多瑕疵,比如会输出可读性非常差的混合语言的结果。为了进一步提升模型的可用性,在R1-Zero基础上,DeepSeek又做了多阶段细致的优化过程,即DeepSeek-R1。主要的优化包括四个阶段:SFT -> RL -> 增强SFT -> 增强RL。(有点左脚踩右脚,然后直接起飞的架势…)

阶段1:SFT Cold Start 阶段

SFT的样本通过两种方式获取:1)拒绝采样:通过few-shot prompt方式,基于已有的生成模型直接生成,来富集 long-CoT的样本;2)人工标注:获取 R1-Zero可读的样本,然后通过人工方式精编样本。

在冷启阶段,对样本也设计了可读性更好的pattern,通过|special_token|将推理过程圈定起来,为了让人更便捷阅读,对样本做了summary处理。如下:

|special_token|<reasoning_process>|special_token|<summary>

最终产出数千条样本,然后训练DeepSeek-V3-Base,作为RL阶段的初始Policy Model。

阶段2:Reasoning-oriented RL 阶段

这个阶段基本就是R1-Zero的过程,为了解决多语言混合输出的问题,在训练R1过程,对Reward Model增加了语言一致性的奖励设置。具体来说,增加了Language Consistency Reward,它通过计算推理CoT过程的字符与目标语言一致的字符比例,来作为奖励打分,一致率越高奖励越高。这个奖励对模型性能有轻微的影响,但趋向于更便于人可读性的优化,是一个有用的偏好奖励的设置。

阶段3:增强SFT阶段(Rejection Sampling and Supervised Fine-Tuning)

这个阶段主要是提升模型的通用能力,包括:创作,角色扮演和其他一些通用任务。对于Reasoning 和 Non-Reasoning的样本通过不同方式富集:

  • Reasoning data :通过拒绝采样获取。这个阶段引入了一批新的Prompt数据,基于上一步得到的模型,生成多结果,最终通过Rule-Base Reward 和 强大的DeepSeek-V3作为裁判模型,精选样本。同时根据一些规则,对于混合语言的,冗长的推理CoT样本做规则过滤。最终筛选了600K的Reasoning样本。

  • Non-Reasoning data :引入训练DeepSeek-V3的通用高质量SFT数据,包括:创作、事实问答、自我认知和翻译。样本处理上,通过prompt方式调用DeepSeek-V3,在回答问题前,先生成一个思维链,保证与Reasoning Data的样本格式一致。最后收集了200K的Non-Reasoning样本。

最终用这800K样本SFT DeepSeek-V3-base模型,产出了Reasoning和非Reasoning能力兼顾的新的模型。(注:这里并没有基于上个阶段的模型继续微调,而是在基模上微调的,主要是为了保证更好的通用能力,然后进一步通过过滤后的样本继续微调,保留refine后的推理能力。)

阶段4:增强RL阶段(Reinforcement Learning for all Scenarios)

这阶段其实跟K1.5的工作差不多,对于多样的数据,采用多种奖励方式来做精细化的奖励反馈。复用了R1-Zero和 DeepSeek-V3的Reward Model的设置。其他并没有太多可关注的地方。

6.3. DeepSeek-R1总结

R1-Zero采用了非常激进的纯RL方式来提升模型的问题推理能力,虽然模型有瑕疵,但R1-Zero的做法把Reasoning Model的探索推向了一个极简方式,我个人觉得是非常有价值的尝试。但话又说回来,之所以DeepSeek能这么玩,还是要依赖于他自己有较强大的DeepSeek-V3支撑,换做其他玩家,未必可行。如果我们再详细对比R1和K1.5训练过程,都是SFT冷启,在做RL或SFT增强训练,基本的做法是趋同的。而显然Kimi的报告要更详细,DeepSeek的报告感觉是有所保留的。

7、总结

本文主要介绍了「国产之光」的三篇做Reasoning Model的工作,对于复杂问题的推理能力的探索,大家都不约而同的采用了精巧、简洁的复现方案。通过设定清晰的目标,减少过多的人为设定,基于RL端到端的自驱探索能力上限。我觉得本文最终可以用一句话总结:Reasoning Model,RL is all your need !!!

最后的最后

感谢你们的阅读和喜欢,作为一位在一线互联网行业奋斗多年的老兵,我深知在这个瞬息万变的技术领域中,持续学习和进步的重要性。

为了帮助更多热爱技术、渴望成长的朋友,我特别整理了一份涵盖大模型领域的宝贵资料集。

这些资料不仅是我多年积累的心血结晶,也是我在行业一线实战经验的总结。

这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。如果你愿意花时间沉下心来学习,相信它们一定能为你提供实质性的帮助。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

大模型知识脑图

为了成为更好的 AI大模型 开发者,这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

经典书籍阅读

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

在这里插入图片描述

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下

在这里插入图片描述

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐