我不会把这三种方法统一说成从人类偏好学习,因为PPO和GRPO也可以用环境奖励、规则奖励或可验证结果。更清晰的比较轴是:训练时是否在线采样、奖励从哪里来、需不需要critic、是否依赖参考策略,以及输入数据是轨迹还是离线偏好对。
PPO通常让当前或旧策略在线生成轨迹,再根据标量奖励和价值函数估计优势。更新时用概率比和裁剪目标限制单次变化,大模型对齐里常再对参考策略加KL控制。奖励可以来自奖励模型,也可以来自环境或程序验证,所以独立奖励模型不是PPO算法定义。策略、参考、奖励和价值是逻辑角色,实现时可能共享骨干或缓存,不能背成固定四个模型。
DPO使用同一提示下的chosen和rejected。它从带KL正则的奖励最大化目标与Bradley-Terry式偏好模型出发,把隐式奖励写成策略相对参考策略的对数概率比,最后得到分类形式的损失。因此它不需要单独训练奖励模型,也不做在线rollout,工程链路更接近SFT。但仍要维护参考模型或预计算参考对数概率。
DPO也不是没有超参和稳定性问题。beta控制相对参考策略的偏离强度;偏好标注噪声、chosen和rejected长度差、参考模型选择、覆盖范围不足都会影响结果。它优化神经网络参数仍是非凸问题。离线偏好对没覆盖到的区域,也不会因为损失形式简单就自动学好。
GRPO和PPO一样通常需要在线生成。它对同一个问题采样一组回答,取得每个回答的奖励,再用组内相对值做优势估计,从而省去独立critic。这里的“无价值网络”不能误说成“无奖励”:数学或代码任务可以用答案、测试用例等规则奖励,也可以使用奖励模型。组大小、奖励方差和一组样本都相同分时的处理都会影响训练信号。
选型上,如果已经有高质量、覆盖目标分布的离线偏好对,又不需要在线探索,我优先DPO。如果有可信标量奖励并需要当前策略持续产生新轨迹,就考虑PPO或GRPO;是否用GRPO取决于组采样是否自然、critic成本和奖励可比较性,而不是看到推理任务就机械选择。
评测也要对应风险。PPO和GRPO同时看reward、KL、回复长度、熵、规则通过率和人工盲评,防止reward hacking;DPO按长度、任务类型和难度分桶看偏好胜率,并保留独立偏好集。最终结论是按反馈闭环选算法,而不是按“二模型、三模型、四模型”选算法。