从零理解强化学习:为什么 AI 需要 Advantage,而不只是 Reward?

------从 Agent、Policy、Reward 到 Policy Gradient 和 PPO 的底层逻辑

本文是强化学习(Reinforcement Learning, RL)系列的第一篇。目标不是立刻掌握 PPO、GRPO 等算法的实现,而是建立理解这些算法所需的基本概念。

读完本文,你应该能够解释一个关键问题:为什么一个回答得了 0.8 分,并不代表这个回答就应该被强化?

一、强化学习到底在解决什么问题?

假设我们正在训练一个大语言模型(LLM)。

用户问:

为什么天空是蓝色的?

模型生成了一个回答:

因为大气中的分子对太阳光中的短波长光散射得更强,而蓝光属于较短波长的可见光。

假设这个回答获得了 0.8 分。

接下来,我们应该怎么做?

一种直觉是:

  • 回答得分高,就增加生成这个回答的概率。

  • 回答得分低,就降低生成这个回答的概率。

但这里隐藏着一个问题:

0.8 分究竟算高,还是算低?

假设模型面对这个问题时,通常只能生成 0.5 分的回答,那么 0.8 分显然不错。

但是,如果模型通常能够生成 0.95 分的回答,那么这个 0.8 分的回答实际上低于模型当前的正常水平。

因此,强化学习不能只关心一个行为得到了多少奖励,还需要关心:

这个行为的结果,相对于当前策略的预期表现,究竟好多少?

这正是 Advantage(优势)的核心思想。

在正式理解 Advantage 之前,我们需要先建立强化学习的基本框架。

二、Agent 与 Environment:谁在做决策,谁在提供反馈?

强化学习通常涉及两个基本角色:

Agent(智能体):负责观察环境、选择动作,并根据反馈调整行为。

Environment(环境):接收智能体的动作,更新状态,并返回奖励或其他反馈。

例如训练一个玩游戏的 AI:

  1. 游戏画面告诉 AI 当前处于什么位置。

  2. AI 选择向左移动。

  3. 游戏环境更新角色位置。

  4. 如果移动有利,AI 可能获得正奖励。

  5. AI 利用交互经验调整后续策略。

这可以抽象为:

环境状态 → Agent 选择动作 → 环境反馈 → 更新状态 → 再次选择动作

在 LLM 强化学习中,我们可以建立类似的对应关系。

传统强化学习 LLM 强化学习
Agent 当前语言模型
Environment 提示词、生成上下文、工具及评分系统等组成的交互环境
State Prompt 与已生成的 Token 等上下文
Action 生成下一个 Token
Policy 模型对下一个 Token 的概率分布
Reward 奖励模型、规则验证器或其他反馈机制给出的奖励

需要注意,LLM 的环境与游戏环境不完全一样。

在最简单的文本生成任务里,模型生成一个 Token 后,状态只是增加了这个 Token;而在能够调用工具的 Agent 系统里,一个动作还可能触发搜索、执行代码或改变外部环境。

虽然具体形式不同,但核心机制相同:

智能体通过与环境交互获得反馈,并利用反馈改进自己的决策策略。

三、State、Action 和 Policy:LLM 是如何做决策的?

3.1 State:模型当前知道什么?

在强化学习中,State(状态)通常记作 (s)。

它描述了智能体做出当前决策时所依据的信息。

对于自回归语言模型,在第 (t) 步,可以将状态简化表示为:

其中:

  • (x):用户输入的 Prompt。

  • ():模型已经生成的 Token。

  • ():模型生成第 (t) 个 Token 之前的上下文。

例如,模型正在回答:

法国的首都是

此时状态就是当前问题与已经生成的文字。

模型接下来需要决定生成哪个 Token。

3.2 Action:模型下一步做什么?

在强化学习中,Action(动作)通常记作 (a)。

在标准的 Token 级别语言模型建模中:

也就是说,生成下一个 Token,就是执行一个动作。

例如,模型可能预测:

下一个 Token 概率
巴黎 0.85
伦敦 0.05
里昂 0.04
其他 0.06

这里的概率只是一个教学示例。

模型可以根据这个概率分布采样,决定下一步生成什么。

