跳转至

十四:强化学习:传统 PPO、RLHF 定义与 NLP 场景强化学习自测题答案

来源:http://mp.weixin.qq.com/s?__biz=MzYyNTk3Njg1NA==&mid=2247484019&idx=1&sn=45bf75a447da81c0e78981587e040b2d&chksm=f01eb10ac769381cf72b1d1d2646f1189ac609dbc8fbcd62d4ec74417c1694aedecec787bf5e#rd

参考资料

  • Bilibili:动画讲解如何用 PPO 训练大模型:https://www.bilibili.com/video/BV1hqykY9E7E/

  • CSDN:PPO 详解,有代码逐行分析:https://blog.csdn.net/qq_51399582/article/details/144650295

  • PPO 原论文:https://arxiv.org/abs/1707.06347

  • Deep Reinforcement Learning from Human Preferences:https://arxiv.org/abs/1706.03741

  • Training language models to follow instructions with human feedback:https://arxiv.org/abs/2203.02155

  • OpenAI Spinning Up: PPO:https://spinningup.openai.com/en/latest/algorithms/ppo.html

  • Hugging Face TRL 文档:https://huggingface.co/docs/trl/

评分标准

  • 合格:能写出 PPO ratio、clip objective、actor-critic loss 和基本训练流程。

  • 良好:能解释 GAE、KL 监控、clip fraction、on-policy rollout、多 epoch 更新和超参数影响。

  • 优秀:能把传统 PPO 映射到 NLP/RLHF,指出 sequence reward、reference model、mask、reward hacking 等问题。

一、PPO 背景

1. PPO 的全称是什么?它解决什么问题?

PPO 是 Proximal Policy Optimization。它解决策略梯度更新过大导致策略崩坏的问题,在提升回报的同时限制新旧策略变化幅度。

2. 为什么普通策略梯度更新过大可能导致策略崩坏?

策略一旦变化过大,采样数据分布会剧烈变化,旧 advantage 估计不再可靠,模型可能把少数高回报样本过度放大,导致性能突然下降。

3. TRPO 的核心思想是什么?

TRPO 最大化 surrogate objective,同时约束新旧策略平均 KL 不超过阈值,使策略更新位于信赖域内。

4. PPO 相比 TRPO 的主要工程优势是什么?

PPO 使用 clipping 或 KL penalty,用一阶优化器即可训练,避免 TRPO 的二阶近似、共轭梯度和 line search,实现更简单。

5. PPO 中 Proximal 的含义是什么?

表示新策略更新应保持在旧策略附近,不要一步走太远。

6. PPO 为什么仍属于策略梯度方法?

PPO 仍然通过 log pi、probability ratio 和 advantage 优化策略概率,只是额外限制更新幅度。

7. PPO 为什么通常使用 Actor-Critic 结构?

Actor 负责输出策略,Critic 估计 value 作为 baseline 和 return target,降低策略梯度方差,提高训练稳定性。

8. PPO 是 on-policy 还是 off-policy?为什么?

通常是 on-policy 或近似 on-policy。数据由当前旧策略采样,经过有限次更新后丢弃,不能长期复用旧数据。

二、Ratio 与 PPO-Clip

9. PPO 中 probability ratio r_t(theta) 如何定义?

r_t(theta) = pi_theta(a_t|s_t) / pi_theta_old(a_t|s_t)

10. 为什么工程上常用 exp(logp_new - logp_old) 计算 ratio?

概率可能很小,直接相除数值不稳定。log probability 更稳定,相减再指数化得到 ratio。

11. r_t > 1 和 r_t < 1 分别表示什么?

r_t > 1 表示新策略更倾向采样动作;r_t < 1 表示新策略降低了该动作概率。

12. 未裁剪 surrogate objective 是什么?

L^{PG}(theta) = E[r_t(theta) A_t]
它是用 importance ratio 修正的策略梯度目标。

13. 请写出 PPO-Clip 的目标函数。

L^{CLIP}(theta)
= E[min(r_t A_t, clip(r_t,1-eps,1+eps) A_t)]

14. clip_epsilon 控制什么?

控制 ratio 允许偏离 1 的范围。范围是 [1-epsilon, 1+epsilon]

15. 当 A_t > 0 时,PPO clip 如何限制更新?

好动作应提高概率,但当 r_t > 1+epsilon 后,裁剪项不再增加,目标不继续奖励更大概率提升。

16. 当 A_t < 0 时,PPO clip 如何限制更新?

坏动作应降低概率,但当 r_t < 1-epsilon 后,裁剪项限制目标继续受益,防止概率降得过猛。

17. 为什么 PPO 的 clip 不是严格 KL 约束?

clip 只是裁剪目标函数收益,不直接约束新旧策略的整体 KL。策略仍可能在部分状态上变化较大,因此需要 KL 监控。

