Skip to the content.

🌍 强化学习与 RLHF 学习笔记:策略梯度算法 (Policy Gradient Algorithms)

结合原理、图解与核心数学逻辑的完整笔记,可直接用于学习与演示展示。

原著参考: RLHF Book - Policy Gradients (Implementation)


📌 一、前言:RLHF的运作机制与现实例子

如果把训练大语言模型 (Large Language Models, LLMs) 比作“在米其林餐厅培养一位顶级主厨”,那么在 RLHF(基于人类反馈的强化学习, Reinforcement Learning from Human Feedback)阶段,其实是一个包含“四重角色”的剧组在协同运作。这四个模型各司其职:

🥩 1. 策略模型 (Policy Model) —— 【新晋主厨】(主角)

🧐 2. 奖励模型 (Reward Model) —— 【米其林美食评论家】(裁判)

📘 3. 参考模型 (Reference Model) —— 【祖传菜谱/老主厨】(防偏栏 / 对照组)

🔮 4. 价值网络 (Value Model) —— 【经验丰富的副厨】(导师 / 预言家,如 PPO 专用)

RLHF 训练流程概览


📐 二、策略梯度 (Policy Gradients) 的核心直觉与公式

所有该类算法的本质都可以浓缩为以下核心逻辑: 我们要找到一个梯度方向 (Gradient Direction) 去更新模型的参数(θ):

Δθ  正比于  Ψ_t * ∇_θ log π_θ(a_t | s_t)

一句话总结:如果得分高 (Ψ_t > 0),就顺着梯度放大其出现概率;如果得分低 (Ψ_t < 0),就朝着反方向抑制它的概率。

🔍 补充:KL散度惩罚与神秘的 || 符号

在原版论文的公式中,你会经常看到在末尾挂着一个惩罚项,比如: -λ * D_KL( π_PPO(y|x) || π_base(y|x) ) 许多初学者会被里面的双竖线 || 迷惑,这不是逻辑或 (OR),也不是平行。它是KL散度 (Kullback-Leibler Divergence) 的专属分隔符


🎯 三、算法演进路径解析(为什么要这么迭代?)

算法的迭代并非是单纯地发明新公式,而是为了解决上一代算法在“方差过大 (High Variance)”或“显存吃紧 (High VRAM Usage)”等方面的具体痛点。具体演进逻辑如下:

1. 第一阶段:原始 REINFORCE

2. 第二阶段:引入 Baseline 与 RLOO (REINFORCE Leave-One-Out)

RLOO 架构图


3. 第三阶段:PPO (近端策略优化, Proximal Policy Optimization)

PPO 的更新截断机制 PPO 完整运作体系


4. 第四阶段:GRPO (组相对策略优化, Group Relative Policy Optimization)

GRPO 是 DeepSeek-V3, R1 等最新标杆模型的底层核心策略分支。本质是精简瘦身高度优化版的大语言模型 PPO。

GRPO 架构图


🛠️ 四、步入长文本时代:长上下文带来的挑战与模型变体

当我们指导模型写超长思维链(CoT,动辄几千至数万个 Token)时,原有的 PPO、GRPO 等基于词元级别 (Token-level) 评估的算法表现出了明显的水土不服。在极长序列下,连乘的“相对变化率”极容易因为前后累加导致数值崩溃或失真。

1. 序列级别的优化变体:GSPO 与 CISPO

2. 工程破局:异步训练与 TIS (截断重要性采样)

异步读写的分布式训练架构


结语:RLHF的进阶不在于堆砌新奇的公式,大浪淘沙留下的多是像 GRPO 这样结合长文本客观情景进行的“断舍离设计”。而制胜的王道更多隐藏诸如KL散度加设阈值的控制、奖励机制去方差技巧 (Variance Reduction Techniques) 以及超长样本的分布平衡当中。