整个回答就是由连续的动作组成的。

3.3 Policy:为什么模型会选择某个动作?

Policy(策略)通常记作:

它表示:在状态 (s) 下,参数为 (\theta) 的模型选择动作 (a) 的概率。

其中,(\theta) 就是模型的可训练参数。

在 LLM 中,对应的是:

语言模型每次生成 Token,本质上就是依据当前策略进行一次概率决策。

对于一个完整回答:

其条件生成概率可以分解为:

这是理解 LLM 强化学习的重要基础。

因为我们真正要优化的,不是某个回答文本本身,而是模型生成不同回答的概率分布。

如果某类回答比模型当前预期更好,我们就希望提高生成它的概率。

如果某类回答更差,就希望降低生成它的概率。

但是,到底应该提高多少、降低多少,需要依赖后面介绍的价值估计与策略优化方法。

四、Reward、Trajectory 和 Return:AI 如何知道自己做得好不好?

4.1 Reward:奖励从哪里来?

Reward(奖励)通常记作:

它描述智能体在某次交互中获得的即时反馈。

在 LLM 强化学习中,奖励可以来自不同渠道。

例如:

第一种:奖励模型(Reward Model)

奖励模型对生成的回答进行评分,例如根据有用性、正确性或偏好数据进行评价。

第二种:规则验证器(Rule-based Verifier)

例如数学题有标准答案:

  • 回答正确:奖励 1。

  • 回答错误:奖励 0。

编程任务也可以通过测试用例的通过情况提供奖励。

第三种:过程奖励(Process Reward)

不只检查最终答案,还对推理步骤、中间操作或工具使用结果提供反馈。

这里需要区分两个概念:

Reward 是评价信号,而不是模型参数的直接修改量。

一个回答获得奖励 1,并不意味着所有生成这个回答的 Token 概率都应该无条件增加。

奖励还必须经过价值估计、优势估计以及优化算法的处理。

4.2 稀疏奖励与密集奖励

根据奖励出现的频率,可以区分两类情况。

稀疏奖励(Sparse Reward)

只有完成整个任务后,才收到一次奖励。

例如模型生成完整的数学解答后,验证器才判断正确与否。

密集奖励(Dense Reward)

在多个中间步骤中,模型都可能收到奖励。

例如:

  • 中间推导正确,获得一定奖励。

  • 调用工具成功,获得一定奖励。

  • 最终答案正确,再获得奖励。

密集奖励通常能提供更丰富的学习信号,但也有风险:如果中间奖励设计不合理,模型可能学会追求评分规则,而不是真正完成任务。

稀疏奖励则更加直接,但往往面临更困难的信用分配问题(Credit Assignment):

最终得到了 1 分,究竟是前面的哪个动作促成了成功?

这也是为什么 LLM 强化学习需要研究如何把回答级别的反馈转化为 Token 级别的优化信号。

4.3 Trajectory / Rollout:一次完整生成过程

Trajectory(轨迹)描述智能体从初始状态到任务结束的一系列交互。

可以表示为:

在 LLM 中,一次 Rollout 通常可以理解为:

给定一个 Prompt,让模型按照某个策略生成一个完整回答,并记录生成过程及相关反馈。

例如:

复制代码
Prompt:2 + 3 等于多少?

Token 1:5
Token 2:。
Token 3:<EOS>

最终奖励:1.0

这就是一次简化的生成轨迹。

需要注意,Rollout 通常指采样或执行过程;Trajectory 则更强调由此得到的状态、动作和奖励序列。实际工程中二者经常在相近语境下使用。

4.4 Return:为什么不能只看即时奖励?

Reward 衡量某一步的反馈,但强化学习通常希望优化的是长期累计收益。

这就是 Return(累计回报):

其中:

  • (G_t):从第 (t) 步开始的累计回报。

  • (r_{t+k}):未来第 (k) 步的奖励。

  • (\gamma):折扣因子(Discount Factor),通常满足 (0\leq\gamma\leq1)。

举一个简单例子。

假设智能体在连续三个时间点获得奖励:

当 (\gamma=0.9) 时:

