【RLHF】近端策略优化(Proximal Policy Optimization, PPO):优化语言模型以对齐人类偏好的核心强化学习算法
近端策略优化(PPO) 是 RLHF 中用于优化语言模型以对齐人类偏好的核心强化学习算法。它通过裁剪目标函数或 KL 正则化限制策略更新幅度,确保训练稳定性。PPO 在 RLHF 和 RLAIF 中表现出色,广泛应用于对话生成、文本摘要等任务,显著提升模型性能(如胜率 70%+)。尽管需要多个模型和在线采样,PPO 的简单性和鲁棒性使其成为行业标准。然而,其计算成本和超参数调优空间,促使研究者探索
在基于人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)方法中,近端策略优化(Proximal Policy Optimization, PPO) 是一种广泛使用的强化学习算法,用于优化语言模型以对齐人类偏好。PPO 是一种基于策略梯度(policy gradient)的算法,旨在通过限制策略更新的幅度来提高训练的稳定性和效率。以下是对 PPO 的详细介绍,涵盖其定义、原理、流程、在 RLHF 中的应用以及优缺点。
一、PPO 的定义
PPO 是一种强化学习算法,由 Schulman 等人于 2017 年提出(见论文 Proximal Policy Optimization Algorithms, arXiv:1707.06347)。它通过在策略更新时引入一个“近端”约束,平衡探索与利用,防止策略发生过大变化,从而提高训练的稳定性。PPO 在 RLHF 中用于优化语言模型的策略,使其生成的响应更符合人类偏好(如更有用、更安全)。
- 核心思想:在优化策略时,通过限制新策略与旧策略的偏差(如通过 KL 散度或裁剪概率比),确保更新步骤不过于激进,从而避免性能崩塌。
- 目标:最大化期望奖励(如由奖励模型提供的偏好评分),同时保持策略的稳定性。
二、PPO 的背景与动机
在 RLHF 中,语言模型需要通过强化学习优化复杂的序列级目标(如生成符合人类偏好的文本),而这些目标通常不可微分,难以通过传统的监督微调(SFT)实现。传统的策略梯度方法(如 REINFORCE)存在以下问题:
- 高方差:策略梯度估计的方差较大,导致训练不稳定。
- 过大更新:策略可能在单次更新中变化过大,偏离有效区域,造成性能下降。
- 超参数敏感:需要仔细调优学习率、KL 正则化系数等。
PPO 通过引入裁剪目标函数(clipped objective)或 KL 正则化,限制策略更新的幅度,解决了这些问题,使其成为 RLHF 的标准算法(如在 InstructGPT 和 ChatGPT 中使用)。
三、PPO 的工作原理
PPO 的核心是优化一个受限的策略目标函数,确保新策略 π θ \pi_\theta πθ 不偏离旧策略 π θ old \pi_{\theta_{\text{old}}} πθold 过远。以下是 PPO 的关键原理和数学表述:
-
策略梯度基础:
- 在强化学习中,策略 π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s) 定义了在状态 s s s 下选择动作 a a a 的概率。目标是最大化期望累计奖励:
J ( θ ) = E τ ∼ π θ [ ∑ t R ( s t , a t ) ] J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_t R(s_t, a_t) \right] J(θ)=Eτ∼πθ[t∑R(st,at)]
其中 τ = ( s 0 , a 0 , s 1 , a 1 , … ) \tau = (s_0, a_0, s_1, a_1, \dots) τ=(s0,a0,s1,a1,…) 是轨迹, R ( s t , a t ) R(s_t, a_t) R(st,at) 是奖励。 - 策略梯度方法通过梯度上升更新参数 θ \theta θ:
∇ θ J ( θ ) = E τ ∼ π θ [ ∑ t ∇ θ log π θ ( a t ∣ s t ) A ( s t , a t ) ] \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_t \nabla_\theta \log \pi_\theta(a_t|s_t) A(s_t, a_t) \right] ∇θJ(θ)=Eτ∼πθ[t∑∇θlogπθ(at∣st)A(st,at)]
其中 A ( s t , a t ) A(s_t, a_t) A(st,at) 是优势函数,衡量动作 a t a_t at 相对于平均表现的优劣。
- 在强化学习中,策略 π θ ( a ∣ s ) \pi_\theta(a|s) πθ(a∣s) 定义了在状态 s s s 下选择动作 a a a 的概率。目标是最大化期望累计奖励:
-
PPO 的目标函数:
- PPO 引入概率比 r t ( θ ) = π θ ( a t ∣ s t ) π θ old ( a t ∣ s t ) r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)} rt(θ)=πθold(at∣st)πθ(at∣st),表示新旧策略在动作 a t a_t at 上的概率变化。
- PPO 的裁剪目标函数(clipped surrogate objective)为:
L CLIP ( θ ) = E t [ min ( r t ( θ ) A t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A t ) ] L^{\text{CLIP}}(\theta) = \mathbb{E}_t \left[ \min \left( r_t(\theta) A_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t \right) \right] LCLIP(θ)=Et[min(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)]- clip ( x , a , b ) \text{clip}(x, a, b) clip(x,a,b) 将 x x x 限制在 [ a , b ] [a, b] [a,b] 范围内。
- ϵ \epsilon ϵ 是超参数(如 0.2),控制裁剪范围,限制概率比变化过大。
- 该函数确保策略更新不会因概率比过大或过小导致不稳定。
- 另一种变体(PPO-KL)使用 KL 散度正则化:
L KL ( θ ) = E t [ r t ( θ ) A t − β D KL ( π θ old ∣ ∣ π θ ) ] L^{\text{KL}}(\theta) = \mathbb{E}_t \left[ r_t(\theta) A_t - \beta D_{\text{KL}}(\pi_{\theta_{\text{old}}} || \pi_\theta) \right] LKL(θ)=Et[rt(θ)At−βDKL(πθold∣∣πθ)]
其中 β \beta β 是动态调整的正则化系数。
-
优势估计:
- 优势函数 A t = Q ( s t , a t ) − V ( s t ) A_t = Q(s_t, a_t) - V(s_t) At=Q(st,at)−V(st) 通常通过广义优势估计(Generalized Advantage Estimation, GAE)计算:
A t = ∑ k = 0 ∞ ( γ λ ) k δ t + k , δ t = r t + γ V ( s t + 1 ) − V ( s t ) A_t = \sum_{k=0}^\infty (\gamma \lambda)^k \delta_{t+k}, \quad \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) At=k=0∑∞(γλ)kδt+k,δt=rt+γV(st+1)−V(st)
其中 γ \gamma γ 是折扣因子, λ \lambda λ 控制偏差与方差的权衡, V ( s ) V(s) V(s) 是价值函数。
- 优势函数 A t = Q ( s t , a t ) − V ( s t ) A_t = Q(s_t, a_t) - V(s_t) At=Q(st,at)−V(st) 通常通过广义优势估计(Generalized Advantage Estimation, GAE)计算:
-
训练流程:
- 初始化:从监督微调模型 π S F T \pi^{SFT} πSFT 初始化策略 π θ \pi_\theta πθ 和价值模型 V ψ V_\psi Vψ。
- 采样轨迹:使用当前策略 π θ \pi_\theta πθ 在环境中生成轨迹 τ \tau τ,收集状态、动作、奖励。
- 计算优势:使用奖励模型 r ϕ r_\phi rϕ 提供奖励,结合价值模型计算优势 A t A_t At。
- 优化策略:通过梯度上升优化裁剪目标函数 L CLIP L^{\text{CLIP}} LCLIP,更新 θ \theta θ。
- 优化价值函数:最小化价值预测误差:
L V ( ψ ) = E t [ ( V ψ ( s t ) − Z t ) 2 ] L_V(\psi) = \mathbb{E}_t \left[ (V_\psi(s_t) - Z_t)^2 \right] LV(ψ)=Et[(Vψ(st)−Zt)2]
其中 Z t = ∑ k = t T γ k − t r k Z_t = \sum_{k=t}^T \gamma^{k-t} r_k Zt=∑k=tTγk−trk 是实际回报。 - 重复以上步骤,直到策略收敛。
四、PPO 在 RLHF 中的应用
在 RLHF 中,PPO 用于优化语言模型,使其生成更符合人类偏好的响应。以下是其具体应用流程:
-
监督微调(SFT):
- 使用高质量数据集(如人类编写的响应)对预训练语言模型进行微调,得到初始策略 π S F T \pi^{SFT} πSFT。
-
奖励模型训练:
- 收集人类偏好数据:对于输入 x x x,生成一对响应 ( y 1 , y 2 ) (y_1, y_2) (y1,y2)(通常来自 π S F T \pi^{SFT} πSFT),由人类标注哪一个更优。
- 训练奖励模型 r ϕ r_\phi rϕ,使其预测响应对的优劣:
L r ( ϕ ) = − E ( x , y w , y l ) ∼ D [ log σ ( r ϕ ( x , y w ) − r ϕ ( x , y l ) ) ] \mathcal{L}_r(\phi) = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma \left( r_\phi(x, y_w) - r_\phi(x, y_l) \right) \right] Lr(ϕ)=−E(x,yw,yl)∼D[logσ(rϕ(x,yw)−rϕ(x,yl))]
其中 y w y_w yw 是优选响应, y l y_l yl 是非优选响应。
-
PPO 优化:
- 初始化策略 π θ R L = π S F T \pi_\theta^{RL} = \pi^{SFT} πθRL=πSFT,价值模型 V ψ V_\psi Vψ 也从 SFT 模型初始化。
- 在每个迭代中:
- 使用 π θ \pi_\theta πθ 生成响应 y ∼ π θ ( ⋅ ∣ x ) y \sim \pi_\theta(\cdot|x) y∼πθ(⋅∣x)。
- 奖励模型 r ϕ r_\phi rϕ 为响应评分,得到奖励 r = r ϕ ( x , y ) r = r_\phi(x, y) r=rϕ(x,y)。
- 计算优势 A t A_t At,并优化裁剪目标函数:
L CLIP ( θ ) = E t [ min ( r t ( θ ) A t , clip ( r t ( θ ) , 1 − ϵ , 1 + ϵ ) A t ) ] L^{\text{CLIP}}(\theta) = \mathbb{E}_t \left[ \min \left( r_t(\theta) A_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t \right) \right] LCLIP(θ)=Et[min(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)] - 添加 KL 散度惩罚,防止策略偏离 π S F T \pi^{SFT} πSFT:
J ( θ ) = L CLIP ( θ ) − β D KL ( π θ ∣ ∣ π S F T ) J(\theta) = L^{\text{CLIP}}(\theta) - \beta D_{\text{KL}}(\pi_\theta || \pi^{SFT}) J(θ)=LCLIP(θ)−βDKL(πθ∣∣πSFT) - 优化价值模型以预测累计奖励。
- 最终得到优化后的策略 π θ R L \pi_\theta^{RL} πθRL,生成更符合人类偏好的响应。
-
实际应用:
- PPO 在 RLHF 中被用于优化模型如 InstructGPT 和 ChatGPT,在任务如对话生成、文本摘要和指令跟随中表现出色。
- 例如,在 Anthropic 的 Helpful and Harmless 数据集上,PPO 优化的模型显著提升了响应的有益性和安全性。
五、PPO 的优势
-
稳定性:
- 通过裁剪概率比或 KL 正则化,限制策略更新幅度,避免性能崩塌。
- 相比传统策略梯度方法(如 TRPO),PPO 更易于实现且计算效率更高。
-
简单性:
- PPO 使用一阶优化(如 Adam),无需复杂的二阶优化或信任区域计算。
- 超参数(如 ϵ = 0.2 \epsilon = 0.2 ϵ=0.2)相对鲁棒,减少调优负担。
-
高效性:
- 在语言模型优化中,PPO 能有效利用奖励模型的信号,快速提升响应质量。
- 实验表明,PPO 在 RLHF 中优于监督微调基线(如 InstructGPT 的 73% 胜率 vs. SFT)。
-
通用性:
- PPO 适用于多种 RL 任务,包括连续和离散动作空间,在 RLHF 中尤其适合序列生成任务。
六、PPO 的局限性
-
超参数敏感性:
- 尽管比 TRPO 简单,PPO 仍需调优 ϵ \epsilon ϵ、 β \beta β、学习率等参数,错误配置可能导致次优性能。
- KL 散度系数 β \beta β 的动态调整(如自适应惩罚)增加了实现复杂度。
-
计算资源需求:
- PPO 需要同时维护策略模型、价值模型、奖励模型和参考模型(SFT),内存和计算开销大。
- 在 RLHF 中,动态采样轨迹和计算优势估计增加了训练时间(如需数小时到数天,视模型规模而定)。
-
奖励黑客(Reward Hacking):
- PPO 可能过度优化奖励模型,导致生成高奖励但低质量的响应(如冗长但无意义的文本)。
- KL 散度惩罚可缓解但不能完全消除此问题。
-
采样效率低:
- PPO 依赖在线采样(on-policy),每次更新需要重新生成轨迹,数据利用率低于离线方法(如 DPO)。
七、PPO 与其他方法的对比
-
与 REINFORCE 的对比:
- REINFORCE 直接使用策略梯度,更新无约束,方差高,易导致不稳定。
- PPO 通过裁剪目标和优势估计降低方差,提高稳定性,性能更优(如在 RLHF 中胜率更高)。
-
与 TRPO 的对比:
- TRPO(Trust Region Policy Optimization)通过严格的信任区域约束(如 KL 散度)确保更新安全,但计算复杂(需二阶优化)。
- PPO 使用简单的裁剪机制,计算效率更高,易于实现,且性能接近 TRPO。
-
与 DPO 的对比:
- DPO(Direct Preference Optimization)直接基于偏好数据优化策略,无需奖励模型或强化学习,简化流程。
- PPO 需要奖励模型和在线采样,计算成本更高,但能处理复杂奖励函数,在某些任务(如对话生成)上更灵活。
-
与 RRHF 的对比:
- RRHF(Rank Responses to Align Language Models with Human Feedback)使用排名损失简化 RLHF,仅需 1-2 个模型,超参数少。
- PPO 更复杂,需要 4 个模型(策略、价值、奖励、参考),但在动态采样和奖励建模上更强大。
-
与 RLAIF 的对比:
- RLAIF 使用 AI 生成的偏好标签,而 PPO 通常与人类偏好(RLHF)结合,但也可用于 RLAIF。
- PPO 在 RLAIF 中表现稳定(如胜率与 RLHF 相当),但计算成本高于 d-RLAIF(直接使用 LLM 评分)。
八、实验结果(基于 RLHF 和 RLAIF 文献)
-
RLHF 中的 PPO:
- 在 Stiennon 等人(2020)的摘要任务中,PPO 优化的模型胜率达 73%(vs. SFT),优于人类参考摘要(80%)。
- 在 Ouyang 等人(2022)的 InstructGPT 中,PPO 显著提升了指令跟随能力,人类评估偏好度高于 GPT-3。
-
RLAIF 中的 PPO:
- 在 Lee 等人(2025)的 RLAIF 实验中,PPO 用于优化 RLAIF 策略,摘要任务胜率 71%,有益对话胜率 63%,与 RLHF(73%、64%)相当。
- 在无害对话任务中,PPO 优化后的 RLAIF 策略无害率达 88%,优于 RLHF 的 76%。
-
PPO vs. REINFORCE:
- Lee 等人(2025)在 RLAIF 中使用 REINFORCE 替代 PPO,性能略逊(因方差高),但实现更简单。
九、总结
近端策略优化(PPO) 是 RLHF 中用于优化语言模型以对齐人类偏好的核心强化学习算法。它通过裁剪目标函数或 KL 正则化限制策略更新幅度,确保训练稳定性。PPO 在 RLHF 和 RLAIF 中表现出色,广泛应用于对话生成、文本摘要等任务,显著提升模型性能(如胜率 70%+)。尽管需要多个模型和在线采样,PPO 的简单性和鲁棒性使其成为行业标准。然而,其计算成本和超参数调优空间,促使研究者探索更高效的替代方法(如 DPO、RRHF、d-RLAIF)。在未来,PPO 与其他技术的结合可能进一步提升 RLHF 的效率和可扩展性。
更多推荐
所有评论(0)