SFT、RLHF、DPO 分别在做什么?用一条主线把后训练串起来

Q4-01后训练主线高频SFTRLHFDPO后训练对齐监督信号

谁在问:一二面通用;有算法背景的面试官会当作追问起点,工程向面试官当作概念热身

口语化问法

  • 你了解后训练吗?SFT、RLHF、DPO 这几个分别是干什么的?
  • 预训练完了之后到能对话,中间还要做哪些事情?按顺序讲一下。
  • 有人说 DPO 已经把 RLHF 替代了,你怎么看这条线的演进?

考察意图

这道题表面是概念题,实际在筛三件事:

  1. 是背缩写还是有主线。绝大多数候选人能把三个名词解释一遍,但说不出它们为什么会依次出现、后一个在补前一个的什么缺口。有主线的人,回答会自带判断力。
  2. 知不知道监督信号的形态决定方法。这是从"读过博客"跨到"做过选型"的分界。能说出"我手上只有 X 形态的数据,所以只能走 Y"的人,面试官会立刻往项目上追。
  3. 有没有踩过对齐的坑。RLHF 的 reward hacking、DPO 的数据偏置,这些只有真跑过才会主动提。

参考答案

图 2 · 60 分与 90 分差在哪:代价、演进、怎么验证

60

60 分答案(及格线)

后训练是预训练之后、把基座模型变得可用的一系列步骤。

  • SFT(Supervised Fine-Tuning,监督微调):用(指令,回答)对继续训练,让模型学会"被问就答"而不是"接着往下写"。本质还是下一个 token 预测,只是把 prompt 部分的 loss 掩掉。
  • RLHF(人类反馈强化学习):SFT 之后,人类对模型的多个回答做排序,用这些排序训一个奖励模型,再用 PPO 让策略去最大化奖励模型的打分,同时加 KL 惩罚防止跑偏。
  • DPO(直接偏好优化):跳过奖励模型,直接在偏好对上写一个损失函数来优化策略,工程上比 RLHF 简单很多,效果接近。

顺序是 预训练 → SFT → 偏好对齐(RLHF 或 DPO)。

这个答案信息没错,但它是三段并列,没有主线,也看不出候选人做过选型。到此为止是及格,追问会立刻见底。

90

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%——标注员在没有明确判准时系统性偏好短答案,模型学到的是"更短"不是"更好"。后来我们把"偏好数据长度体检"做成了上训练前的固定检查项。

追问链

图 1 · 五层追问树:面试官会往哪儿挖
这条线不按方法排,按「你能拿到什么形态的监督信号」排

  1. SFT 已经能让模型好好说话了,为什么还要偏好阶段?

    期望SFT 只有正例,表达不了「不要这样」;两个都合规的答案哪个更好写不出标准答案,只能靠比较;SFT 的天花板是标注答案的质量,而好答案的标注成本远高于比较
    信号只说「SFT 效果不够好所以要 RLHF」→ 背的;说出「只提供正例,压不住不想要的行为」→ 理解了机制
  2. RLHF 训练时显存里有几个模型?各自干什么?

    期望四个:策略 π_θ(在训的)、冻结参考 π_ref(算 KL)、奖励模型 RM(打分)、价值网络 critic(估基线降方差)—— critic 正是 GRPO 后来砍掉的那一个
    信号说不上 critic 干什么、或答「两个」→ 没跑过 RLHF;顺带说「GRPO 砍的就是 critic」→ 把两代方法连上了
  3. 偏好数据从哪来?怎么保证质量?

    期望来源:线上真实 query 多档位采样 + 人工标注 + 点赞点踩日志。质控:先定判准(否则标注员退化到长度、格式)、一致性抽检(Krippendorff's alpha 之类)、长度与格式的分布体检、剔除无实质差异的样本对
    信号只答「找人标」→ 没做过;主动提「要查 chosen/rejected 的长度分布」→ 踩过坑
  4. 后训练能提升模型的能力吗,还是只能改风格?

    期望偏好对齐基本只在已有分布里重新分配概率质量,不长新能力;SFT 能教形式与领域表达,但灌不进新知识(知识走 RAG);真正的能力增量靠 RLVR —— 前提是任务能写出自动判分器
    信号答「能,微调完就更聪明了」→ 本章最典型的错误答案;能切开「风格/形式 vs 能力」并给出「能不能写判分器」这条线 → 生产判断力到位
  5. 两张 A100、三个人、三周要「更专业更少废话」,你怎么排优先级?没达预期怎么归因?

    期望先反问「什么叫更专业、可判定吗」——没有评测集这三周必然白干。排序:50–100 条评测集 + few-shot 基线 → prompt 与 effort 档位 → LoRA SFT(7B 约 19G)→ 偏好对齐排最后。归因:基线已达标就不必微调;不如基线先查 target_modules 与学习率;手挑 20 条最好的样本重训来区分数据问题与方法问题
    信号上来就说「那就上 DPO」→ 没有成本意识;先要评测集再排期 → 做过真实的后训练项目
这一题的隐藏考点是顺序:第 1、2 层考机制,第 3 层考数据工程,第 4 层考「后训练到底能买到什么」,第 5 层考在资源约束下的排期能力。能把「监督信号形态」这条主线贯穿五层的,属于少数。

评分要点

  1. 能给出一条主线,而不是三段并列的定义
  2. 说出 SFT 只有正例这一根本局限
  3. 知道 RLHF 是"奖励模型 + PPO"两段,且能说出四个模型
  4. 知道 DPO 的价值在于消掉奖励模型、工程大幅简化
  5. 能说出 DPO 的代价(离线 / 分布偏移 / 对数据偏置敏感)至少一条
  6. 知道偏好对齐不长能力,能力增量要靠可验证奖励
  7. (加分)能把 RLVR/GRPO 接到这条线的第三档上
  8. (加分)能给出"我手上是什么信号,所以我走哪档"的自我定位
  9. (加分)有踩坑经历,尤其是标注偏置类

常见错误

"SFT 是监督学习,RLHF 是强化学习,DPO 是直接优化偏好"纯字面拆解缩写,等于没答。含糊回答的典型形态:把方法名翻译一遍当作解释。
"DPO 是 RLHF 的简化版,效果差不多"只说了简化,说不出简化掉的是什么、赔上了什么。追问 β 或"离线的问题"会立刻卡住。
"微调之后模型会变聪明 / 能力更强"把风格改变误当能力提升。这是本章的头号错误答案。
"我们做了 SFT,效果提升很明显"没有基线、没有指标。追问"和 few-shot 基线比过吗"通常无答案。
"RLHF 就是用人类反馈来训练模型"同义反复。追问"训练时显存里有几个模型"即可见底。
把顺序说反(先 RLHF 再 SFT)基础不牢,通常没实际接触过训练流程。
只讲学术,不讲成本全程不提显存、不提数据从哪来、不提要几个人几周。工程岗的减分项。

关联学习