折扣因子的作用,是控制未来奖励在当前决策中的权重。

  • 当 (\gamma=1) 时,未来奖励不随时间折扣。

  • 当 (\gamma) 较小时,模型会更重视近期奖励。

对于很多只在回答结束时给出最终评分的 LLM 训练任务,可以采用 (\gamma=1)。

这时,较早的生成步骤也能获得来自最终结果的学习信号。

不过,最终奖励能够反馈到前面的步骤,并不代表我们已经知道每个 Token 分别贡献了多少。后者仍然需要更精细的价值估计与信用分配机制。

五、Value、Q Function 和 Advantage:强化学习最重要的三个概念

这是全文最关键的一部分。

前面我们知道,模型可以获得奖励。

但奖励只是结果。

强化学习还希望知道:

在当前状态下,什么样的行为比模型通常会采取的行为更好?

为此,我们需要引入三个概念:

Value Function、Q Function 和 Advantage Function。

5.1 Value Function:当前状态有多大价值?

状态价值函数通常写作:

定义为:

它回答:

如果当前处于状态 (s),之后继续按照策略 (\pi) 行动,预期能够获得多少累计回报?

例如,模型正在回答一个数学题。

根据当前模型的能力,以及它已经写出的内容,我们估计:

这意味着,在当前状态下,模型按照现有策略继续完成任务,预期回报为 0.9。

注意,这不是保证模型一定得到 0.9,而是一个期望值。

5.2 Q Function:如果选择某个动作,预期回报是多少?

动作价值函数通常表示为:

其定义是:

它回答:

在当前状态下,先执行动作 (a),然后继续按照策略 (\pi) 行动,预期能够获得多少累计回报?

这里有一个重要区别:

  • (V^\pi(s)):不指定当前动作,按照现有策略行动的平均预期。

  • (Q^\pi(s,a)):指定当前动作后,按照现有策略继续行动的预期。

二者满足:

因此,Value 是不同动作的 Q 值按照策略概率加权得到的平均值。

5.3 Advantage:这个动作比正常水平好多少?

现在我们终于可以定义 Advantage。

中文称为优势函数。

直观含义:

优势 = 选择某个动作后的预期回报 − 当前策略的平均预期回报

这意味着:

  • 当 (A(s,a)>0) 时,动作优于当前策略的平均预期。

  • 当 (A(s,a)<0) 时,动作劣于当前策略的平均预期。

  • 当 (A(s,a)=0) 时,动作与当前策略的平均预期一致。

下面通过一个完整例子理解。

5.4 为什么一个 0.8 分的回答,不一定应该被强化?

为了便于理解,我们暂时采用一个简化的一步决策模型:

模型一次选择一个完整回答,而不是逐 Token 生成。

假设同一个问题有两个候选回答,当前策略分别以 50% 的概率选择它们。

候选回答 选择概率 Q 值
回答 A 50% 0.8
回答 B 50% 1.0

当前状态的 Value 为:

于是:

XML 复制代码
<text size="sm">这两个回答的相对表现可以直观表示为:</text>

<box border radius="lg" padding={3} gap={3}>
  <box gap={1}>
    <row justify="between" align="center">
      **回答 A**
      <text color="secondary" weight="medium" tabularNums>Q = 0.80</text>
    </row>
    <box background="surface-tertiary" radius="full" height="12px" clip>
      <box background="warning-solid" width="80%" height="100%" radius="full"/>
    </box>
    <text color="secondary" size="xs">Advantage = −0.10,低于当前预期</text>
  </box>
  <box gap={1}>
    <row justify="between" align="center">
      **当前策略的平均预期**
      <text color="secondary" weight="medium" tabularNums>V = 0.90</text>
    </row>
    <box background="surface-tertiary" radius="full" height="12px" clip>
      <box background="secondary" width="90%" height="100%" radius="full"/>
    </box>
  </box>
  <box gap={1}>
    <row justify="between" align="center">
      **回答 B**
      <text color="secondary" weight="medium" tabularNums>Q = 1.00</text>
    </row>
    <box background="surface-tertiary" radius="full" height="12px" clip>
      <box background="success-solid" width="100%" height="100%" radius="full"/>
    </box>
    <text color="secondary" size="xs">Advantage = +0.10,高于当前预期</text>
  </box>
