SFT、RLHF、DPO 分别在做什么?用一条主线把后训练串起来
谁在问:一二面通用;有算法背景的面试官会当作追问起点,工程向面试官当作概念热身
口语化问法
- 你了解后训练吗?SFT、RLHF、DPO 这几个分别是干什么的?
- 预训练完了之后到能对话,中间还要做哪些事情?按顺序讲一下。
- 有人说 DPO 已经把 RLHF 替代了,你怎么看这条线的演进?
考察意图
这道题表面是概念题,实际在筛三件事:
- 是背缩写还是有主线。绝大多数候选人能把三个名词解释一遍,但说不出它们为什么会依次出现、后一个在补前一个的什么缺口。有主线的人,回答会自带判断力。
- 知不知道监督信号的形态决定方法。这是从"读过博客"跨到"做过选型"的分界。能说出"我手上只有 X 形态的数据,所以只能走 Y"的人,面试官会立刻往项目上追。
- 有没有踩过对齐的坑。RLHF 的 reward hacking、DPO 的数据偏置,这些只有真跑过才会主动提。
参考答案
60 分答案(及格线)
后训练是预训练之后、把基座模型变得可用的一系列步骤。
- SFT(Supervised Fine-Tuning,监督微调):用(指令,回答)对继续训练,让模型学会"被问就答"而不是"接着往下写"。本质还是下一个 token 预测,只是把 prompt 部分的 loss 掩掉。
- RLHF(人类反馈强化学习):SFT 之后,人类对模型的多个回答做排序,用这些排序训一个奖励模型,再用 PPO 让策略去最大化奖励模型的打分,同时加 KL 惩罚防止跑偏。
- DPO(直接偏好优化):跳过奖励模型,直接在偏好对上写一个损失函数来优化策略,工程上比 RLHF 简单很多,效果接近。
顺序是 预训练 → SFT → 偏好对齐(RLHF 或 DPO)。
这个答案信息没错,但它是三段并列,没有主线,也看不出候选人做过选型。到此为止是及格,追问会立刻见底。
90 分答案(有生产经验的回答)
我习惯不按方法排,按你能拿到什么形态的监督信号排——这条线其实是一个阶梯:
第一档,你给得出标准答案 → SFT,学的是形式。 数据形态是 (x, y*),掩掉 prompt 算交叉熵。它能把格式、语气、领域行话教得很好。但 SFT 有个根本局限:它只提供正例,每条样本都在说"这样答是对的",从来没有一条在说"那样答是错的"。所以你没法用加正例的方式压住一个不想要的行为——这就是需要下一档的原因。
第二档,你给不出标准答案但能两两比较 → 偏好对齐,学的是偏好。 数据形态是 (x, y_win, y_lose)。RLHF 和 DPO 是同一件事的两种工程实现:
- RLHF 先用 Bradley-Terry 损失训一个奖励模型,再用 PPO 优化策略,KL 拴住不许跑太远。它的代价是训练时显存里同时住着四个模型——策略、冻结参考、奖励模型、价值网络(critic),工程复杂度是全线最高的;而且奖励模型本身会被 reward hacking,模型学会疯狂加免责声明、疯狂列小标题来骗高分。
- DPO 靠一个闭式推导,把奖励函数用策略本身表达出来代进去消掉,于是变成一个普通损失函数,显存里只要策略和参考两个模型,训练形态和 SFT 几乎一样。截至 2026-08,它是离线偏好优化的默认基线。代价是离线(数据固定,训到后期有分布偏移)、对偏好数据的系统性偏置极度敏感。
第三档,对错能用程序判定 → RLVR,学的是能力。 数据形态是 (x, verify(y)→0/1)。主流算法是 GRPO 系:同一道题采 G 份答案,用这组的平均分当基线,谁高于平均加强谁——这样就不需要 critic 网络了。推理模型的训练现在基本都在这一档。
这条阶梯真正的用处是做判断:偏好对齐不长能力,它只是在模型已有的输出分布里重新分配概率质量。想真正提升能力,要么换基座,要么你的任务得能写出自动判分器走到第三档。我见过团队想"用 DPO 把模型的推理能力训上去",这个方向从一开始就是错的。
我们自己踩过的坑:做过一轮 DPO 想让回答简洁一些,上线后长度指标很好看,但复杂问题开始敷衍。复盘发现偏好数据里 chosen 比 rejected 平均短 40%——标注员在没有明确判准时系统性偏好短答案,模型学到的是"更短"不是"更好"。后来我们把"偏好数据长度体检"做成了上训练前的固定检查项。
追问链
SFT 已经能让模型好好说话了,为什么还要偏好阶段?
期望SFT 只有正例,表达不了「不要这样」;两个都合规的答案哪个更好写不出标准答案,只能靠比较;SFT 的天花板是标注答案的质量,而好答案的标注成本远高于比较信号只说「SFT 效果不够好所以要 RLHF」→ 背的;说出「只提供正例,压不住不想要的行为」→ 理解了机制RLHF 训练时显存里有几个模型?各自干什么?
期望四个:策略 π_θ(在训的)、冻结参考 π_ref(算 KL)、奖励模型 RM(打分)、价值网络 critic(估基线降方差)—— critic 正是 GRPO 后来砍掉的那一个信号说不上 critic 干什么、或答「两个」→ 没跑过 RLHF;顺带说「GRPO 砍的就是 critic」→ 把两代方法连上了偏好数据从哪来?怎么保证质量?
期望来源:线上真实 query 多档位采样 + 人工标注 + 点赞点踩日志。质控:先定判准(否则标注员退化到长度、格式)、一致性抽检(Krippendorff's alpha之类)、长度与格式的分布体检、剔除无实质差异的样本对信号只答「找人标」→ 没做过;主动提「要查 chosen/rejected 的长度分布」→ 踩过坑后训练能提升模型的能力吗,还是只能改风格?
期望偏好对齐基本只在已有分布里重新分配概率质量,不长新能力;SFT 能教形式与领域表达,但灌不进新知识(知识走 RAG);真正的能力增量靠 RLVR —— 前提是任务能写出自动判分器信号答「能,微调完就更聪明了」→ 本章最典型的错误答案;能切开「风格/形式 vs 能力」并给出「能不能写判分器」这条线 → 生产判断力到位两张 A100、三个人、三周要「更专业更少废话」,你怎么排优先级?没达预期怎么归因?
期望先反问「什么叫更专业、可判定吗」——没有评测集这三周必然白干。排序:50–100 条评测集 + few-shot 基线 → prompt 与 effort 档位 → LoRA SFT(7B 约 19G)→ 偏好对齐排最后。归因:基线已达标就不必微调;不如基线先查 target_modules 与学习率;手挑 20 条最好的样本重训来区分数据问题与方法问题信号上来就说「那就上 DPO」→ 没有成本意识;先要评测集再排期 → 做过真实的后训练项目
评分要点
- 能给出一条主线,而不是三段并列的定义
- 说出 SFT 只有正例这一根本局限
- 知道 RLHF 是"奖励模型 + PPO"两段,且能说出四个模型
- 知道 DPO 的价值在于消掉奖励模型、工程大幅简化
- 能说出 DPO 的代价(离线 / 分布偏移 / 对数据偏置敏感)至少一条
- 知道偏好对齐不长能力,能力增量要靠可验证奖励
- (加分)能把 RLVR/GRPO 接到这条线的第三档上
- (加分)能给出"我手上是什么信号,所以我走哪档"的自我定位
- (加分)有踩坑经历,尤其是标注偏置类