真实面经题目 · 原创解析

SFT 之后做 DPO,DPO 和 RLHF/PPO 有什么区别?

SFT 之后做 DPO,是先让模型学会基本任务格式和能力,再用偏好对调整回答倾向。DPO 直接用偏好数据优化策略与参考模型的概率比,RLHF/PPO 通常先训练奖励模型,再通过强化学习在线优化奖励,工程复杂度和稳定性差异很大。

出现于:字节跳动 · 算法

60 秒回答模板

SFT 是监督微调,目标是让模型模仿高质量示范答案,建立基础能力、格式和领域知识。DPO 通常接在 SFT 后面,用同一 prompt 下 chosen 和 rejected 的偏好对继续训练,让模型提高被偏好的回答概率、降低不被偏好的回答概率,同时通过参考模型约束不要偏离太远。DPO 和 RLHF/PPO 的主要区别是:RLHF/PPO 一般先用偏好数据训练 reward model,再让策略模型通过 PPO 采样回答、获得奖励、加 KL 惩罚并迭代更新;DPO 不显式训练奖励模型,也不需要复杂的在线 rollout,而是把偏好优化转化为监督式的对比损失。DPO 更简单稳定、成本低、易复现,但表达能力受离线偏好数据限制;PPO 更灵活,可以优化复杂奖励,但训练不稳定、调参复杂,也更容易 reward hacking。

考点 顺序原因
难度 真实面经高频题
回答目标 讲清机制、边界和追问

深入解析

01

SFT 的作用

SFT 解决的是模型会不会按任务要求回答。它使用人工示范或高质量答案做监督学习,让模型熟悉领域知识、输出格式、拒答边界和基本交互风格。如果没有 SFT 作为起点,偏好训练可能要同时学习任务能力和偏好方向,数据效率低,也更容易出现输出格式崩坏或能力退化。

02

DPO 的训练目标

DPO 直接使用偏好对,鼓励模型在同一输入下相对更偏向 chosen 而不是 rejected。它通常保留一个参考模型,约束当前策略不要偏离 SFT 模型太多。直观理解是,DPO 把人类偏好转成一个可直接优化的分类式目标,省掉了单独训练奖励模型和使用强化学习采样更新的步骤。

03

RLHF/PPO 的流程

经典 RLHF/PPO 流程更长:先收集偏好数据训练 reward model,再让策略模型生成回答,由奖励模型打分,PPO 根据奖励和 KL 约束更新策略。它的好处是能把偏好模型作为奖励函数反复使用,也能结合更复杂的奖励;代价是训练链路长、显存和算力成本高、超参数敏感,奖励模型错误会被策略放大。

04

稳定性和工程成本

DPO 的优势是离线训练、实现简单、复现实验容易,训练形态更接近普通监督学习。PPO 需要处理 rollout、优势估计、KL 控制、奖励归一化和采样策略,任何一环不稳都可能造成模型过度优化奖励、回答变长或质量震荡。对于很多偏好对齐任务,DPO 是更轻量的首选基线。

05

适用边界

DPO 依赖偏好数据覆盖,如果偏好对没有覆盖某类行为,模型很难凭空学到;它也不直接探索新策略。PPO 更适合需要复杂交互奖励、工具调用或多轮环境反馈的场景,但要投入更多评估和安全控制。实践中常见路线是 SFT 打底,DPO 做偏好对齐,必要时再考虑奖励模型或强化学习。

易错点

  • 把 DPO 说成 SFT 的同义词,忽略它使用偏好对而不是单条示范答案。
  • 认为 DPO 和 RLHF/PPO 都必须训练 reward model。
  • 只比较效果,不提 PPO 的 rollout、KL、奖励模型和调参成本。
  • 忽略 SFT 作为参考模型和能力底座的作用,直接用偏好数据训练。

面试官追问

DPO 是否完全不需要奖励模型?

标准 DPO 不需要显式训练奖励模型,它从偏好对中直接推导优化目标。但这不代表没有偏好假设,偏好信息仍然来自 chosen 和 rejected 的相对关系。

为什么 DPO 还需要参考模型?

参考模型通常是 SFT 后的模型,用来约束当前模型不要为了偏好对过度漂移。没有这种约束,模型可能牺牲通用能力、变得模式化或放大数据偏差。

PPO 的 reward hacking 是什么?

策略模型可能学会利用奖励模型漏洞,例如用冗长、套话或特定格式拿高分,但真实用户体验并没有提升。奖励模型不完美时,反复优化会放大这种偏差。

DPO 一定比 PPO 效果好吗?

不一定。DPO 通常更稳定和便宜,适合作为偏好对齐基线;PPO 在复杂奖励、交互式任务或需要探索的场景可能更有上限。最终要看任务、数据和评估结果。