</box>

这里出现了一个反直觉的结果:

回答 A 明明获得了 0.8 的较高评分,但它的 Advantage 却是负数。

为什么?

因为在这个状态下,模型本来就有能力实现 0.9 的平均回报。

回答 A 反而低于正常水平。

如果我们不加区分地强化回答 A,就可能把概率分配给一个相对较差的回答,从而损害策略的预期表现。

再考虑另一个情况:

一个能力较弱的模型,面对相同问题时,当前预期回报只有 0.6。

如果某个动作的 Q 值达到 0.8,那么:A(s,a)=0.8-0.6=+0.2

此时,同样是 0.8 的结果,优势却为正数。

所以:

决定一个动作是否值得提高概率的,不只是绝对奖励,而是它相对于当前状态下策略预期表现的优势。

这里也要强调:真实训练中,一个回答实际得到的 0.8 分是一次观测到的 Reward 或 Return,并不天然等于 (Q(s,a))。上面的例子假设了确定性的一步任务,因此两者可以对应。

在一般的多步任务中,Q 是条件期望,通常无法直接精确获得。实际算法往往使用观测回报、Value 网络或其他方法估计 Advantage。

六、Baseline:为什么要从 Reward 中减去一个基线?

理解 Advantage 后,我们自然会遇到另一个概念:Baseline(基线)。

所谓基线,就是我们在评价一个动作时引入的参考值。

最常见的选择,是当前状态的价值函数:

但 Baseline 并不一定非要由 Value 网络给出。

为什么要减去基线?

有两个值得区分的角度。

6.1 直观角度:将绝对表现转化为相对表现

假设模型连续生成了三个回答:

回答 Return Baseline 差值
A 0.8 0.9 −0.1
B 1.0 0.9 +0.1
C 0.9 0.9 0

使用差值后,我们获得了更有针对性的优化信号。

这就是使用优势估计进行策略优化的直观理由。

6.2 数学角度:降低梯度估计的方差

在策略梯度算法中,一个典型的梯度估计项是:

其中 (G) 是观测到的累计回报。

因为动作来自概率采样,不同采样之间的回报可能波动很大,梯度估计也会出现明显波动。

我们可以引入基线:

这样做为什么不会改变期望梯度?

关键在于:

由于 (b(s)) 不依赖当前采样动作:

利用:

得到:

因为所有动作的概率之和为 1:

因此:

也就是说,在满足相应条件时,减去不依赖当前动作的基线不会改变策略梯度的期望。

同时,一个选择合理的基线通常可以降低梯度估计的方差,从而提高训练稳定性。

但这里存在两个重要细节:

第一,并非任意基线都一定能降低方差。不合适的基线甚至可能增加方差。

第二,(V(s)) 是常见且有效的基线,但它并不总是严格意义下使梯度方差最小的基线。

这些区别在阅读 PPO、Actor-Critic 相关论文时非常重要。

七、Policy Gradient:模型参数究竟如何被更新?

现在我们已经知道,Advantage 可以衡量动作相对当前策略的好坏。

接下来的问题是:

怎样将这个信号转化为模型参数的变化?

这就需要 Policy Gradient(策略梯度)。

7.1 强化学习优化的目标是什么?

一个常见目标是最大化策略的期望累计回报:

其中:

  • (\theta):策略参数。

  • (\tau):按照策略采样得到的轨迹。

  • (G(\tau)):轨迹的累计回报。

我们希望通过调整模型参数,使 (J(\theta)) 尽可能大。

策略梯度定理给出了一种计算优化方向的方法。

在适当的状态分布或轨迹加权约定下,其核心形式可以写成:

这里最关键的是两部分的乘积:

以及:

前者表示如何改变模型参数,才能影响当前动作的对数概率。

后者决定当前动作应该受到正向还是负向的优化信号。

7.2 Advantage 如何影响动作概率?

假设某个 Token 的 Advantage 为正:

策略梯度的期望更新方向会倾向于提高该动作在相应状态下的概率。

相反,如果:

则会倾向于降低该动作的概率。

若 Advantage 为 0,那么这个动作对上述策略梯度项不产生直接贡献。