18. PPO-Clip 和 PPO-Penalty 有什么区别?

PPO-Clip 用 ratio 裁剪限制更新收益。PPO-Penalty 在目标中加入 KL 惩罚项。Clip 更常用,Penalty 更直接对应 KL 正则。

三、Actor-Critic、GAE 与 Loss

19. PPO 中 Actor 的输入输出是什么?

输入状态或观测,输出动作分布参数,例如离散动作 logits 或连续动作高斯参数。

20. PPO 中 Critic 的作用是什么?

Critic 估计 V(s),用于计算 advantage 和 return target,作为 baseline 降低策略梯度方差。

21. PPO 的总 loss 通常由哪几部分组成?

loss = policy_loss + value_coef * value_loss - entropy_coef * entropy

22. Policy loss 为什么通常写成 -L_clip?

PPO 目标是最大化 L_clip,而深度学习优化器通常最小化 loss,所以取负号。

23. Value loss 的 target 通常是什么?

通常是 rollout 中计算的 return:

return_t = advantage_t + value_old_t
或 MC/GAE 形式的回报估计。

24. Entropy bonus 的作用是什么?

鼓励策略保持随机性,防止过早收敛,促进探索。

25. 请写出 GAE 的 TD error。

delta_t = r_t + gamma V(s_{t+1}) - V(s_t)
终止时下一状态价值应置 0。

26. 请写出 GAE advantage 的递推或求和形式。

A_t = delta_t + gamma lambda A_{t+1}
或:

A_t = sum_l (gamma lambda)^l delta_{t+l}

27. GAE 中 gamma 和 lambda 分别控制什么?

gamma 控制未来奖励折扣,lambda 控制从一步 TD 到 Monte Carlo 之间的 bias-variance 权衡。

28. 为什么 PPO 中常做 advantage normalization?

归一化 advantage 可以稳定更新尺度,降低奖励尺度差异对策略更新的影响。

29. Value function clipping 是什么思路?

类似 policy clipping,限制新 value 相对旧 value 的变化,避免 critic 单次更新过大。

30. Critic 训练不好会如何影响 PPO?

advantage 估计会有偏或高方差,actor 更新方向错误,表现为策略学习慢、震荡或崩坏。

四、PPO 训练流程

31. 请描述 PPO-Clip 的完整训练流程。

用当前策略采集 rollout;保存状态、动作、奖励、done、旧 log prob 和 value;计算 GAE advantage 和 return;多 epoch 随机 minibatch 更新 actor/critic;监控 KL;更新后重新采样新 rollout。

32. Rollout 中需要保存哪些字段?

通常保存 state、action、reward、done、logp_old、value_old,有时还保存 entropy、mask、episode info。

33. 为什么需要保存 logp_old?

PPO ratio 需要旧策略下动作概率:

r = exp(logp_new - logp_old)
如果不保存,更新后无法恢复采样时策略概率。

34. PPO 为什么可以对同一批 rollout 做多个 epoch 更新?

clipping 限制新旧策略差异,使同一批 on-policy 数据在有限范围内可重复利用,提高样本效率。

35. 为什么 PPO 不能无限复用旧 rollout?

策略更新太多后,新策略与采样策略偏离过大,ratio 和 advantage 估计不可靠,on-policy 假设被破坏。

36. Minibatch update 对 PPO 有什么作用?

提高优化效率,降低内存压力,引入随机性,有助于泛化和稳定训练。

37. PPO 中 target KL 或 approx KL 用来做什么?

监控新旧策略距离。KL 过大说明更新过猛,可以 early stop、降低学习率或调整 clip range。

38. 什么是 clip fraction?

clip fraction 是样本中 ratio 被裁剪的比例。它反映有多少样本触发了 PPO 的限制机制。

39. Explained variance 在 PPO 中大致衡量什么?

衡量 critic 对 return 方差的解释程度。越接近 1,value 预测越好;接近或小于 0 表示 critic 很差。

40. PPO evaluation 时应该关注哪些指标?

关注平均回报、成功率、KL、entropy、clip fraction、value loss、policy loss、episode length、任务约束和安全指标。

五、超参数与排错

41. clip_epsilon 太大或太小分别会怎样?

太大限制弱,策略可能更新过猛。太小限制过强,学习缓慢。

42. 学习率过大在 PPO 中会表现为什么?

KL 快速增大、clip fraction 高、reward 震荡或崩坏、loss 不稳定、entropy 快速下降。

43. PPO 的 epoch 数过多可能造成什么问题?

对同一批 rollout 过拟合,新策略偏离采样策略过远,KL 和 clip fraction 增大。

44. Entropy 系数太大或太小分别会怎样?

太大策略过于随机,回报难以上升。太小探索不足,策略过早确定。

45. Value loss 系数不合适会有什么影响?

太大可能让 critic 主导共享网络更新,影响 actor。太小则 critic 学不好,advantage 噪声大。

