type
status
date
slug
summary
tags
category
icon
password
具体的数学细节就由强化大神来讲吧,这边浅浅讲个概念和印象
首先用一个具体的 LLM 解决数学题 的场景来解释什么是方差,什么是偏差
假设我们要训练一个 LLM 回答:“小明有 5 个苹果,吃了 2 个,还剩几个?”(正确答案是 3)。
1. 什么是方差 (Variance)?核心直觉: “评分波动太大,让人无所适从。”
对应算法: Monte Carlo (MC) / GRPO(如果不做 Group 归一化)。
场景举例:
模型尝试了两次生成(这就叫采样):
- 尝试 A:“...思考过程非常完美... 答案是 3。” -> 真实奖励 +100分。
- 尝试 B:“...思考过程非常完美... 答案是 4。” -> 真实奖励 0分。
方差在哪里?
注意,尝试 A 和 尝试 B 的前 90% 的 Token(思考过程)可能是一模一样的。
但是在 MC 方法中,我们要等到结尾才算总账。
- 对于尝试 A,算法告诉模型:“刚才那 90% 的思考过程太棒了,全力加强!”
- 对于尝试 B,算法告诉模型:“刚才那 90% 的思考过程太烂了,全力抑制!”
后果:
面对几乎相同的输入(思考过程),模型收到了截然相反的更新信号(梯度)。这种信号的剧烈跳动就是高方差。
在 LLM 训练中,因为序列很长,随机性叠加,导致你这一步迈向东,下一步迈向西,损失函数震荡剧烈,模型很难收敛,或者需要海量的样本(也就是 Sample Efficiency 低)才能把这些噪声平均掉。
2. 什么是偏差 (Bias)?核心直觉: “老师教错了,虽然我很听话,但我学歪了。”
对应算法: Temporal Difference (TD) / PPO。
场景举例:
为了解决上面的方差问题,我们引入了一个助教(Critic 模型/价值网络)来进行步步指导,而不是等最后结果。
- 模型生成:“小明有 5 个苹果...”
- 助教 (Critic) 打分:“这句话写得好,我觉得这题最后能做对,现在的价值是 80 分!”
-> 模型更新:加强这句话。
偏差在哪里?
这个助教(Critic)也是一个神经网络,它不是全知全能的,它也是刚训练出来的。
如果助教很蠢或者没训练好,他可能会误判:
- 模型生成了一句胡话:“小明飞到了月球...”
- 助教错误地判断:“非常有创意!我觉得这题能拿 90 分。”
后果:
模型收到的信号非常稳定(方差低),因为助教总是给出一贯的反馈。但这个反馈偏离了真实情况(真实情况是这题肯定做错了)。这种估计值与真实值之间的系统性误差就是偏差。
如果 Critic 偏差太大,LLM 就会学会“欺骗”Critic(Reward Hacking),即生成一些Critic 喜欢但实际上是错误的内容。
在强化学习(RL)以及大模型(LLM)的RLHF(Reinforcement Learning from Human Feedback)阶段,Monte Carlo (MC) 方法和 Temporal Difference (TD) 方法的核心区别在于价值估计的更新时机和目标值的来源。这两者直接决定了算法的方差(Variance)、偏差(Bias)以及数据效率。
以下是详细的技术对比与举例说明:
1. 核心机制区别
- Monte Carlo (MC) 方法:基于完整轨迹的经验更新
MC方法必须等待一个完整的Episode(在LLM中通常指生成完整的回答直到
<EOS>)结束,获得最终的累积回报 后,才对价值函数 进行更新。 - 更新公式:
- 特点: 无偏差,高方差。因为 是真实发生的收益,所以无偏差;但由于生成过程中的每一步采样都有随机性,累积到最后的 波动很大,导致方差高,训练收敛较慢。
- Temporal Difference (TD) 方法:基于自举(Bootstrapping)的增量更新 TD方法不需要等到Episode结束。它在每一步(或每N步)利用当前的即时奖励 加上对下一个状态价值的估计 来更新当前状态的价值。
- 更新公式:
- 特点: 低方差,有偏差。因为它只依赖单步随机性和一个稳定的估计值,所以方差低,训练更平稳;但由于 本身是一个估计值(可能是不准的),引入了偏差(Bias)。
2. 在LLM场景中的具体举例
假设我们正在训练一个LLM解决数学题。
Prompt: "计算 10 - 2 * 3 = ?"
正确答案: "4" (Reward = 1.0)
错误答案: 其他 (Reward = -1.0)
当前生成的轨迹: "10 - 2 * 3 = 10 - 6 = 4"
场景一:Monte Carlo (MC) 更新
- 过程: 模型必须生成完整个句子:"10 - 2 * 3 = 10 - 6 = 4 <EOS>"。
- 计算: 只有当
<EOS>出现,环境(Reward Model)判断答案正确,给出最终回报 。
- 更新: 算法回溯整个序列。对于生成 "10"、"-"、"6" 这些中间Token的状态,我们都用最终的 去更新它们的价值。
- 问题: 如果模型生成 "10 - 2 * 3 = 8 - 6 = 2"(中间错了,最后也错了),MC会告诉前面的 "10 - 2 * 3 =" 这一部分也是“坏”的,尽管前半部分逻辑是对的。这就是**信贷分配(Credit Assignment)**难的问题,且由于生成路径千变万化,方差极大。
场景二:Temporal Difference (TD) 更新 (以TD(0)为例)
- 过程: 模型生成了 "10 - 2 * 3 =" 之后,接着生成了 "10"。
- 计算: 此时不需要等整个句子写完。TD算法会立即观察即时奖励 (在RLHF中中间步通常为0,除非有Dense Reward)和 Critic 模型对“生成10之后的状态”的价值预估 。
- 更新: 目标是 。如果 Critic 模型已经训练得不错,它知道“生成10”是通往正确答案“4”的高概率路径,因此 很高。TD会利用这个估计值立即提升当前状态的价值。
- 优势: 即使后续生成的步骤因为随机性走偏了(比如后面变成了 "10 - 5..."),TD在当前步的更新依然是基于对未来的期望,而不是某一次具体的坏运气结果,因此方差更小。
那PPO是MC(蒙特卡洛)还是TD(时序差分), GRPO呢?
关于PPO和GRPO是基于Monte Carlo (MC) 还是 Temporal Difference (TD) 的判定,核心在于它们如何估计价值(Value)和优势(Advantage),以及是否使用了自举(Bootstrapping)。以下是深入的分析:
- PPO (Proximal Policy Optimization): 主要是 TD 方法 (Actor-Critic)
- Critic 模型与自举 (Bootstrapping): PPO 训练一个 Critic 模型(价值网络 )来拟合状态价值。Critic 的更新通常使用 MSE Loss,目标值是 。这种利用当前估计值去更新当前估计值的行为,就是典型的 TD 特性(Bootstrapping)。
- GAE (广义优势估计): PPO 计算优势函数通常使用 GAE (Generalized Advantage Estimation)。GAE 引入了 参数在偏差(Bias)和方差(Variance)之间做权衡:
- 当 时,它是纯粹的 TD,严重依赖 Critic 的准确性,偏差大但方差小。如果 Critic 没训练好,优势估计就是错的。
- 当 时,它退化为 MC,完全依赖实际回报,无偏差但方差大。虽然真实,但因为LLM生成长文本时的随机性,每次采样的结果波动极大,会导致训练不稳定
- 结论: 实际应用中 通常取 0.95 左右,且必须维护一个 Critic 网络进行价值评估,因此 PPO 被归类为基于 TD 的 Actor-Critic 方法。
PPO 本质上是 Actor-Critic 架构。虽然在 RLHF 场景下,由于奖励通常在序列结束时给出(Sparse Reward),看起来像 MC,但在算法实现机制上,它依赖于 TD。
其中
- GRPO (Group Relative Policy Optimization): 是 MC 方法 (Policy Gradient)
- 摒弃 Critic (No-Critic): GRPO 不训练价值网络 。这意味着它无法进行自举(Bootstrapping),即不能用下一个状态的估计价值来指导当前更新。
- 组内相对优势 (Group Relative Advantage): GRPO 对同一个 Prompt 采样一组输出(Group of trajectories),比如 个。它直接利用这 个完整轨迹的真实回报(Reward)计算均值和标准差,以此作为基线(Baseline)来标准化每个样本的优势。
- 公式逻辑:
- 全轨迹依赖: 必须等到完整的序列生成结束获得最终 Reward 后,才能进行计算。这种直接利用完整轨迹回报、不依赖中间状态价值估计的更新方式,是典型的 Monte Carlo (MC) 方法。
- PPO: 属于 TD (Actor-Critic) 范畴。它依赖 Critic 模型来降低方差,利用 bootstrapping 进行价值估计,计算成本高(需要缓存和更新 Critic),但样本效率相对较高。
- GRPO: 属于 MC (Policy Gradient) 范畴。它移除了 Critic,通过 Group Sampling 的统计特征作为 Baseline 来降低方差。它对内存更友好(省去了一个大模型),但依赖多次采样的相对比较来获得稳定的梯度信号。
GRPO 是 DeepSeek 在 R1/Math 论文中提出的优化算法,其核心设计去掉了 Critic 模型,这使其回归到了基于 MC 的策略梯度方法。
总结
- 作者:SimonSun
- 链接:https://simonsun.xyz//article/llm-16
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。