因此可以用一句话理解策略梯度:

增加相对较优行为的概率,减少相对较差行为的概率。

但还不能忽略一个问题:

如果某次采样得到了很高的 Advantage,是否应该大幅提高其概率?

答案通常是否定的。

因为单次采样可能存在噪声,优势估计也可能不准确。

如果参数更新过大,模型可能在一次训练中产生剧烈的概率分布变化。

这正是 PPO 等稳定策略优化算法试图解决的问题。

八、KL Divergence 与 Entropy:为什么不能只追求高奖励?

强化学习不只是让奖励最大化,还需要控制策略变化和探索行为。

这里涉及两个重要概念:

KL Divergence 和 Entropy。

8.1 KL Divergence:新策略偏离旧策略有多远?

KL 散度用于衡量两个概率分布之间的差异。

对于离散分布 (P) 和 (Q):

需要注意,KL 散度通常不是对称的:

假设旧模型面对一个问题时,下一个 Token 的概率为:

Token 旧策略 新策略
巴黎 0.70 0.95
伦敦 0.20 0.04
里昂 0.10 0.01

新策略更加偏向"巴黎"。

对于这个问题,这种变化可能是有益的。

但是,如果大量状态中的概率分布都在一次更新后发生剧烈变化,那么模型可能出现:

  • 已有能力退化。

  • 输出模式变得单一。

  • 对奖励信号中的噪声过拟合。

  • 训练过程不稳定。

因此,许多 LLM 强化学习方法会限制策略偏离某个参考策略的程度。

一种常见目标是:

这里是一个简化表达,实际计算通常还包含 Prompt 和生成轨迹上的期望。

其中 (\pi_{\mathrm{ref}}) 可以是冻结的参考模型,例如经过 SFT 的模型。

KL 惩罚的含义是:不仅要获得更高奖励,还要避免为了奖励而过度偏离原有策略。

尤其要区分两种对象:

  • 参考策略 (\pi_{\mathrm{ref}}):用于约束模型不要偏离指定的参考分布。

  • 旧策略 (\pi_{\mathrm{old}}):用于表示采集当前训练数据时的行为策略。

二者不一定相同。

PPO 的概率比率通常涉及旧策略;LLM 对齐训练中的 KL 正则化则可能涉及另一套冻结的参考策略。

8.2 Entropy:为什么模型不能只选择一个动作?

Entropy(熵)衡量概率分布的不确定性。

对于策略分布:

考虑两种策略:

策略 A:

动作 概率
A 0.98
B 0.01
C 0.01

策略 B:

动作 概率
A 0.50
B 0.30
C 0.20

策略 A 的概率高度集中,熵较低。

策略 B 的概率更加分散,熵较高。

如果模型很早就将概率集中到某一种行为上,它可能过早放弃探索其他更优行为的机会。

因此,一些强化学习算法会通过熵奖励鼓励适度探索:

其中 (\alpha) 控制熵奖励的权重。

但是,熵也不是越高越好。

过高的熵可能意味着模型过于随机,难以稳定输出高质量答案。

优化目标不是让所有 Token 都有相近概率,而是在任务表现与探索之间保持合理平衡。

可以将 KL 和 Entropy 的作用理解为:

  • KL:控制策略与指定参考分布之间的距离。

  • Entropy:衡量策略自身的随机性,适当的熵奖励可以鼓励探索。

它们有联系,但并不等价。

九、Importance Sampling:为什么可以用旧模型生成的数据更新新模型?

现在考虑一个实际训练问题。

假设我们使用当前策略生成了一批回答。

记采样时的策略为:

随后,我们更新了模型参数,得到:

这时,训练数据来自旧策略,而我们正在优化新策略。

能不能继续使用这些旧数据?

这就需要理解 Importance Sampling(重要性采样)。

9.1 核心思想:通过概率比率进行修正

假设我们希望计算:

但手中的样本来自:

我们可以利用概率比率:

在两个分布满足相应支持集条件时:

这就是重要性采样的基本原理。

9.2 为什么需要概率比率?

假设某个动作:

  • 在旧策略下的概率是 0.2。

  • 在新策略下的概率是 0.3。

则:

