在大规模语言模型(LLM)中,强化学习扮演了重要的角色。具体来说,强化学习的一个重要应用是在模型训练中的 RLHF。在这阶段,模型生成的文本被人类评估并给出反馈。这些反馈通常以奖励信号的形式传递给模型,通过强化学习来优化模型的输出,使其更符合用户需求或道德规范。此外,对于需要进行多步推理的任务(如长时间序列预测或规划),强化学习被用来引导模型选择最佳的行动序列,以实现最终目标。
本章节将从强化学习的一些基本概念开始,逐步展开到强化学习在 LLM 中的应用。
1、强化学习基本概念
强化学习(Reinforcement Learning,RL)关注智能体(agent)如何在环境(environment)中采取一系列行动,以最大化累积奖励。
1.1、强化学习基本要素
- 智能体 (Agent)
- 智能体是强化学习中的主体,它根据环境的反馈(状态和奖励)来进行决策,并通过采取某种动作与环境交互。智能体的目标是最大化长期累积的奖励,或者说,找到一个策略(policy)来决策在每个状态下应该采取什么动作
- 环境 (Environment)
- 环境是智能体互动的对象,表示外部世界。环境根据智能体的行为反馈信息:当前状态、奖励和下一个状态。环境的定义可以是物理世界(如机器人控制问题)、虚拟世界(如游戏、棋类等),或者某些抽象模型(如推荐系统、广告系统)
- 状态 (State)
- 状态是对环境当前情境的一个描述,代表了智能体所处的环境状况。例如,在玩游戏时,状态可能包括角色的位置、健康值、游戏得分等
- 动作 (Action)
- 智能体在某一时刻基于当前的状态做出的决策叫做动作。动作可以是离散的(如上下左右方向)或者连续的(如推力大小)。每个动作的选择会影响到环境的状态。智能体的目标就是找到一个最佳的动作序列,以最大化长期奖励
- 奖励 (Reward)
- 奖励是智能体执行某个动作后,环境给予的反馈,用来衡量该动作的好坏。奖励通常是数值型的,可以是正数(奖励)或负数(惩罚)。智能体的目标是最大化未来的累计奖励
- 策略 (Policy)
- 策略是智能体的决策规则,定义了在每个状态下智能体应该采取什么样的动作。策略可以是确定性的(即
,每个状态 对应唯一的动作 )或随机的(即 ,根据一定概率选择动作)。通常,强化学习的任务是学习一个最优策略,使得长期奖励最大化
- 策略是智能体的决策规则,定义了在每个状态下智能体应该采取什么样的动作。策略可以是确定性的(即
- 价值函数(Value Function)
- 价值函数用于评估每个状态或状态-动作对的好坏,帮助智能体预测在某一状态下执行某个动作之后,未来获得的奖励。常见的价值函数有:
- 状态价值函数
:给定一个状态 ,评估从该状态出发智能体能够获得的总奖励 - 动作价值函数
:给定一个状态 和动作 ,评估从状态 开始,执行动作 后能够获得的总奖励
- 状态价值函数
- 价值函数用于评估每个状态或状态-动作对的好坏,帮助智能体预测在某一状态下执行某个动作之后,未来获得的奖励。常见的价值函数有:
- 回报 (Return)
- 表示从当前时间步开始直到未来的累积奖励和,通常用符号
表示: 。回报的定义是智能体决策的重要依据,因为强化学习的目标是训练一个策略,使得智能体在每个状态下的期望回报最大化。回报通常通过折扣因子来加权,表示智能体对于未来奖励的关注程度
- 表示从当前时间步开始直到未来的累积奖励和,通常用符号
- 折扣因子(Discount Factor,
)- 折扣因子用于决定未来奖励的影响程度。值越接近 1,智能体越重视未来的奖励;值越接近 0,智能体越偏向于追求即时奖励
- 轨迹 (Trajectory)
- 轨迹(又称为回合或episode)是指智能体在一次完整的交互过程中经历的一系列状态、动作和奖励的序列。轨迹通常表示为
,其中 表示第 时刻的状态, 表示智能体在状态 下选择的动作。比如大语言模型生成时,它的状态就是已经生成的 token 序列。当前的动作是生成下一个 token。当前 token 生成后,已生成的序列就加上新生成的 token 成为下一个状态
- 轨迹(又称为回合或episode)是指智能体在一次完整的交互过程中经历的一系列状态、动作和奖励的序列。轨迹通常表示为
1.2、强化学习的算法
常见的强化学习算法可以分为以下几类:
-
基于值的方法:通过学习状态值函数或动作值函数来寻找最优策略。例如,Q 学习(Q-learning)和时序差分学习(TD-learning)
-
基于策略的方法:直接优化策略,使得智能体能选择最优的动作。例如,策略梯度(Policy Gradient)方法
-
演员-评论家方法(Actor-Critic):结合了基于值和基于策略的方法。演员(Actor)负责学习策略,而评论家(Critic)负责评估策略的好坏
-
深度强化学习:将深度学习与强化学习结合,使用深度神经网络来近似值函数或策略。著名的算法有深度 Q 网络(DQN)和 Proximal Policy Optimization(PPO)
1.3、强化学习目标
在强化学习中,特别是策略梯度方法,目标是找到一个最优策略
其中:
-
:表示在策略 下,轨迹 的回报 的期望值。也可以理解为,在策略 下,所有可能轨迹的回报的加权平均值 -
:轨迹 的回报,是指从起始状态到终止状态过程中,智能体获得的所有奖励的总和。回报是评估智能体在整个任务中表现好坏的一个指标 -
:表示一条轨迹,即智能体在环境中的状态和动作序列。轨迹可以写作 ,其中 是状态, 是动作, 是奖励 -
:在给定策略参数 下,生成轨迹 的概率。这个概率通常由策略网络 给出,即策略网络在每个状态下选择动作的概率分布 -
:策略的参数,控制着策略 的行为。在神经网络的情况下, 是神经网络的权重,决定了在每个状态下采取哪种动作的概率
期望
期望(Expectation)是描述一个随机变量的平均值或 “中心位置” 的量,提供了对一个随机过程或随机变量长时间行为的预期。
1. 期望的定义
期望的数学定义与随机变量的概率分布密切相关。如果随机变量
具有某种概率分布 ,那么期望值 是随机变量 所有可能取值的加权平均值,权重为每个取值的概率。 对于离散型随机变量
,其期望 定义为: 其中:
是 的每个可能取值 是 发生的概率 对于连续型随机变量
,期望 定义为: 其中:
是 的概率密度函数(PDF) - 积分对所有可能的
值进行求和,得到 的加权平均值 2. 期望的几何意义
期望可以看作是 “加权平均” 或 “重心” 的位置。对于离散随机变量,是所有可能取值的加权平均;对于连续随机变量,期望是概率分布的重心。可以把它理解为 “理论上的平均结果”,即如果多次进行实验或重复观测,期望值通常是这些实验结果的平均值。
3. 期望的性质
- 线性性:期望是线性的,即对于任意常数
和 ,以及随机变量 和 ,有:
- 加法性:如果我们有多个随机变量,期望值的总和等于这些变量期望值的和:
- 常数的期望:如果
是常数,那么: 4. 期望与方差
期望不仅仅是一个平均值,它还与方差(variance)密切相关,方差描述的是随机变量的波动性或不确定性。期望提供了 “中心位置”,而方差则告诉我们随机变量围绕该中心位置的离散程度。公式为:
在强化学习中,方差也非常重要,特别是在策略优化过程中。策略梯度方法中的回报
可能具有较高的方差,这使得学习过程变得不稳定。因此,很多强化学习算法采用了方差减少技术来加速收敛。 5. 期望的计算方法
在实际应用中,期望的计算通常通过采样(sampling)来实现,尤其在强化学习和其他机器学习任务中。由于计算所有可能的轨迹和回报通常是不可行的,因此常常依赖于从概率分布中采样来近似期望。
例子:
假设我们从环境中采样得到
条轨迹 ,每条轨迹的回报为 。期望可以通过样本的平均值来估计:
1.4、强化学习目标的优化
强化学习的目标就是 找到一个策略
为了找到最优的策略,通常采用梯度上升的方法,不断更新策略参数
其中:
是学习率,控制每一步更新的幅度 是关于策略参数 的梯度,表示如何调整策略参数以最大化期望回报
1.5、策略梯度计算
梯度计算步骤:
- 步骤(1):
是在策略参数 下生成轨迹 的概率分布, 是轨迹 的回报 - 步骤(3):为了将梯度的形式转化为对数梯度的形式,通过引入
(即“1”的形式)来进行转换 - 步骤(4):重新排列,将
提取了出来,而 就是最终所需要的对数梯度的形式 - 步骤(5):进一步化简,即,期望回报关于策略参数
的梯度可以通过轨迹的回报( )与对数策略概率的梯度( )的乘积来表示 - 步骤(6):在实际计算中,通常不能枚举所有的轨迹,因此用 蒙特卡洛采样 来近似这个期望。具体来说,从
条轨迹中采样来近似期望值。其中 是第 条轨迹, 是这条轨迹的回报, 是相应轨迹的对数概率的梯度。通过这种方式,策略梯度可以通过有限的轨迹样本来进行估计
接下来,计算 Trajectory 的概率
-
步骤(1):轨迹
是由一系列状态和动作对组成的序列,通常表示为 ,其中 是轨迹的长度。轨迹的概率 是该轨迹在当前策略下的生成概率,可以表示为一系列状态-动作对的联合概率: -
步骤(2):根据对数乘法法则,梯度可以分解为每个时间步的梯度之和
-
步骤(3):交换求和顺序便于表达和处理,在策略梯度方法中,
表示轨迹 的累积回报,反映了从该轨迹中获得的收益情况。将 与每一步的 相乘,相当于用累积回报对每一步的对数梯度进行加权。直观上,回报高的轨迹对应的步骤,其梯度对策略更新的影响更大,这有助于引导策略朝着获得更高回报的方向优化,体现了优势估计的思想,即通过这种加权方式突出那些对最终回报有较大贡献的动作选择
1.6、损失函数定义
为了训练 Policy 网络,需要定义一个损失函数。通过之前策略梯度的方法推导得到的目标函数:
该公式本质上是与最大化期望回报相关的表达式,通过在其前面加上负号,将原本的最大化期望回报问题转化为最小化损失函数的问题。这样就可以利用梯度下降方法,通过不断更新策略网络的参数
1.7、折扣回报的引入
虽然理论上可以用梯度下降求解,但在实际训练中,由于简单梯度下降可能存在训练不稳定等问题,通常会采用基于策略梯度的更稳定的方法,如近端策略优化(PPO)、信赖域策略优化(TRPO)等。这些方法在处理复杂的策略优化问题时,能够更好地平衡探索与利用,提高训练的稳定性和效率。
具体的,根据上述公式,如果某条轨迹
但这种简单地直接使用回报来调整策略的方式存在不足,在实际训练中,简单的策略梯度方法可能会导致训练过程不稳定,原因在于回报
为了解决回报方差大的问题,通常的做法是使用 折扣回报。折扣回报的核心思想是:给定轨迹中的某一时刻
将原来的轨迹累积回报
其中,
与 : 原本是轨迹 的累积回报,现在被重新定义的 替代, 更强调从时间步 开始的未来累计回报,并且考虑了未来奖励的折扣情况- 求和范围:
明确了是对从当前时间步 到轨迹结束时刻 之间的所有奖励 进行求和,涵盖了从当前时刻往后的所有奖励信息 - 折扣因子
: 中的折扣因子 取值范围在 之间。其作用是对未来不同时刻的奖励进行加权,随着时间步 与当前时刻 的距离增大, 的值会逐渐减小,意味着越远未来的奖励对当前决策的影响越小。这符合实际情况,因为在很多场景下,近期的奖励对当前策略的影响更为重要,同时也有助于控制回报的方差,使训练更加稳定 - 即时奖励
: 表示在时间步 发生的即时奖励,是构成未来折扣回报 的基本元素
我们修改了目标函数,使用了 折扣回报
1.8、引入基线(Baseline)
另外,在强化学习中,算法的稳定性还可能受到当前状态下的 “局势” 影响。比如:
- 在好的局势下,不论智能体做什么动作,都会获得较高的奖励。这时候,所有动作的概率都会增加,特别是那些获得高奖励的动作。这虽然可以提高回报,但由于所有动作的概率都被提升,可能导致更新过于缓慢,且训练过程中策略更新不够精确
- 例如:在一个游戏中,如果玩家处于优势局面,此时各种操作都能带来一定收益,算法可能会盲目增加所有操作的执行概率,而不是专注于进一步优化能扩大优势的关键操作,这就使得训练速度变慢,同时由于动作概率调整的不精准,也会导致训练过程的不稳定
- 在坏的局势下,动作的回报普遍较低。此时,策略很可能会被过度抑制,导致很少有动作被认为是有价值的,影响模型的探索能力
为了解决上面提到的问题,采取的常见策略是使用基线(Baseline)。基线是对回报的一个 “参考”,它允许我们对每个动作的回报进行标准化,从而去除一些不必要的干扰。
具体来说,对于每个动作的回报,用一个基线
这个基线
- 如果某个动作的回报大于基线,则说明该动作在当前状态下表现较好,应该增加该动作的选择概率
- 如果某个动作的回报小于基线,则说明该动作在当前状态下表现较差,应该减少该动作的选择概率
1.9、Actor-Critic 架构
为了学习这个基线
- Actor:负责输出策略,即在给定状态下选择动作的概率。它根据当前的策略更新选择动作
- Critic:负责评估当前策略的表现,计算每个状态的价值函数或优势函数(这里的基线
就是其中的一种实现)。Critic 的作用是对 Actor 输出的动作进行评分,告诉 Actor 哪些动作更好,哪些动作更差
在这个架构下:
- Actor 根据当前策略
输出动作的概率分布 - Critic 通过神经网络来估计每个状态的价值函数或优势函数,作为
来对奖励进行调整
因此,我们的目标函数变为:
在这个目标函数中,
1.10、引入优势函数
1. Action-Value Function
定义:
表示在状态 下,采取动作 后,按照策略 执行,最终获得的回报的期望值。这个值是动作价值函数,用来评估在某个状态下,执行某个动作的期望回报。 作用:通过
,可以量化每个动作的价值,从而指导智能体做出选择。在强化学习中,通常需要比较不同动作的 -值,选择 -值最大(期望回报最大)的动作。 2. State-Value Function
定义:
表示在状态 下,按照策略 执行,最终获得的回报的期望值。与动作价值函数 不同,状态价值函数仅仅评估状态的好坏,考虑了在该状态下所有可能动作的期望回报。 作用:通过
,可以评估某个状态的价值,从而指导智能体决定是否继续待在该状态或采取某个动作。 3. Advantage Function
定义:优势函数
是在给定状态 和动作 下,评估该动作相对于该状态下期望动作的优势。它是通过动作价值函数和状态价值函数之间的差异来定义的: 换句话说,优势函数
衡量了某个动作相对于其他动作的表现优劣。如果 ,说明在状态 下采取动作 是一个好的选择;反之,则不太理想。 作用:优势函数通过去除了状态的部分(即
),直接比较动作的优劣。它能帮助智能体专注于那些在当前状态下优于期望动作的行为。
通过引入优势函数
这里的
通过这种调整,算法优化的目标变成了最大化优势函数的期望。也就是说,算法通过不断调整策略,使得采取每个动作的相对优势尽可能大。
1.11、优势函数计算
在强化学习里,时序差分(Temporal Difference, TD) 是一种重要的预测算法,它结合了蒙特卡罗方法和动态规划方法的特点,通过在每一步更新对价值函数的估计,利用当前步骤的即时奖励和下一个状态的价值估计来更新当前状态的价值估计。其核心公式为:
其中
下面我们在时序差分的基础上回顾优势函数的定义:
其中:
是在状态 下采取动作 后的预期回报 是在状态 下的状态价值
动作价值
根据这一公式,
可以发现,
现在,将
这就是优势函数的简化版本,它只依赖于状态价值函数
此公式中的
在实际的神经网络实现中,原本计算优势函数可能需要分别训练一个用于估计
对状态价值函数
这是基于强化学习中对未来价值估计的一种迭代思想。类似于
这种一步采样的方式为后续多步采样优势函数提供了基础。同时体现了 TD 方法的自举(Bootstrapping)特性:价值函数的更新既依赖于实际奖励
1.12、多步采样
在多步采样中,我们不再只考虑一步之后的回报,而是通过连续的回报和价值来进行估计。具体来说,引入多个不同步长的优势函数:
一步采样(
这与之前的公式一致,是标准的优势函数计算。此步骤是单步 TD 误差
两步采样(
在
这里,优势函数的计算不仅考虑了当前的即时奖励
此过程可视为两次单步 TD 误差的叠加。将
三步采样(
类似地,这个公式进一步考虑了三个时间步的奖励
T 步采样(
以此类推,当进行
此前定义的广义优势估计的形式在计算上存在困难,因为它需要求解多个
定义 TD 误差 (TD-error):
则
这种多步采样的优势函数在强化学习中可以更有效地捕捉长期的奖励趋势,帮助智能体做出更优的决策。同时,不同步数的优势函数在实际应用中可以根据具体问题和场景进行选择,以平衡计算复杂度和策略评估的准确性。例如,在一些简单场景中,可能较小的
1.13、广义优势估计(GAE)
在强化学习中,优势函数
为了避免单纯使用一步或多步采样可能带来的极端结果(方差大或者偏差大),广义优势估计(GAE)被提出以解决采样步数选择的难题,它通过一种加权求和的方式,将不同步数的优势函数结合起来,从而平衡偏差和方差。它使用一个权重参数
根据 GAE 的定义,优势函数
其中,
将定义好的
进一步推导得出:
其中,
表示在时间步 时的优势函数,它的计算基于奖励 和折扣后的价值函数 是折扣因子,控制未来奖励的重要性 是平滑因子,用来调节优势函数中一步采样与多步采样的平衡
这个最终公式简洁地表达了 GAE 优势函数是由一系列经过权重调整的
1.14、邻近策略优化(PPO)
综上,我们得到三个表达式,如下:
GAE 优势函数表达式:
策略梯度的优化目标:
三个表达式中,
我们详细推导了优势函数(包括广义优势估计GAE)及其如何通过多步采样来平衡偏差与方差。接下来,我们可以通过引入Proximal Policy Optimization(PPO)来将这些思想应用到策略优化中,确保策略更新的稳定性。
PPO 是 OpenAI 提出的一种基于策略梯度的强化学习算法,它通过对策略梯度的优化,来提高策略的稳定性和收敛速度。PPO 算法的核心思想是在更新策略时,通过引入一个重要性采样比例,来限制策略更新的幅度,从而保证策略的稳定性。
重要性采样
重要性采样(Importance Sampling,IS) 是一种用于在不同分布间进行转换的统计方法,尤其在强化学习中常用来纠正 off-policy 采样中的偏差。它的基本思想是通过调整每个样本的权重,使得来自不同分布的数据能够在学习时进行合理的利用。特别是在 off-policy 强化学习中,重要性采样帮助我们将通过行为策略(Behavior Policy)生成的数据应用于目标策略(Target Policy)进行学习。
在离散情况下,对于一个随机变量
,其函数 关于概率分布 的期望为: 假设我们要计算
,但直接从分布 中采样并计算期望很困难,比如 的形式复杂难以直接采样,或者在高维空间中采样效率极低等。这时可以引入一个相对容易采样的分布 ,这就是重要性采样的基本动机。 基于此,对
进行变形: 这里
就被称为重要性权重。 也就是说,我们可以从分布
中进行采样得到样本 ,然后计算 ,用这些样本的均值来近似 ,即: 其中
是从 中采样得到的样本, 是样本数量。
我们用重要性采样更新目标函数的梯度公式:
其中:
-
:对 条轨迹(采样的样本)取平均值。这里的 表示采样轨迹的总数,通过对多个轨迹求平均来估计梯度,以获得更稳定的更新。例如,在不同的游戏轨迹中,每次游戏的奖励分布和最优策略选择可能不同,但通过大量轨迹的平均,能够更准确地反映出策略的总体趋势 -
:对每条轨迹 中的 个时间步求和,表示对单条轨迹中的所有时间步的累积。对单条轨迹内的所有时间步进行求和,意味着综合考虑了轨迹上每个时间点的信息,全面评估该轨迹对策略梯度的贡献。比如在一个机器人执行任务的轨迹中,每个时间步的动作和状态变化都对最终任务完成情况有作用,通过对所有时间步求和能完整地体现这条轨迹的价值 -
:广义优势估计(GAE),由参数 估计,计算在状态 下,采取动作 的优势。该优势函数考虑了当前时刻的奖励和未来的奖励,通过折扣因子 调整它们的贡献 -
:分母 代表旧策略在状态 下采取动作 的概率,分子 是新策略关于该状态-动作
对的概率梯度。两者比值是 重要性采样比率,表示目标策略 和行为策略 在同一状态-动作
对上的概率比值。行为策略 是采样数据时使用的策略,而目标策略 是我们要优化的策略。这个比值反映了新策略相对于旧策略在同一状态-动作
对上的变化趋势。通过将优势函数与这个比值相乘,能够根据优势大小以及新旧策略的关系,准确地调整策略参数 ,引导策略朝着更优的方向发展。例如,如果在某个状态-动作
对上,新策略的概率梯度与旧策略概率的比值较大,且优势函数也较大,说明在这个状态下采取该动作能带来较大优势,且新策略倾向于更频繁地选择该动作,那么就应该朝着增加这种选择倾向的方向更新策略参数
整个公式的作用是通过优势估计来计算策略梯度,以优化策略参数,使得策略倾向于选择优势更高的动作,从而提升策略性能。GAE 可以有效降低方差,使得策略优化过程更加稳定和高效。
将上述梯度公式去掉求梯度符号并取负号,转化为最小化问题,可以得到 PPO 算法 Loss 公式:
通过这种方式,我们实现了在 off-policy 环境下进行策略更新,同时通过 GAE 和重要性采样的组合,降低了方差,提高了策略优化的稳定性和效率。
重要性采样是 off-policy 强化学习中的一个重要技术,通过引入权重调整,帮助我们利用来自行为策略的数据来学习目标策略。尽管重要性采样在某些情况下非常有效,但它也面临高方差的问题,尤其是在行为策略和目标策略之间差异较大时。
PPO 算法通过引入裁剪技术来平衡重要性采样的方差和稳定性问题。
1.15、PPO-Penalty 和 PPO-Clipped
PPO 算法引入了两种创新性的技术,即 Adaptive KL Penalty Coefficient(自适应 KL 惩罚系数)和 Clipped Surrogate Objective(截断替代目标),旨在解决策略梯度方法中策略更新不稳定的问题,确保策略在优化过程中既能有效探索新的策略空间,又能保持一定的稳定性,避免因更新幅度过大而导致性能下降。
PPO-Penalty(惩罚)
PPO-Penalty 运用拉格朗日乘数法,将 KL 散度的限制直接融入目标函数,把原本的约束优化问题转化为无约束优化问题。在迭代过程中,通过动态调整 KL 散度前的系数
- 第一项:
是策略比值,反映了新策略和旧策略在某个状态-动作
对上的概率比 是广义优势估计,表示在状态 下采取动作 的优势- 第一项是基于重要性采样和 GAE 优势估计的策略梯度部分,与前文利用重要性采样更新目标函数梯度的公式相关,表示通过优势估计和策略概率比值来更新策略参数
- 第二项:
是一个 KL散度 项,表示新策略和旧策略之间的 KL 散度。KL 散度度量了两个分布之间的差异。通过控制这个差异,防止策略发生过大的变化 是一个超参数,调节KL散度项的权重,进而控制策略更新的幅度
PPO-Penalty 使用 KL 散度来限制新策略和旧策略之间的变化幅度。如果新策略和旧策略的差异过大,就会增加损失,以惩罚过度的更新。这使得策略优化更加稳定,并避免了大幅度的参数更新导致的不稳定学习过程。
KL 散度
KL 散度(Kullback-Leibler Divergence, 也称相对熵)用于衡量两个概率分布之间的差异,即在给定真实分布
的情况下,另一个分布 逼近 的程度。 1. KL 散度的定义
对于离散概率分布
和 ,其 KL 散度定义为: 对于连续概率分布,KL 散度定义为:
其中:
是真实分布(或经验分布) 是近似分布(或模型分布) 衡量在 处 和 之间的信息差异 - KL散度是非负的(即
),并且当且仅当 时等于 0 2. 核心性质
- 信息损失的度量:KL 散度可以看作是使用分布
近似 时,损失的信息量。如果 不能很好地逼近 ,那么 KL 散度较大,表示模型 对真实分布 的拟合效果较差 - 非对称性:
。直观来说, 关注的是 如何近似 ,而 关注的是 如何近似 (若需对称性,可使用 JS 散度(Jensen-Shannon Divergence)或 Wasserstein 距离) 3. KL 散度 vs 交叉熵
交叉熵可分解为熵与 KL 散度之和:
即最小化交叉熵等价于最小化 KL 散度(如果
是固定的)。此外,当预测分布与真实分布完全一致时,交叉熵等于熵。 具体的,在机器学习中,交叉熵用于衡量模型预测分布
与真实分布 之间的差异,其公式为: 其中,
是真实分布的概率密度(或概率质量), 是模型预测的分布概率密度(或概率质量)。 KL 散度的展开:
将 KL 散度代入交叉熵公式:
即:
其中,
是真实分布 的熵。 直观上来看,交叉熵
衡量的是 编码成本,表示用 预测 需要多少信息。KL 散度 衡量的是 信息损失,表示 偏离 造成的额外编码代价。
PPO-Clipped(截断)
PPO-Clipped则是 PPO 的另一种变体,它通过截断策略更新的幅度,进一步增加了稳定性。具体来说,它限制了新旧策略比值的变化范围,防止策略的变化过大,从而避免了策略的剧烈波动。损失函数为:
- 第一项:
:这是标准的策略梯度项,表示优势估计与新旧策略概率比的乘积
- 第二项:
- 裁剪函数:
- 这部分对新旧策略的比值进行了裁剪,限制其范围在
之间,其中 是一个超参数,决定了策略更新幅度的最大允许变化 - 当新策略和旧策略的比值超出该范围时,会强制其回到这个区间,避免策略更新过快或过大
- 这部分对新旧策略的比值进行了裁剪,限制其范围在
- 裁剪函数:
操作:- 在计算损失时,取原始策略梯度项与裁剪后的项之间的最小值。这样可以确保,如果新策略更新过大(即策略比值超出裁剪范围),损失函数将被限制在裁剪后的项,而不会受到过大更新的影响
PPO-Clipped 通过裁剪策略的概率比值,控制策略更新的幅度,防止过大的参数更新。这种方法比传统的策略梯度方法更加稳定,并且能在一定程度上平衡探索(exploration)和利用(exploitation)。
2、RLHF
RLHF (Reinforcement Learning with Human Feedback),即 基于人类反馈的强化学习,是一种通过结合人类反馈来训练强化学习模型的技术。在传统的强化学习(RL)中,代理通过与环境的交互来最大化奖励信号,从而学习最优策略。然而,在很多实际问题中,设计一个明确的奖励函数可能是困难的,或者获得大量的模拟环境交互数据过于昂贵。在这种情况下,RLHF 提供了一种替代方案,它通过直接利用人类的反馈来引导代理的学习。
RLHF 的步骤可以分为:
- 数据收集:使用 LLM 生成一些文本数据作为初始语料库,让人类标注者对生成的数据进行标注或打分。标注的内容可以包括文本的质量、相关性、准确性、有用性等方面
- 监督学习微调:使用标签器的标注数据对预训练的 LLM 模型进行监督学习微调(SFT)来训练一个策略网络,得到 SFT 模型。SFT 模型的训练目标是最小化标签器对模型输出的偏好损失
- 奖励模型训练:收集模型输出之间的比较数据,其中标注员指出他们对于给定输入更倾向于哪个输出。然后训练一个奖励模型(RM)来预测人类偏好的输出。奖励模型的输入是一个提示和一个响应,输出是一个标量奖励
- 强化学习优化:
- 策略网络与环境交互: 将训练好的策略网络放入环境中进行交互。在自然语言处理的场景中,环境可以是与用户的交互过程,或者是根据给定的任务要求生成文本的过程。策略网络根据当前的状态(如输入的文本、对话历史等)生成输出文本
- 获取奖励信号: 根据奖励模型对策略网络生成的输出文本进行打分,得到奖励信号。这个奖励信号反映了生成的文本在多大程度上符合人类的期望和标准
- 更新策略网络: 利用强化学习算法,根据奖励信号来更新策略网络的参数,使得策略网络能够生成更符合人类期望的文本,从而提高模型的性能。常见的强化学习算法如 PPO(Proximal Policy Optimization)等可以用于此过程
在 PPO、A3C 等常见的 策略梯度方法 里,Actor-Critic
结构是核心,涉及两部分关键模型的训练流程:
- Actor(策略网络): 以环境状态为输入,输出该状态下选择各动作的概率分布,或直接给出最优动作。训练目的是调整参数,让智能体长期交互中获更高累计奖励
- Critic(价值网络): 输入状态(或结合动作)信息,输出状态价值(或动作价值)。其输出值作为 “基准分数线”,用于稳定评估动作优劣。通过缩小价值估计与实际回报的误差,优化对状态价值的估计,为 Actor 策略更新提供支持
Critic 和 Actor 的损失函数通常设计如下:
Critic Loss(价值网络损失):
Critic 的目标是准确估计状态价值函数
其中,
Actor Loss(策略网络损失)
Actor 的目标是最大化期望回报,通过优势函数
-
普通策略梯度(如 A3C):
其中
,或通过 GAE 估计。 -
PPO(带 Clipped Surrogate Objective):
其中
, 是截断阈值(如 )。
Critic 和 Actor 的更新往往通过一个损失函数(Loss)来联合优化,总损失通常为 Actor Loss 和 Critic Loss 的加权和,并可能包含熵正则项(鼓励探索,防止过早收敛):
其中
若忽略熵项,则简化为:
信息熵 是衡量随机变量不确定性的一种度量,其定义如下: 对于一个离散随机变量
,且每个取值的概率为 (满足 ),信息熵 定义为: 其中:
- 对数的底数可以是 2、
或 10,通常底数为 2 时单位为比特(bit) - 负号用于确保熵为非负值,因为
在 内, 通常为负,从而使得乘积 为负,加上负号后熵为正或零 直观理解:
- 当随机变量的分布越均匀时(即每个结果出现的概率都相近),熵值越高,表示不确定性越大
- 当随机变量的分布越集中(即某个结果的概率接近 1,而其他结果的概率接近 0),熵值越低,表示不确定性越小
如图为二值随机变量的香农熵。该图说明了更接近确定性的分布是如何具有较低的香农熵,而更接近均匀分布的分布是如何具有较高的香农熵。
其中水平轴是
,表示二值随机变量等于 的概率。当 接近 时,分布几乎是确定的,因为随机变量几乎总是 。当 接近 时,分布也几乎是确定的,因为随机变量几乎总是 。当 时,熵是最大的,因为分布在两个结果( 和 )上是均匀的:
2.1、采用 PPO 方式的 RLHF
RLHF 在 RL 框架下的问题建模为:
- 策略(Policy):被微调的语言模型(LM),接收提示并生成一系列文本或文本的概率分布
- 行动空间(Action Space):LM 的词表规模(通常约 50k 词元),决定每一步可选的生成词元
- 观察空间(Observation Space):所有可能的输入词元序列,规模极大(
)
PPO 训练过程分为四个阶段:
- 阶段 1:预训练模型微调(SFT) & 奖励模型训练
- SFT Model:基于 Pretrain Model(预训练模型)微调得到 SFT Model(监督微调模型)
- Reward Model:训练奖励模型(Reward Model)用于评估生成结果的质量,可通过 SFT Model 或 Pretrain Model 进行热启训练
- 阶段 2:PPO 过程初始化
- Actor Model:即策略模型(基于 SFT Model 初始化,模型持续更新),是主要优化对象,同时用于数据采样,基于 SFT model 进行热启
- Reference Model:静态参考模型(基于 SFT Model,模型冻结),仅用于计算 KL 约束,防止 Actor Model 偏离原始分布过远
- Critic Model:价值模型(基于 Reward Model 初始化,模型持续更新),评估当前 token 到生成结束的整体价值评分,基于 Reward Model 热启动
- Reward Model:预训练好的奖励模型(Outcome Reward Model,模型冻结),对完整的生成结果进行评分,提供最终生成质量分数,训练过程中不更新
- 阶段 3:Experience 采样
- 随机采样一批指令集(Prompts)作为输入
- 通过 Actor Model 生成 1 条或多条序列响应
- 结合四个模型协同构建经验数据(Experience)
- Reward Model 提供最终结果评分
- Critic Model 预测各时间步状态价值
- Reference Model 计算 KL 散度约束项
- Actor Model 提供策略概率分布
- 阶段 4:模型训练
- 以 Experience 数据训练 Actor Model 和 Critic Model,Actor Model 优化目标是最大化奖励和 KL 约束下的策略优势,Critic Model 学习最小化价值预测误差
- 反复执行 阶段 3(采样) 和 阶段 4(训练),直至 Loss 收敛
奖励函数的设计如下:
- 生成文本比较:分别将提示输入初始 LM 和微调后的 LM,得到文本输出
和 - 奖励模型(RM):通过奖励模型对微调后的文本
评分,生成奖励 - KL 散度惩罚:计算新旧策略输出文本的 KL 散度,用于限制新策略与旧策略之间的差异,避免生成无意义或不连贯的文本。最终的奖励为
。惩罚项作用是防止模型在优化中为获高奖励生成偏离初始模型过多的乱码文本,确保输出合理连贯
RLHF 中的 PPO 损失函数为:
其中:
:表示 RL 策略下,给定输入 时生成输出 的概率分布 :是监督训练模型(SFT)给定相同输入 时生成输出 的概率分布 :广义优势估计(GAE),用于衡量当前策略在生成输出 时的优势程度 :是一个超参数,控制 PPO 的 “裁剪” 范围,防止策略的更新幅度过大。通常设置为 0.1 到 0.3 之间- clip:裁剪操作,限制策略比值
在 区间内,防止策略的更新过于剧烈,确保优化过程的稳定性
2.2、采用 DPO 方式的 RLHF
直接偏好优化(Direct Preference Optimization,DPO)算法不进行显式奖励建模或强化学习的情况下直接优化语言模型以符合人类偏好。
基于人类反馈的强化学习(RLHF)流程通常包含三个阶段:1)监督微调(SFT);2)偏好采样与奖励学习;3)强化学习优化。
2.2.1、前置知识
2.2.1.1、监督微调(SFT)
RLHF 通常始于对预训练的语言模型(LM)进行监督学习微调,所使用的是针对感兴趣的下游任务(对话、摘要等)的高质量数据,以此获得模型
2.2.1.2、奖励建模阶段
在第二阶段,使用提示
假定这些偏好是由某个潜在的奖励模型
BT 模型规定,人类偏好分布
假设我们有一个从
其中
2.2.1.3、强化学习微调阶段
在强化学习阶段,所学的奖励函数用于向语言模型提供反馈。遵循先前的研究,优化问题被构建为:
其中
2.2.2、直接偏好优化(DPO)
鉴于在诸如微调语言模型这类大规模问题上应用强化学习算法所面临的挑战,我们的目标是推导出一种直接利用偏好进行策略优化的简单方法。与先前的基于人类反馈的强化学习(RLHF)方法不同,那些方法先学习一个奖励,然后通过强化学习对其进行优化,而基于 DPO 的方法利用了一种特定的奖励模型参数化选择,使得能够以封闭形式提取其最优策略,无需强化学习训练循环。正如接下来将详细阐述的,其关键见解是利用从奖励函数到最优策略的解析映射,这使我们能够将关于奖励函数的损失函数转换为关于策略的损失函数。这种变量变换方法避免了拟合一个明确的、独立的奖励模型,同时仍然在现有的人类偏好模型(如 Bradley-Terry 模型)下进行优化。本质上,策略网络既代表语言模型,也代表(隐式的)奖励。
1、推导直接偏好优化(DPO)目标
从与先前工作相同的强化学习目标开始,即公式(3),在一般奖励函数
其中
推导 KL 约束奖励最大化目标的最优解
推导以下目标的最优解:
对于任何奖励函数
、参考模型 和一般的非参数策略类。我们现在有: 其中我们有一个分区函数:
注意分区函数只是
和参考策略 的函数,但不依赖于策略 。我们现在可以定义 这是一个有效的概率分布,因为对于所有的
, 并且 。由于 不是 的函数,我们可以重新组织方程(b)中的最终目标为: 现在,由于
不依赖于 ,最小值是通过最小化第一个 KL 项来实现的目标。Gibbs 不等式告诉我们,如果两个分布相同,那么 KL 散度在 0 处被最小化。因此我们有最优解: 对于所有的
。推导完成。
即使使用真实奖励函数
具体来说,我们首先对公式(4)两边取对数,然后通过一些代数运算得到:
我们可以将这种重新参数化应用于真实奖励
将公式(5)中对
在 Bradley-Terry 模型下得出 DPO 目标
在推导 DPO 目标函数在 Bradley-Terry 模型下的形式时,我们可以从 Bradley-Terry 模型的偏好表达式开始:
在上文我们展示了如何通过其对应的最优策略将不可用的真实奖励表示出来:
将方程(b)代入方程(a),我们得到:
虽然公式(6)使用了 Bradley-Terry 模型,但我们同样可以在更一般的 Plackett-Luc 模型下推导出表达式。
在 Plackett-Luce 模型下推导 DPO 目标函数
在推导 Plackett-Luce 模型下的 DPO 目标函数时,Plackett-Luce 模型是对 Bradley-Terry 模型的推广,适用于排名(而不仅仅是成对比较)。类似于 Bradley-Terry 模型,它规定当给定一组可能的选项时,人们更倾向于选择具有某种潜在奖励函数值的选项的概率与奖励函数值成正比。
在我们的上下文中,当给定一个提示
和一组 个答案 时,用户会输出一个排列 ,给出他们对答案的排名。 Plackett-Luce 模型规定:
请注意,当
时,方程(a)简化为 Bradley-Terry 模型。然而,对于一般的 Plackett-Luce 模型,我们仍然可以利用方程(5)的结果并替换由最优策略参数化的奖励函数。取消归一化常数 ,我们得到: 如果我们有一个数据集
包含提示和用户指定的排名,我们可以使用一个参数化模型并通过最大似然来优化这个目标:
现在我们已经用最优策略而非奖励模型表示了人类偏好数据的概率,我们可以为参数化策略
这样,我们使用一种替代参数化拟合了一个隐式奖励,其最优策略就是
2、DPO 更新的作用是什么?
为了从机制上理解 DPO,分析损失函数
是由语言模型
直观地说,损失函数
重要的是,这些示例是根据隐式奖励模型
3、DPO概述
一般的 DPO 流程如下:
- 对于每个提示
,从 中采样完成结果 ,用人类偏好进行标注,以构建离线偏好数据集 ; - 针对给定的
、 和期望的 ,优化语言模型 以使 最小化。
在实践中,人们希望重用公开可用的偏好数据集,而不是生成样本并收集人类偏好。由于偏好数据集是使用
然而,当没有
这个过程有助于减轻真实参考分布(不可用)与 DPO 使用的
2.3、采用 GRPO 方式的 RLHF
近端策略优化(PPO)是一种基于 演员-评论家(actor-critic)
的强化学习算法,广泛应用于大语言模型的强化学习微调阶段。具体而言,它通过最大化以下替代目标来优化大语言模型:
其中:
和 分别是当前和旧的策略模型, 、 分别是从问题数据集和旧策略 中采样得到的问题和输出 是 PPO 中引入的与裁剪相关的超参数,用于稳定训练 是优势值,通过应用广义优势估计(GAE),基于奖励 和学习到的价值函数 计算得出
因此,在 PPO 中,价值函数需要与策略模型一同训练,并且为了减轻奖励模型的过度优化,标准方法是在每个 token 的奖励中添加来自参考模型的每个 token 的 KL 散度惩罚项,即:
其中,
由于 PPO 中使用的价值函数通常是与策略模型规模相当的另一个模型,这带来了巨大的内存和计算负担。此外,在强化学习训练期间,价值函数在优势值计算中被用作基线以减少方差。然而,在大语言模型的情境中,通常只有最后一个 token 由奖励模型赋予奖励分数,这可能会使在每个 token 上都准确的价值函数的训练变得复杂。
为了解决这些问题,如图所示,DeepSeekMath 提出了组相对策略优化(GRPO),它无需像 PPO 那样进行额外的价值函数近似,而是使用针对同一问题生成的多个采样输出的平均奖励作为基线。

更具体地说,对于每个问题
其中,
还需注意的是,GRPO 不是在奖励中添加 KL 散度惩罚项,而是通过直接将训练后的策略与参考策略之间的 KL 散度添加到损失中来进行正则化,避免了使
该估计器保证为正值。
2.3.1、采用 GRPO 的结果监督强化学习
具体而言,对于每个问题
随后,通过减去组平均奖励并除以组标准差来对这些奖励进行归一化处理。结果监督在每个输出
即:
然后通过最大化公式 (3) 中定义的目标来优化策略。
2.3.2、采用 GRPO 的过程监督强化学习
结果监督仅在每个输出的末尾提供奖励,这对于复杂数学任务中的策略监督而言,可能不够充分和高效。因此 DeepSeekMath 还探索了过程监督,即在每个推理步骤的末尾都提供奖励。具体来说,给定问题
其中
随后,过程监督将每个标记的优势计算为后续步骤归一化奖励的总和,即:
然后通过最大化公式(3)中定义的目标来优化策略。
2.3.3、采用 GRPO 的迭代强化学习
随着强化学习训练过程的推进,旧的奖励模型可能不足以监督当前的策略模型。因此,DeepSeekMath 还探索了基于组相对策略优化(GRPO)的迭代强化学习。如下算法所示,在迭代 GRPO 中,根据策略模型的采样结果为奖励模型生成新的训练集,并使用一种纳入 10% 历史数据的回放机制持续训练旧的奖励模型。然后,将参考模型设置为策略模型,并使用新的奖励模型持续训练策略模型。
3、RFT
RFT (Reinforcement Fine-Tuning) 是一种用于 LLM 微调的技术,它结合了强化学习 (RL) 和基于规则的奖励系统。RFT 主要目标是通过验证器(verifier)来提供反馈,帮助模型通过强化学习进一步调整其策略,以生成更加合适的响应。与传统的 RLHF (Reinforcement Learning with Human Feedback) 相比,RFT 使用基于规则的验证器代替了人工反馈或奖励模型。
- RFT 的核心流程
- 给定一个提示(输入),模型会生成若干个包含 CoT(Chain of Thought)的响应(输出),这些响应的正确性会由验证器/评分器来判断(例如一道数学题的答案是否正确,代码是否可以运行),从而产生一个 “反馈信号”,并以此指导模型参数的更新。这里的关键点是评分器是基于规则的,而不是像传统的 RLHF 那样使用经过训练的奖励模型来生成反馈
- RLHF 的核心流程
- 给定一个提示,模型生成多个响应。使用奖励模型评估这些响应的质量,这个模型通过人类反馈来理解和量化 “人类偏好”,即哪些响应更符合人类的期望或需求。奖励模型为每个响应生成一个奖励信号,模型根据这些信号来更新参数,优化生成的策略。这一步通常使用 策略优化算法(例如 PPO)来调整模型的策略,尽量生成更符合人类偏好的回答
3.1、ReFT
增强大规模语言模型(LLMs)推理能力的一种方法是通过链式思维(Chain-of-Thought, CoT)标注进行监督微调(Supervised Fine-Tuning, SFT)。然而,这种方法的泛化能力不够强,因为训练仅依赖于给定的 CoT 数据。例如,在数学问题求解中,训练数据中通常只有每个问题的一个标注推理路径。直观地说,算法从给定问题的多个标注推理路径中学习,效果会更好。
ReFT(Reinforced Fine-Tuning,强化微调)首先通过监督微调(SFT)进行预热阶段,通常在一到两个 epoch 内完成(如图中阴影框所示)。这个初始阶段使得模型具备了一定程度的能力来生成正确的数学问题答案。

接下来,ReFT 通过利用在线强化学习(RL)算法(如近端策略优化(PPO)算法),进一步优化模型。通过这种方式,ReFT 能够从多个正确的推理路径或 CoT 标注中进行采样并从中学习。
由于训练数据包括真实答案,因此在训练 PPO 时,黄金奖励(golden reward)可以自然地从中派生出来。因此,不需要单独训练一个奖励模型。而与之对比的是,RLHF 则需要使用从人工标注数据中学习的奖励模型。
在预热阶段,ReFT 通过监督学习获得一定的准确性。在 RL 阶段,ReFT 通过强化学习进一步增强其能力,通过采样多样的 CoT 推理路径。在这种方式下,ReFT 获得比 SFT 更加丰富的监督信号。这种方法使得 ReFT 在数学问题求解中大大提高了泛化能力。需要注意的是,ReFT 通过使用相同的训练问题超过了 SFT,而不依赖于额外或增强的训练问题。
3.1.1、强化微调
强化微调(ReFT)过程包括两个阶段:预热阶段(Warm-up)和强化学习阶段(Reinforcement Learning)。
1、Warm-up
在此阶段,策略会在由 (question, CoT)
元组,即
其中
当生成的动作是
2、Reinforcement Learning
在这个阶段,策略通过一种在线自学习方式,利用由 (question, answer)
元组,即
对于所有导致非终止状态的动作,给予奖励 0。在终止状态,使用一个奖励函数,该函数直接比较从状态的思维链中提取的答案与真实答案
这样的部分奖励有助于减轻从稀疏奖励中学习的影响。此外,总奖励是奖励函数得分与学习到的强化学习策略和初始策略之间的 Kullback-Leibler 散度(KL 散度)之和,并由系数因子
广义优势估计(generalized advantage estimate)用于优势计算:
其中,时间差分(Temporal Difference,TD)定义为:
且终止状态值
最后,策略目标和价值目标可写为以下两个方程:
其中,
其中,
3.2、KIMI K1.5
3.2.1、问题设定
给定一个训练数据集
在复杂推理的情境下,从问题
在解决问题
为进一步提升模型的推理能力,在推理阶段采用规划算法来探索各种思维过程,生成改进后的 CoT。这些方法的核心思路是在价值估计的引导下,显式构建一个思维搜索树。这使得模型能够探索思维过程的不同延续方式,或者在遇到死胡同时回溯以探索新的方向。
更详细地说,设
我们也可以从算法角度看待规划算法。给定在第
由于思维和反馈都可视为中间推理步骤,且这些组件都可表示为语言词元序列,使用
在此,思维的数量(即语言词元)类似于传统上分配给规划算法的计算资源。近期长上下文窗口方面的进展有助于在训练和测试阶段实现无缝扩展。如果可行,这种方法使模型能够通过自回归预测直接在推理空间中进行隐式搜索。因此,模型不仅学会解决一组训练问题,还培养了有效处理单个问题的能力,从而提高对未见过的测试问题的泛化能力。
因此,我们考虑使用强化学习(RL)来训练模型以生成 CoT。设
给定一个问题
通过扩大强化学习训练规模,我们旨在训练一个模型,该模型兼具基于简单提示的 CoT 和规划增强型 CoT 的优势。在推理过程中,该模型仍然以自回归方式采样语言序列,从而避免了在部署过程中先进规划算法所需的复杂并行化操作。
然而,与基于简单提示的方法的一个关键区别在于,该模型不应仅仅遵循一系列推理步骤。相反,它还应通过利用所探索的全部思维集作为上下文信息,学习关键的规划技能,包括错误识别、回溯和解决方案优化。
3.2.2、策略优化
K1.5 采用一种在线策略镜像下降的变体作为训练算法。该算法迭代执行。在第
其中
这里
这就引出了以下替代损失函数:
为了近似
此外,使用采样奖励的经验均值
这是合理的,因为当
对于每个问题
对于熟悉策略梯度方法的人来说,这个梯度类似于使用采样奖励均值作为基线的式(2)的策略梯度。主要区别在于响应是从
从
在训练系统中未使用价值网络,虽然这种设计选择显著提高了训练效率,但我们也假设经典强化学习中用于功劳分配的价值函数的常规用法可能并不适合我们的场景。
考虑这样一种情况,模型生成了部分思维链
根据标准的功劳分配原则,选择
这个例子的关键启示是,我们应该鼓励模型探索多样的推理路径,以增强其解决复杂问题的能力。这种探索性方法能产生丰富的经验,有助于培养关键的规划技能。我们的主要目标并非局限于在训练问题上获得高精度,而是着重于让模型具备有效的问题解决策略,最终提升其在测试问题上的表现。
3.2.3、长度惩罚
K1.5 观察到一种 “过度思考” 现象,即在强化学习训练过程中,模型的响应长度显著增加。尽管这会带来更好的性能,但过长的推理过程在训练和推理时成本较高,而且人类通常也不倾向于过度思考。为解决这一问题,K1.5 引入一种长度奖励机制,以抑制词元长度的快速增长,从而提高模型的词元效率。
给定问题
本质上,我们鼓励较短的响应,对正确答案中的较长响应进行惩罚,同时明确惩罚答案错误的长响应。然后,这个基于长度的奖励会以一个加权参数加到原始奖励中。
在初步实验中,长度惩罚在训练初期可能会减缓训练速度。为缓解这一问题,K1.5 提议在训练过程中逐步引入长度惩罚。具体来说,先采用无长度惩罚的标准策略优化,然后在训练的剩余阶段采用固定的长度惩罚。
3.3、DeepSeek-R1
- 通过引入少量高质量数据作为冷启动,能否进一步提升推理性能或加快收敛速度?
- 如何训练一个既能够生成清晰连贯的思维链(CoT),又具备强大通用能力的用户友好型模型?
为解决这些问题,设计一个流程用于训练 DeepSeek-R1 。该流程包含四个阶段,具体如下。
3.3.1、冷启动
与 DeepSeek-R1-Zero 不同,为避免从基础模型进行强化学习训练时早期冷启动阶段的不稳定,对于 DeepSeek-R1 构建并收集了少量长思维链(CoT)数据,对模型进行微调,以此作为初始的强化学习行动者。为收集此类数据探索了多种方法:以长思维链作为示例进行少样本提示,直接促使模型生成带有反思与验证的详细答案,收集格式可读的 DeepSeek-R1-Zero 输出结果,并由人工注释者通过后处理优化这些结果。
在这项工作中收集了数千条冷启动数据,对 DeepSeek-V3-Base 进行微调,将其作为强化学习的起点。与 DeepSeek-R1-Zero 相比,冷启动数据的优势包括:
- 可读性:DeepSeek-R1-Zero 的一个关键局限在于其内容往往不适合阅读。回复可能夹杂多种语言,或者缺少用于为用户突出答案的 Markdown 格式。相比之下,在为 DeepSeek-R1 创建冷启动数据时设计了一种可读模式,在每个回复的结尾处添加总结,并过滤掉不便于阅读的回复。在此,将输出格式定义为
|特殊标记|<推理过程>|特殊标记|<总结>
,其中推理过程是针对查询的思维链,总结则用于概括推理结果 - 潜力:通过借助人类先验知识精心设计冷启动数据的模式,观察到其性能优于 DeepSeek-R1-Zero。迭代训练对于推理模型而言是一种更优的方式
3.3.2、以推理为导向的强化学习
DeepSeek-R1 训练数据的收集方式如下:
在冷启动数据上对 DeepSeek-V3-Base 进行微调后,采用与 DeepSeek-R1-Zero 相同的大规模强化学习训练流程。此阶段着重提升模型的推理能力,尤其是在诸如编码、数学、科学及逻辑推理等推理密集型任务上,这些任务涉及定义明确且有清晰解法的问题。
在训练过程中注意到思维链(CoT)经常出现语言混用的情况,特别是当强化学习提示涉及多种语言时。为缓解语言混用问题,在强化学习训练中引入语言一致性奖励,该奖励按思维链中目标语言词汇的比例来计算。尽管消融实验表明,这种调整会使模型性能略有下降,但该奖励符合人类偏好,使输出更具可读性。最后,通过直接将推理任务的准确率与语言一致性奖励相加,形成最终奖励。然后,对微调后的模型进行强化学习训练,直至其在推理任务上达到收敛。
3.3.3、拒绝采样和监督式微调
当面向推理的强化学习收敛后,利用得到的检查点为下一轮收集监督微调(SFT)数据。与最初主要聚焦于推理的冷启动数据不同,此阶段纳入了来自其他领域的数据,以提升模型在写作、角色扮演及其他通用任务方面的能力。具体而言,按如下方式生成数据并微调模型。
3.3.3.1、推理数据
DeepSeek-R1 精心整理推理提示,并通过对上述强化学习训练得到的检查点进行拒绝采样来生成推理轨迹。在前一阶段,仅纳入了能够使用基于规则的奖励进行评估的数据。然而在本阶段,通过纳入更多数据来扩充数据集,其中一些数据借助生成式奖励模型,将真实值与模型预测结果输入 DeepSeek-V3 进行判断。此外,由于模型输出有时杂乱且难以阅读,过滤掉了语言混杂的思维链、冗长段落以及代码块。对于每个提示,采样多个回复,仅保留正确的回复。总体而言,收集了约 60万 个与推理相关的训练样本。
3.3.3.2、非推理数据
对于非推理数据,如写作、事实性问答、自我认知以及翻译等,采用 DeepSeek-V3 流程,并复用 DeepSeek-V3 的部分监督微调数据集。对于某些非推理任务,在通过提示回答问题之前,调用 DeepSeek-V3 生成一个潜在的思维链。不过,对于诸如 “你好” 这类简单查询,回复中不提供思维链。最终,总共收集了约 20万 个与推理无关的训练样本。
使用上述精心整理的约 80万 个样本的数据集,对 DeepSeek-V3-Base 进行两个轮次的微调。
参考文献
- Proximal Policy Optimization Algorithms
- Direct Preference Optimization:Your Language Model is Secretly a Reward Model
- Training language models to follow instructions with human feedback
- Deep Reinforcement Learning from Human Preferences
- REFT: Reasoning with REinforced Fine-Tuning
- KIMI K1.5:SCALING REINFORCEMENT LEARNING WITH LLMS
- ChatGPT 背后的“功臣”——RLHF 技术详解
- 零基础学习强化学习算法:ppo
- Secrets of RLHF in Large Language Models Part I: PPO
- 什么是 RLHF?
- 为什么需要RLHF?SFT不够吗?
- Deep Dive into OpenAI’s Reinforcement Fine-Tuning (RFT): Step-by-Step Guide, Comparison to SFT/RLHF/DPO
- Let’s Verify Step by Step
- DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning