跳转到内容

输入关键词开始搜索

    PPO(近端策略优化)

    概念更新 2026-05-09置信度 high#概念#基础#长青#强化学习#对齐

    OpenAI 提出的强化学习算法,通过裁剪目标函数约束策略更新幅度,避免策略崩溃;是 RLHF 第三步(PPO 优化阶段)的核心算法。

    PPO 是一种策略梯度强化学习算法。其关键创新是裁剪替代目标函数(clipped surrogate objective):

    LCLIP(θ)=E^t[min(rt(θ)A^t, clip(rt(θ),1ϵ,1+ϵ)A^t)]\mathcal{L}^{\text{CLIP}}(\theta) = \hat{\mathbb{E}}_t \left[ \min\left( r_t(\theta) \hat{A}_t, \ \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) \hat{A}_t \right) \right]

    其中 rt(θ)r_t(\theta) 是新旧策略的概率比,A^t\hat{A}_t 是优势函数,ϵ\epsilon 是裁剪范围(通常 0.2)。

    直觉:当 rtr_t 偏离 1 太远时,裁剪阻止了过大的策略更新。

    PPO 是 RLHF 的训练引擎。在 RLHF 三步流程中:

    1. SFT → 教模型基础指令格式
    2. RM → 训练奖励模型模拟人类偏好
    3. PPO → 用 RM 的奖励信号优化语言模型

    PPO 解决了两个核心挑战:

    • 策略稳定性:裁剪机制防止单步策略更新过大导致语言能力崩溃
    • KL 约束:RLHF 中额外加入 KL 散度惩罚项,防止策略偏离 SFT 基线太远

    InstructGPT 使用了 PPO-ptx 变体,混合两个目标:

    L=LPPO+γLpretrain\mathcal{L} = \mathcal{L}_{\text{PPO}} + \gamma \cdot \mathcal{L}_{\text{pretrain}}

    • LPPO\mathcal{L}_{\text{PPO}}:标准 PPO 目标 + KL 惩罚项
    • Lpretrain\mathcal{L}_{\text{pretrain}}:预训练语言建模损失(混入以缓解对齐税)
    • γ\gamma:预训练数据混合系数,InstructGPT 使用 γ=27.8\gamma = 27.8
    概念 区别
    RLHF PPO 是 RLHF 使用的优化算法,RLHF 是完整的训练范式
    DPO DPO 绕过显式奖励模型和 PPO,直接用偏好数据训练;PPO 需要 RM 作为中间奖励函数
    TRPO PPO 的前身,使用 KL 约束而非裁剪,计算更复杂
    REINFORCE 最简单的策略梯度方法,没有 PPO 的裁剪稳定机制
    • ❌ PPO = RLHF → PPO 是通用 RL 算法,RLHF 是其在大模型对齐中的特定应用
    • ❌ PPO 不需要调参 → 裁剪范围 ϵ\epsilon、KL 系数 β\beta、预训练混合 γ\gamma 都需仔细调整