这意味着该动作在新策略下更常见。

如果使用旧策略采集的数据估计新策略下的期望,就需要对这个采样概率的变化进行修正。

反过来,如果:

说明该动作在新策略下的概率比旧策略更低。

需要区分:在严格的期望变换中,多步轨迹的重要性权重可能涉及连续动作概率比率的乘积;而 PPO 常用的是在旧策略状态、动作数据上构造逐步的代理优化目标,并非完整的无偏轨迹修正。

重要性采样还存在一个明显问题:

当新旧策略差异过大时,概率比率可能变得非常极端,从而导致估计方差增大。

这也是 PPO 需要限制策略变化幅度的原因之一。

十、On-policy 与 Off-policy:训练数据必须来自当前模型吗?

这两个概念关注的是:用于学习的数据,是由什么策略采集的?

10.1 On-policy:主要使用当前策略的数据

On-policy 方法通常使用当前策略,或非常接近当前策略的行为策略所生成的数据进行学习。

典型流程是:

  1. 使用当前模型采样一批回答。

  2. 计算奖励与优势估计。

  3. 使用这批数据更新策略。

  4. 在策略变化后重新采样。

优点是数据与当前优化目标更加匹配。

缺点是需要不断生成新数据,采样成本较高。

10.2 Off-policy:允许使用其他策略的数据

Off-policy 方法允许利用并非当前目标策略生成的数据进行学习。

例如:

  • 历史版本模型生成的回答。

  • 经验回放缓冲区中的旧数据。

  • 其他行为策略采集的数据。

这样可以提高样本复用效率,但也会遇到数据分布与当前策略不匹配的问题。

因此,Off-policy 方法通常需要相应的分布修正机制或专门设计的学习目标。

10.3 PPO 属于哪一种?

PPO 通常被归类为 On-policy 策略优化算法。

但它有一个重要特点:PPO 允许在同一批由旧策略采样的数据上执行多轮优化。

它通过新旧策略之间的概率比率构造代理目标,并通过裁剪等机制降低过大更新带来的风险。

所以,PPO 并不是每进行一次梯度更新都必须立即重新采样。

但这也不意味着 PPO 可以无条件使用任意久远的历史数据。

如果当前策略与采样策略差异过大,使用这些数据可能导致训练效果变差甚至不稳定。

十一、将所有概念连接起来:PPO 为什么需要 Advantage?

现在我们可以把前面学到的知识连接起来。

PPO 的全称是 Proximal Policy Optimization。

它的核心目标之一是:

在改善策略表现的同时,避免单次策略更新幅度过大。

11.1 PPO 的核心优化形式

PPO 的经典 Clipped Surrogate Objective 可以表示为:

其中:

各个变量对应的含义如下:

符号 含义
正在更新的新策略
采样时使用的旧策略
新旧策略的动作概率比率
对当前动作 Advantage 的估计
裁剪范围的超参数
将比率数值限制在指定区间内

这一公式看起来复杂,但可以拆成两个问题:

第一个问题:应该增加还是减少动作概率?

主要由 Advantage 的正负决定。

第二个问题:允许把动作概率改变到什么程度?

由概率比率与 Clipped Objective 共同控制。

11.2 一个具体例子

假设:

说明该动作的估计优势为正。

如果新策略把该动作的概率提高到旧策略的 1.4 倍:

假设:

那么裁剪区间是:

PPO 中的两项分别为:

以及:

最终取较小值:

也就是说,对于这个正优势样本,当概率比率超过 1.2 时,代理目标不再因为继续提高该比率而获得额外收益。

这使优化器缺少继续大幅提高该动作概率的动力。

对于负 Advantage,裁剪机制也会抑制过度降低动作概率所产生的额外优化收益。

但需要注意:

PPO 的 Clip 并不是对模型参数或最终概率施加绝对的硬约束。它是在代理目标层面抑制过大的策略变化,实际训练中依然可能需要监控 KL 散度或使用其他稳定性措施。

11.3 为什么 PPO 不直接使用 Reward?

现在回到文章最开始的问题。

假设一个回答得到:R=0.8

但当前模型在相同状态下的预期回报为:V(s)=0.9

