PPO算法在LLM中的应用


一句话总结

PPO通过裁剪的策略梯度目标和多步更新,稳定地优化语言模型以最大化奖励模型分数,是RLHF中最成熟的RL算法。

核心概念

PPO(Proximal Policy Optimization)在LLM场景中的工作流程:(1)策略模型(当前LLM)对一批prompt生成回复;(2)奖励模型对回复打分;(3)计算优势函数(advantage)衡量每个token的好坏;(4)用裁剪的目标函数更新策略。裁剪机制限制新旧策略的比率在(1-epsilon, 1+epsilon)范围内(epsilon通常0.2),防止单步更新过大。同时添加KL散度惩罚:reward_total = r_RM - beta * KL(pi   pi_ref),其中pi_ref是SFT模型,防止模型偏离太远导致语言能力退化。

为什么重要

PPO是InstructGPT和ChatGPT使用的核心RL算法。相比简单的REINFORCE,PPO更稳定高效:裁剪机制保证单步更新幅度可控,多步更新提高数据利用率。PPO的稳定性对大规模LLM训练至关重要。

实践要点

PPO训练涉及4个模型:策略模型(训练中)、参考模型(冻结的SFT)、奖励模型(冻结)、价值模型(Critic,训练中)。这使得显存需求约为SFT的4倍。建议使用DeepSpeed或FSDP进行分布式训练。超参数敏感:学习率建议1e-6到5e-6,KL系数beta从0.01到0.1之间调整。可用RLHF框架如TRL、OpenRLHF简化实现。

常见误区

误区一:直接套用游戏RL的PPO超参数到LLM场景。LLM的动作空间(词表)远大于游戏,需要不同的配置。误区二:忽视value model的重要性,Critic模型的准确性直接影响优势函数估计质量。误区三:训练时间过长导致reward hacking,建议设定early stopping当RM分数增长放缓时停止。