#一、PPO 与 RLHF 高频题
#161. PPO 想解决什么问题?为什么普通 policy gradient 不够用?
#知识点
- policy gradient 更新过猛会导致策略突然崩掉
- on-policy 强化学习需要稳定的小步更新
- importance ratio
- trust region 近似思想
#详细解答
PPO(Proximal Policy Optimization)要解决的核心问题是:策略模型更新时不能一步走太大,否则新策略会和旧策略差太远,原来收集到的数据就不再适合当前策略,训练会迅速不稳定。
普通 policy gradient 的问题在于,它理论上告诉你“往奖励更高的方向更新”,但并没有很好限制“到底能走多大一步”。在语言模型对齐里,这种不稳定会更明显,因为输出空间极大、奖励噪声强、单次更新很容易把回答风格推偏。
所以 PPO 的本质不是“又一个 RL 算法名字”,而是给策略更新加了一个相对保守的约束:允许变好,但不要一下偏离旧策略太远。你可以把它理解成“带安全护栏的 policy gradient”。
#162. PPO 里的 clip objective 到底在做什么?
#知识点
- 新旧策略概率比
r(theta) - clip 到区间内
- 防止 advantage 很大时过度更新
- 稳定训练
#详细解答
PPO 里最经典的部分就是 clip objective。它先看同一个动作在新旧策略下的概率比值 r(theta),如果这个比值变化不大,说明新策略还在旧策略附近,可以正常利用 advantage 更新;但如果比值已经偏得太多,就把目标裁住,不再继续鼓励更激进的更新。
直觉上,它是在说:这个样本确实告诉你“某个方向更好”,但你不能因为单个样本优势很大,就把策略一下改得面目全非。clip 就像给梯度收益设置上限,让训练更像小步迭代,而不是大起大落。
高频追问往往不是让你背公式,而是看你能否说出这条因果链:概率比失控 -> 新旧策略差太远 -> 训练不稳定 -> 用 clip 限制单步偏移。
#163. advantage 在 PPO 中为什么重要?它到底在衡量什么?
#知识点
- advantage = 动作比基线好多少
- 减少方差
- 区分“绝对回报高”和“相对当前策略更好”
- policy update 信号
#详细解答
advantage 可以理解成:“当前这个动作,相比一个基线水平,到底好多少或差多少。”如果只看原始 return,很多时候你分不清是因为整体轨迹都比较高,还是这个动作本身真的值得鼓励。
在 PPO 里,advantage 的作用就是把策略更新信号变成“相对收益”而不是“绝对收益”。正 advantage 表示这个动作比预期更好,应该提高它的概率;负 advantage 表示这个动作比预期更差,应该压低它的概率。
它还有一个很重要的工程价值:降低更新方差。因为 RL 本来就噪声大,如果没有 advantage 或合适 baseline,梯度会特别抖,训练更容易不稳。
#164. value model / critic 在 PPO 里扮演什么角色?
#知识点
- 估计状态价值
- 给 advantage 提供 baseline
- actor-critic 框架
- bias-variance trade-off
#详细解答
在 PPO 的 actor-critic 框架里,actor 负责输出策略,critic 或 value model 负责估计“当前状态下,未来大概能拿到多少回报”。这个 value 并不直接决定动作,而是给 advantage 计算提供 baseline。
为什么这很重要?因为如果没有 baseline,你只能用非常噪的 return 去更新策略;而有了 value 以后,你是在问“这一步动作,比当前状态下本来应得的水平高还是低”,这样信号会稳很多。
所以 critic 的本质不是“另一个顺便训练的模型”,而是稳定策略学习的重要支点。也正因为如此,value 学坏、value 偏差太大,经常会直接拖垮整个 PPO 训练。
#165. 为什么很多人说 PPO 在 LLM 对齐里并不好训?
#知识点
- 奖励噪声大
- 长文本 credit assignment 难
- value 学习难
- KL 漂移、长度偏置、reward hacking
#详细解答
很多人说 PPO 在 LLM 对齐里不好训,不是因为 PPO 理论错了,而是因为语言模型场景把它的困难放大了。首先,奖励模型本身就带噪声,不是真实人类偏好的完美代理;其次,长文本里哪一句、哪一步推理导致奖励变化,并不容易分清,credit assignment 很难。
再进一步,LLM 输出空间极大,稍微训练不稳就会出现回答风格漂移、长度异常增长、模式坍缩、reward hacking。与此同时,critic/value model 在长文本生成上也不好学,baseline 一旦不准,policy 更新就会更抖。
所以面试里高分回答不是说“PPO 不好”,而是能明确点出:它在 LLM 场景里同时面临奖励噪声、长序列归因、critic 学习和 KL 约束四类挑战。
#166. PPO 在 RLHF 里通常怎么接到 reward model 和 reference model 上?
#知识点
- SFT policy 作为初始化
- reward model 打分
- reference model 做 KL 约束
- 最大化“奖励 - 偏离代价”
#详细解答
在经典 RLHF 里,PPO 一般不是从零开始,而是先拿一个 SFT 后的 policy 作为初始策略。然后当前策略生成回答,由 reward model 给出偏好分数;与此同时,还会保留一个 reference model,用来约束当前策略不要偏离初始分布太远。
所以优化目标通常不是单纯追求 reward 最大,而更像在最大化“奖励收益减去偏离 reference 的代价”。这样做的原因很现实:如果只追 reward,模型很容易学出奇怪但能讨好 reward model 的行为;加上 reference KL 约束,策略会更稳。
这也是为什么很多面试官会问 reference model 的角色,因为它体现了 LLM 对齐里一个很关键的思想:不是只要高奖励,还要可控地高奖励。
#167. PPO 中的 KL 约束在防什么?如果没有它会怎样?
#知识点
- 防止策略漂移过快
- 防 reward hacking
- 保持语言流畅性与可读性
- reference anchoring
#详细解答
PPO 在 RLHF 里常配 KL 约束,本质上是在防止策略模型为了追奖励而跑飞。因为 reward model 只是偏好的近似器,不是完美监督,如果没有约束,模型可能会学会一些“钻奖励空子”的行为,比如输出特别长、特别套路化、特别迎合某类模式的答案。
KL 约束的作用,就是把当前策略锚定在 reference policy 附近,让模型提升偏好得分的同时,不至于失去原本的语言流畅性、常识性和可读性。没有它,训练常见风险就是 reward 变高了,但文本质量、人类观感甚至安全性反而变差。
所以 KL 不是一个无关紧要的小正则,而是 RLHF 稳定性的核心护栏之一。
#168. GAE(Generalized Advantage Estimation)在 PPO 中为什么常被提到?
#知识点
- advantage 估计方法
- bias-variance trade-off
- 平滑多步回报
- 常与 PPO 配套
#详细解答
GAE 是一种 advantage 估计方法,它的核心价值在于:不要只看一步 TD 误差,也不要直接用特别噪的完整 Monte Carlo return,而是在两者之间做平衡。这样就能在 bias 和 variance 之间找到更适合训练的折中点。
为什么它在 PPO 里老被一起提到?因为 PPO 需要 advantage 作为更新信号,而 advantage 估得好不好,直接决定训练抖不抖。GAE 往往能让这个信号更平滑、更稳定,因此在很多 actor-critic 系统里成了标配。
如果面试官追问,你不一定要推公式,但最好能说清一句话:GAE 解决的是 advantage 太噪的问题,本质是在估计稳定性上做折中。
#169. PPO 的常见失败模式有哪些?你会先看什么指标?
#知识点
- reward 上升但人工质量下降
- KL 爆炸或过小
- response length 漂移
- value loss 异常
- entropy 过低
#详细解答
PPO 的常见失败模式包括:reward 看起来在涨,但人工看回答反而更差;KL 突然暴涨,说明策略偏移过猛;KL 太小又说明几乎没学到东西;response length 明显变长或变短,说明模型可能学到了投机模式;value loss 剧烈波动,说明 critic 不稳;entropy 迅速掉光,则可能在过早坍缩。
所以排查时我通常不会只盯单一 reward,而是一起看:reward、KL、response length、value loss、entropy、人工抽样质量。这些指标组合起来,才能判断模型到底是在“真学会了”,还是“学会了钻指标空子”。
高频面试点就在这:你能不能体现出 RL 训练不是只看一条曲线,而是要看多指标联动。