在基于人类反馈的强化学习(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 的关键原理和数学表述:

  1. 策略梯度基础

    • 在强化学习中,策略 π θ ( a ∣ s ) \pi_\theta(a|s) πθ(as) 定义了在状态 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τπθ[tR(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πθ(atst)A(st,at)]
      其中 A ( s t , a t ) A(s_t, a_t) A(st,at) 是优势函数,衡量动作 a t a_t at 相对于平均表现的优劣。
  2. 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(atst)πθ(atst),表示新旧策略在动作 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 β 是动态调整的正则化系数。
  3. 优势估计

    • 优势函数 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) 是价值函数。
  4. 训练流程

    • 初始化:从监督微调模型 π 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γktrk 是实际回报。
    • 重复以上步骤,直到策略收敛。

四、PPO 在 RLHF 中的应用

在 RLHF 中,PPO 用于优化语言模型,使其生成更符合人类偏好的响应。以下是其具体应用流程:

  1. 监督微调(SFT)

    • 使用高质量数据集(如人类编写的响应)对预训练语言模型进行微调,得到初始策略 π S F T \pi^{SFT} πSFT
  2. 奖励模型训练

    • 收集人类偏好数据:对于输入 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 是非优选响应。
  3. 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,生成更符合人类偏好的响应。
  4. 实际应用

    • PPO 在 RLHF 中被用于优化模型如 InstructGPT 和 ChatGPT,在任务如对话生成、文本摘要和指令跟随中表现出色。
    • 例如,在 Anthropic 的 Helpful and Harmless 数据集上,PPO 优化的模型显著提升了响应的有益性和安全性。

五、PPO 的优势

  1. 稳定性

    • 通过裁剪概率比或 KL 正则化,限制策略更新幅度,避免性能崩塌。
    • 相比传统策略梯度方法(如 TRPO),PPO 更易于实现且计算效率更高。
  2. 简单性

    • PPO 使用一阶优化(如 Adam),无需复杂的二阶优化或信任区域计算。
    • 超参数(如 ϵ = 0.2 \epsilon = 0.2 ϵ=0.2)相对鲁棒,减少调优负担。
  3. 高效性

    • 在语言模型优化中,PPO 能有效利用奖励模型的信号,快速提升响应质量。
    • 实验表明,PPO 在 RLHF 中优于监督微调基线(如 InstructGPT 的 73% 胜率 vs. SFT)。
  4. 通用性

    • PPO 适用于多种 RL 任务,包括连续和离散动作空间,在 RLHF 中尤其适合序列生成任务。

六、PPO 的局限性

  1. 超参数敏感性

    • 尽管比 TRPO 简单,PPO 仍需调优 ϵ \epsilon ϵ β \beta β、学习率等参数,错误配置可能导致次优性能。
    • KL 散度系数 β \beta β 的动态调整(如自适应惩罚)增加了实现复杂度。
  2. 计算资源需求

    • PPO 需要同时维护策略模型、价值模型、奖励模型和参考模型(SFT),内存和计算开销大。
    • 在 RLHF 中,动态采样轨迹和计算优势估计增加了训练时间(如需数小时到数天,视模型规模而定)。
  3. 奖励黑客(Reward Hacking)

    • PPO 可能过度优化奖励模型,导致生成高奖励但低质量的响应(如冗长但无意义的文本)。
    • KL 散度惩罚可缓解但不能完全消除此问题。
  4. 采样效率低

    • PPO 依赖在线采样(on-policy),每次更新需要重新生成轨迹,数据利用率低于离线方法(如 DPO)。

七、PPO 与其他方法的对比

  1. 与 REINFORCE 的对比

    • REINFORCE 直接使用策略梯度,更新无约束,方差高,易导致不稳定。
    • PPO 通过裁剪目标和优势估计降低方差,提高稳定性,性能更优(如在 RLHF 中胜率更高)。
  2. 与 TRPO 的对比

    • TRPO(Trust Region Policy Optimization)通过严格的信任区域约束(如 KL 散度)确保更新安全,但计算复杂(需二阶优化)。
    • PPO 使用简单的裁剪机制,计算效率更高,易于实现,且性能接近 TRPO。
  3. 与 DPO 的对比

    • DPO(Direct Preference Optimization)直接基于偏好数据优化策略,无需奖励模型或强化学习,简化流程。
    • PPO 需要奖励模型和在线采样,计算成本更高,但能处理复杂奖励函数,在某些任务(如对话生成)上更灵活。
  4. 与 RRHF 的对比

    • RRHF(Rank Responses to Align Language Models with Human Feedback)使用排名损失简化 RLHF,仅需 1-2 个模型,超参数少。
    • PPO 更复杂,需要 4 个模型(策略、价值、奖励、参考),但在动态采样和奖励建模上更强大。
  5. 与 RLAIF 的对比

    • RLAIF 使用 AI 生成的偏好标签,而 PPO 通常与人类偏好(RLHF)结合,但也可用于 RLAIF。
    • PPO 在 RLAIF 中表现稳定(如胜率与 RLHF 相当),但计算成本高于 d-RLAIF(直接使用 LLM 评分)。

八、实验结果(基于 RLHF 和 RLAIF 文献)

  1. RLHF 中的 PPO

    • 在 Stiennon 等人(2020)的摘要任务中,PPO 优化的模型胜率达 73%(vs. SFT),优于人类参考摘要(80%)。
    • 在 Ouyang 等人(2022)的 InstructGPT 中,PPO 显著提升了指令跟随能力,人类评估偏好度高于 GPT-3。
  2. RLAIF 中的 PPO

    • 在 Lee 等人(2025)的 RLAIF 实验中,PPO 用于优化 RLAIF 策略,摘要任务胜率 71%,有益对话胜率 63%,与 RLHF(73%、64%)相当。
    • 在无害对话任务中,PPO 优化后的 RLAIF 策略无害率达 88%,优于 RLHF 的 76%。
  3. PPO vs. REINFORCE

    • Lee 等人(2025)在 RLAIF 中使用 REINFORCE 替代 PPO,性能略逊(因方差高),但实现更简单。

九、总结

近端策略优化(PPO) 是 RLHF 中用于优化语言模型以对齐人类偏好的核心强化学习算法。它通过裁剪目标函数或 KL 正则化限制策略更新幅度,确保训练稳定性。PPO 在 RLHF 和 RLAIF 中表现出色,广泛应用于对话生成、文本摘要等任务,显著提升模型性能(如胜率 70%+)。尽管需要多个模型和在线采样,PPO 的简单性和鲁棒性使其成为行业标准。然而,其计算成本和超参数调优空间,促使研究者探索更高效的替代方法(如 DPO、RRHF、d-RLAIF)。在未来,PPO 与其他技术的结合可能进一步提升 RLHF 的效率和可扩展性。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