在使用观测回报减去状态价值作为优势估计的简化情况下:

这说明该次结果低于模型的预期。

如果 PPO 直接把正的 Reward 当成策略优化权重,那么这个得到 0.8 分的样本依然会产生提高其概率的信号。

但是使用 Advantage 后,该样本的策略梯度信号就转为负向。

因此,PPO 使用 Advantage 的核心意义在于:

它需要知道采样动作相对于当前策略的表现是好还是差,而不是只知道这个动作获得了一个多大的绝对奖励数值。

严格来说,Reward 并非在理论上完全不能用于策略梯度。REINFORCE 等方法可以直接使用回报构造无偏梯度估计。

但是,使用合适的 Baseline 与 Advantage 估计,通常能够降低梯度方差,并提供更稳定的策略优化信号。

所以,更精确的说法是:

PPO 采用 Advantage 估计,是为了改善策略梯度的估计与优化稳定性,而不是因为 Reward 在数学上完全无法用于策略优化。

十二、把整个 LLM 强化学习训练流程串起来

现在我们可以用一个简化的 PPO 训练流程,把全部概念联系起来。

第一步:准备 Prompt

从训练数据中抽取问题:

复制代码
Prompt:请解释什么是梯度下降。

它构成模型的初始生成状态。

第二步:使用旧策略生成回答

通过:

采样一个完整回答。

在生成过程中,模型连续根据当前状态选择下一个 Token。

这一过程就是一次 Rollout。

第三步:计算 Reward

使用奖励模型或验证器,对回答进行评分。

例如:R=0.8

第四步:估计 Return 和 Advantage

首先根据任务奖励计算相应的 Return。

然后使用价值函数或其他估计方法生成 Advantage。

例如:

这是一个简单的 Monte Carlo 风格优势估计形式。

实际 PPO 中也经常采用 GAE(Generalized Advantage Estimation)等方法,在偏差与方差之间做权衡。

第五步:计算策略概率比率

对于采样得到的动作,计算:

利用它评估新策略相对于采样策略的概率变化。

第六步:执行策略优化

使用 Advantage 与概率比率构造 PPO Clipped Objective。

在实际实现中,训练目标还可能包括:

  • Value Function 的拟合损失。

  • 熵奖励。

  • KL 正则化或 KL 监控。

  • 其他辅助约束。

通过反向传播更新模型参数。

第七步:重复训练

使用更新后的模型采集新的 Rollout,继续估计奖励、回报和优势,并执行下一轮优化。

最终,我们希望模型对不同状态的行为分布逐渐发生变化:

相对较好的行为更有可能出现,相对较差的行为更不容易出现。

这就是 LLM 强化学习训练的基本逻辑。

十三、最容易混淆的六个问题

问题 1:Reward、Return、Value 和 Q 有什么区别?

Reward 是某一步实际获得的奖励。

Return 是从当前时间步起累计的未来奖励。

Value 是从当前状态出发,遵循某个策略能够获得的预期 Return。

Q 是在当前状态先执行指定动作,再遵循策略能够获得的预期 Return。

问题 2:Advantage 就是 Reward 减去 Value 吗?

严格定义是:

但实际算法可以使用:等形式进行估计。

如果把观测 Reward 或 Return 直接当成 Q,必须说明相应的任务假设或估计近似,不能在所有情况下混为一谈。

问题 3:为什么正 Reward 可以对应负 Advantage?

因为 Reward 是绝对评价,而 Advantage 是相对当前策略预期的评价。

当结果低于当前预期时,即使 Reward 本身为正,Advantage 也可能为负。

问题 4:为什么要减去 Baseline?

使用不依赖当前采样动作的基线,在适当条件下不会改变策略梯度的期望。

合理选择基线通常可以降低梯度估计的方差,使策略优化更稳定。

问题 5:KL 和 Entropy 都在限制策略变化吗?

不是。

KL 关注两个概率分布之间的差异,可以用于限制策略偏离指定参考策略。

Entropy 衡量单个概率分布本身的不确定性,常用于分析或鼓励探索。

问题 6:PPO 为什么同时需要 Advantage 和概率比率?

二者解决不同的问题。

