先这样答
先说 PPO:它是经典强化学习算法,用在对话模型上,每一轮都要让模型对提示采样生成回答,奖励模型打分,再用分数更新模型;同时还需要一个价值网络估计期望回报来稳定训练。整套跑起来要同时养策略、奖励、价值几份大模型,外加在线采样的整条链路,工程复杂度很高。
再说 DPO:它从偏好数据直接推导出优化目标,训练时喂「更好的回答」和「更差的回答」组成的数据对,拉开两者在模型里的生成概率差距,朝人偏好的方向走。整个流程是有监督式的:固定数据集、算损失、更新参数,没有奖励模型,没有在线采样,也没有价值网络。
团队改用 DPO 的现实原因有三个:工程简单,普通训练循环就能跑;稳定,PPO 对超参和实现细节敏感,调不好训练就崩;成本低,少养几份模型。代价是 DPO 只能在已有偏好数据的分布里学,没有在线试错的空间,偏好数据的质量直接决定上限。
面试官会怎么追问
- 「DPO 效果一定比 PPO 差吗?」 不一定。偏好数据充足、任务明确的场景,DPO 常常够用甚至更稳;差距主要出现在需要在线探索、数据覆盖不足的场景。很多团队的选型依据是工程成本,不是理论上限。
- 「DPO 对数据有什么要求?」 偏好对要质量高、分布贴近真实使用:同一提示下的两个回答要确实只差在关键的点上,标注一致性才立得住。数据里噪声多,DPO 学到的偏好就不可靠,这一点上它比 PPO 更挑数据。
- 「DPO 之后还有什么类似方法?」 一批直接偏好优化的变体思路相通:都绕开奖励模型和强化学习循环,在偏好数据上直接构造损失,区别主要在损失函数怎么设计、对数据的要求有什么不同。
回答的坑
- 把 DPO 说成「PPO 的简化残次版」。两者优化的是同一个目标的不同写法,DPO 弱在线探索、强工程可用,选型看任务和数据条件,不是简单的能力高低排序。
- 说成「都一样,换个名字」。PPO 在线采样、边生成边学,DPO 离线拿固定数据训练,训练形态完全不同,混为一谈很容易被追问问穿。
同系列的题
—— 本题完 ——