46. Gradient clipping 在 PPO 中有什么作用?

限制梯度范数,防止异常 advantage 或 reward 导致更新过大。

47. 如果 approx KL 快速变大,应该怎么处理?

降低学习率、减小 clip range、减少 epoch、启用 KL early stop、检查 advantage scale 和 reward scale。

48. 如果 entropy 迅速下降,说明什么问题?

策略过早塌缩,探索不足。可提高 entropy coef、降低学习率或检查 reward 是否鼓励单一动作。

49. 如果 value loss 很低但 reward 不升,可能是什么原因?

critic 拟合了低质量数据,actor 没有有效改进;reward 设计有问题;探索不足;policy loss 被 clip 限制过强;评估方式不对。

50. 如果 clip fraction 长期很高,说明什么问题?

大量样本 ratio 超出裁剪范围,更新过猛或 epoch 太多。需要降低学习率、clip range 或优化轮数。

六、RLHF 定义

51. RLHF 的全称是什么?

Reinforcement Learning from Human Feedback,基于人类反馈的强化学习。

52. 大模型 RLHF 的典型三阶段流程是什么?

SFT 训练初始助手模型;用偏好比较数据训练 reward model;用 PPO 等 RL 算法优化模型,使奖励更高并限制偏离参考模型。

53. SFT 在 RLHF 中起什么作用?

提供可用初始策略,让模型具备基本指令遵循能力,降低 RL 搜索难度。

54. Reward model 在 RLHF 中起什么作用?

把人类偏好转成可优化的标量奖励,为 RL 阶段提供训练信号。

55. PPO 在 RLHF 中通常优化什么对象?

优化语言模型策略,使生成回复获得更高奖励,同时通过 KL 等约束限制偏离参考模型。

56. RLHF 和普通监督学习的核心区别是什么?

监督学习拟合标准答案。RLHF 优化偏好或奖励,反馈通常是整体回答质量,不是逐 token 标签。

57. 人类偏好数据通常是什么形式?

常见形式是同一 prompt 下多个回答的偏好比较,例如 chosen/rejected pair。

58. 为什么 RLHF 需要防止 reward hacking?

模型可能利用 reward model 漏洞获得高分,但输出并不真正有帮助、真实或安全。

七、NLP 场景下的强化学习

59. 如何把文本生成建模为 MDP?

state 是 prompt 加已生成 token,action 是下一个 token,transition 是追加 token,reward 是最终偏好、任务成功或规则评分。

60. NLP 场景中的 state、action、reward 分别可以是什么?

state 是上下文,action 是 token 或完整回复,reward 是 reward model 分数、人类评分、任务指标、安全分或成本惩罚。

61. 为什么 NLP 中 reward 往往是 sequence-level?

回答质量通常只能对完整序列判断,例如是否有帮助、是否真实、是否安全。单个 token 的好坏难以独立标注。

62. Token-level action 会带来什么训练困难?

episode 很长、动作空间巨大、奖励延迟严重、信用分配困难、计算 log prob 和 value 的成本高。

63. 为什么 NLP/RLHF 中常需要 reference model?

reference model 提供语言行为锚点,通过 KL 约束防止策略偏离 SFT 模型太远。

64. NLP PPO 中 attention mask 和 response mask 为什么重要?

attention mask 控制有效上下文,response mask 确保只在模型生成部分计算 RL loss,不把 prompt token 当作需要优化的动作。

65. 传统 PPO 迁移到 LLM 时,value head 的作用是什么?

value head 估计每个 token 位置或状态的价值,用于计算 advantage 和 critic loss。

66. 为什么 PPO 在 LLM 上计算成本高?

需要生成 rollout、计算新旧 log prob、reward model 打分、reference KL、value、多个 epoch 更新,模型大且序列长。

八、综合比较

67. PPO 与 REINFORCE 相比主要改进在哪里?

PPO 使用 actor-critic、advantage、GAE、ratio clipping 和多 epoch 更新,方差更低、稳定性和样本效率更好。

68. PPO 与 TRPO 相比主要差异是什么?

TRPO 用显式 KL 约束和二阶优化。PPO 用 clipping 或 KL penalty 近似限制更新,工程更简单。

69. PPO 与 DQN 的核心区别是什么?

PPO 是直接优化策略的 on-policy actor-critic 方法。DQN 是学习动作价值函数的 off-policy value-based 方法,主要用于离散动作。

70. 请完整说明传统 PPO 到 RLHF-PPO 需要额外引入哪些组件和约束。

需要语言模型 policy、reference model、reward model、token-level log prob、sequence-level reward、KL penalty、value head、response mask、padding mask、生成长度控制、安全约束和 reward hacking 监控。传统 PPO 的 ratio/advantage/clip 仍保留,但训练对象变成语言模型生成策略。

            预览时标签不可点




































<div class="