Advantage 决定优化动作概率的方向和相对强度。

概率比率衡量新旧策略对当前动作的概率变化,并用于构造限制过大更新收益的 PPO 代理目标。

简单概括就是:

Advantage 负责判断行为是否值得强化,概率比率与 PPO 的裁剪机制负责控制强化过程的幅度。

十四、学完这一层,你应该建立怎样的直觉?

强化学习中,最容易产生误解的地方,就是认为:

一个行为得分高,就应该增加这个行为的概率。

这句话只有在附加适当条件时才成立。

强化学习真正关心的是如何提高策略整体的期望累计回报。

为了做到这一点,我们需要:

  • 用 Policy 描述智能体如何选择动作。

  • 用 Reward 和 Return 评价交互结果。

  • 用 Value 和 Q 预测不同状态与动作的长期收益。

  • 用 Advantage 判断动作相对当前策略预期的好坏。

  • 用 Baseline 改善策略梯度估计的稳定性。

  • 用 Policy Gradient 将优化信号传递到模型参数。

  • 用 Importance Sampling 处理新旧策略之间的采样概率差异。

  • 用 PPO、KL 正则化等机制控制策略更新。

  • 用 Entropy 理解策略的随机性与探索。

  • 用 Rollout 不断采集训练经验,并根据 On-policy 或 Off-policy 的算法设定使用这些数据。

所有概念最终都服务于同一个目标:

让智能体通过经验,将概率逐渐分配给能够带来更高预期累计回报的行为。

如果只记住这篇文章中的一个公式,那应该是:

如果只记住一个思想,那应该是:

优化决策时,除了看一个动作获得多少回报,还要看它相比当前策略的预期表现究竟好多少。

这个思想是理解 PPO、Actor-Critic、GAE,以及进一步学习 GRPO 等 LLM 强化学习算法的重要基础。


思考题:检验你是否真正理解了第一层

假设模型生成了三个回答,其结果如下。为了简化,假定给出的分数就是可以用于计算优势的动作价值或对应估计。

回答 动作价值估计 当前状态 Value
A 0.8 0.9
B 0.6 0.4
C 0.9 0.9

请回答:

  1. 哪个回答的 Advantage 最大?

  2. 哪个回答的 Advantage 为负?

  3. 回答 A 的绝对分数高于回答 B,为什么策略梯度仍可能倾向于提高 B 的概率、降低 A 的概率?

  4. 如果训练只依据原始正向奖励增加回答概率,可能出现什么问题?

  5. 如果某个正优势动作的新旧策略概率比率已经达到 1.5,而 PPO 的裁剪范围为 (\epsilon=0.2),继续提高该动作概率,是否还能增加这个样本的 Clipped Objective?

如果你能够独立解释以上问题,而不只是机械地代入公式,那么就说明你已经理解了强化学习第一层最重要的优化逻辑。

下一层建议学习:Policy Gradient 的数学推导、REINFORCE、Actor-Critic、GAE,以及 PPO 的完整损失函数。 这些内容会进一步解释,为什么相同的基本原理能够衍生出不同的强化学习训练算法。

相关推荐
春涧草茶1 小时前
慢就是快15-1 多进程 多线程
开发语言·python
程序猿阿森1 小时前
RAG 落地实践:离线索引 + 在线 FAQ 与混合检索全流程拆解
数据库·人工智能·rag
惊鸿一博1 小时前
目标检测指标评估_mAP(mean Average Precision平均精度均值)计算方法
人工智能·目标检测·均值算法
Shulex1 小时前
备战黑五:如何用 AI 智能客服守住独立站转化率与退换货成本?
人工智能·智能客服·跨境电商
Navicat中国1 小时前
如何将 Navicat 的 AI 助手连接到本地 LLM
数据库·人工智能·navicat·本地llm
网易易盾1 小时前
广告合规系统如何选?检出能力、接入成本与运营闭环评估
大数据·人工智能
深圳市益普科技有限公司1 小时前
Micro-LED量产线MES,中试线转量产要不要重做一遍
人工智能
北极星电力网1 小时前
实录 | 北极星第三届源网荷储一体化暨绿电直连高质量发展交流会落幕
大数据·人工智能