27届大模型面试准备(十六):后训练全攻略——SFT、RLHF、DPO、PPO 一次讲透

发布时间:2026/11/15 6:06:41

27届大模型面试准备(十六):后训练全攻略——SFT、RLHF、DPO、PPO 一次讲透 27届大模型面试准备十六后训练全攻略——SFT、RLHF、DPO、PPO 一次讲透上一篇《高效推理全攻略》讲的是怎么让模型推理又快又省属于部署侧。这一篇回到训练侧把预训练之后的所有事——也就是后训练Post-Training——一次性讲透。覆盖 SFT、Reward Model、RLHFPPO、DPO 四条主线外加一条工程副线数据配方、课程学习、拒绝采样。每节都给原理 → 数学/算法骨架 → 代码片段 → 面试速答 高频追问。配合《LoRA/PEFT》候选 A18一起看刚好串成对齐怎么做、怎么省显存做。一、先理清预训练和后训练的职责边界很多面试者把二者混为一谈第一句就露怯。一句话区分预训练Pre-training在海量无标注语料上做 next-token prediction给模型通识知识和语言流畅度。此时模型像一本读过的百科全书但不会按你的指令办事。后训练Post-training在预训练之后用指令 / 对话 / 偏好数据把模型对齐alignment到人类想要的回答方式。包括 SFT、RLHF、DPO、安全对齐等。预训练 后训练 ┌───────────────────────┐ ┌──────────────────────────────┐ │ 8B~万亿 token 语料 │ │ SFT(指令) → RM(偏好) │ │ next-token 预测 │──▶│ → RLHF(PPO) / DPO(直接偏好) │ │ 产出: 基座模型 base │ │ 产出: 对话模型 chat / instruct │ └───────────────────────┘ └──────────────────────────────┘ 通识 流畅 有用 无害 听指令面试常问为什么不直接用预训练模型上线 答案是base 模型只会续写不会对话——你给它请写一首诗它可能接着写请写一首诗的步骤如下。SFT 就是把续写者变成对话者。二、SFT后训练的第一块基石2.1 SFT 在做什么SFTSupervised Fine-Tuning监督微调用指令-回答配对数据继续做 next-token prediction但数据从网页语料换成高质量对话/任务样本。目标函数和预训练一致只是数据分布变了预训练损失: L_pt -Σ log P(x_t | x_t) # x 是网页文本 SFT 损失: L_sft -Σ log P(a_t | a_t, q) # q 是指令, a 是理想回答注意通常只在answer 部分算 lossinstruction/prompt 部分 mask 掉label 置 -100否则模型会学怎么复述问题而不是怎么回答。2.2 一个最小 SFT 数据样本{instruction:把下面这句话翻译成英文今天天气真好。,input:,output:The weather is really nice today.}多轮对话则组织成 messages 列表{messages:[{role:system,content:你是一个严谨的翻译助手。},{role:user,content:把今天天气真好翻译成英文。},{role:assistant,content:The weather is really nice today.}]}2.3 SFT 质量的三个关键点维度常见错误正确做法数据量认为越多越好堆几百万条噪声几万条高质量远胜几百万条低质质量 数量多样性单一任务全是翻译覆盖推理/创作/代码/安全拒答等多题型格式混入系统 prompt 噪声prompt 部分 mask 掉 loss只训回答用 HuggingFace TRL 跑 SFT 的最小骨架fromtrlimportSFTTrainer,SFTConfigfromdatasetsimportload_datasetdatasetload_dataset(json,data_filessft_data.jsonl)[train]trainerSFTTrainer(modelQwen/Qwen2.5-7B,argsSFTConfig(per_device_train_batch_size4,max_seq_length2048,num_train_epochs3,learning_rate2e-5,packingTrue,# 把短样本拼接到一条提升吞吐),train_datasetdataset,)trainer.train()面试速答SFT 为什么只用 answer 算 loss因为 instruction 是已知条件模型在推理时已经知道我们要优化的是给定问题后生成好回答的概率prompt 部分的预测不需要学。高频追问1. packing 和 padding 的区别packing 把多条样本拼接避免浪费padding 用 0 补齐到相同长度浪费算力。2. SFT 学习率一般比预训练大还是小更大如 1e-5~3e-5因为数据少、要快速适配指令分布。3. 全量 SFT 和 LoRA-SFT 怎么选数据少/防灾难性遗忘选 LoRA要深度改变行为选全量。三、Reward ModelRLHF 的裁判RLHF 需要一个人来打分这个人就是 Reward ModelRM。它把回答质量映射成一个标量分数。3.1 RM 的训练数据成对偏好RM 不用绝对分数而用成对比较数据人类标注回答 A 比回答 B 好{chosen:北京是中国的首都。,rejected:北京是美国的一个城市。}3.2 RM 的损失函数Bradley-Terry 模型把 RM 记作 r(x, y)希望 chosen 分数高于 rejectedL_RM -E[ log σ( r(x, y_chosen) - r(x, y_rejected) ) ]σ 是 sigmoid。直观差距越大、符号越对损失越小。RM 通常就是基座模型 一个回归头把 hidden 压成 1 维。# RM 头取最后一个 token 的 hidden 投射到标量classRewardModel(nn.Module):def__init__(self,base):self.basebaseself.value_headnn.Linear(base.config.hidden_size,1)defforward(self,input_ids,attention_mask):outself.base(input_ids,attention_mask).last_hidden_state# 取每个序列最后一个非 pad tokenscoresself.value_head(out[:,-1,:])returnscores.squeeze(-1)面试速答为什么用成对比较而不是绝对打分因为人类对绝对分数标定很不一致但对哪个更好的相对判断稳定得多标注成本低、信噪比高。高频追问1. RM 过优化reward hacking是什么模型找到骗 RM 拿高分的捷径比如啰嗦、拍马屁而非真正变好。2. 怎么缓解加 KL 惩罚、定期用新模型数据重训 RM、做 RM 集成。四、RLHF 的核心PPO 算法PPOProximal Policy Optimization是 RLHF 经典算法。把生成回答看成强化学习策略 π 是待训练的语言模型奖励来自 RM约束是不偏离原始 SFT 模型太远防崩。4.1 总目标L_PPO E[ r_t(θ) * A_t ] - β * KL( π_θ(y|x) || π_ref(y|x) ) 其中: r_t(θ) π_θ(y_t|y_t, x) / π_old(y_t|y_t, x) # 概率比 A_t 来自 GAE 的优势估计由 RM 打分驱动 KL 项 防止模型跑太偏β 是系数4.2 PPO 四件套┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ Actor (π) │ │ Critic (V) │ │ Reward(RM) │ │ Reference │ │ 待更新策略 │ │ 价值估计 │ │ 打分裁判 │ │ 初始锚点 │ └─────┬──────┘ └─────┬──────┘ └─────┬──────┘ └─────┬──────┘ │ 生成 y │ 估 V │ 打 r │ 算 KL 锚 └────────────────┴─────── 共同计算 PPO loss ────────┘4.3 TRL 跑 PPO 的最小骨架fromtrlimportPPOTrainer,PPOConfig,AutoModelForCausalLMWithValueHeadfromtransformersimportAutoTokenizermodelAutoModelForCausalLMWithValueHead.from_pretrained(sft-model)ref_modelAutoModelForCausalLMWithValueHead.from_pretrained(sft-model)tokenizerAutoTokenizer.from_pretrained(sft-model)configPPOConfig(batch_size16,learning_rate1e-6,kl_penaltykl,init_kl_coef0.02)ppoPPOTrainer(config,model,ref_model,tokenizer)forbatchindataloader:querytokenizer(batch[prompt],return_tensorspt)responsemodel.generate(**query,max_new_tokens128)rewardrm_score(query,response)# RM 打分statsppo.step(query[input_ids],response,reward)面试速答RLHF 里 KL 惩罚的作用防止策略为了骗 RM 而偏离 SFT 模型太远导致语言崩坏满嘴乱码。它是有用和不像人话之间的安全绳。高频追问1. Critic 和 RM 的区别RM 给整句打分外部裁判Critic 预估每步价值内部基线降低方差。2. 为什么 PPO 比普通 policy gradient 稳用了 clip 把概率比限制在一定范围避免一步更新过猛。五、DPO绕开 RM 和 PPO 的直接偏好优化PPO 又贵又脆要四个模型同时在线。2023 年提出的 DPODirect Preference Optimization证明在 KL 约束下最优策略和 RM 有闭式关系于是可以直接在偏好数据上用分类损失训不需要显式 RM、不需要 RL 循环。5.1 DPO 损失L_DPO -E[ log σ( β * ( log π_θ(y_w|x)/π_ref(y_w|x) - log π_θ(y_l|x)/π_ref(y_l|x) ) ) ] y_w chosen, y_l rejected关键点它把奖励差隐式编码进策略比里β 控制偏离 ref 的强度。5.2 DPO vs PPO 对比维度PPO/RLHFDPO需要 RM是单独训练否隐式在线采样需要rollout不需要离线显存/算力高4 模型低2 模型训练稳定性较脆超参敏感较稳动态探索强弱依赖静态数据5.3 TRL 跑 DPO 的最小骨架fromtrlimportDPOTrainer,DPOConfigdpoDPOTrainer(modelsft-model,ref_modelsft-model,# 固定参考argsDPOConfig(beta0.1,learning_rate5e-6,per_device_train_batch_size4),train_datasetpref_dataset,# 含 chosen / rejected 字段)dpo.train()面试速答DPO 为什么不需要 reward model因为 Bradley-Terry KL 约束下最优策略的奖励可以写成策略比 ref 的对数概率差这个量在训练时直接可算于是 RM 被消掉了。高频追问1. DPO 的弱点数据静态模型只能从已有 chosen/rejected 学缺乏 PPO 的在线探索容易被数据分布限制。2. β 太大或太小会怎样太大→几乎不更新贴近 ref太小→可能过拟合偏好、语言退化。3. 线上该选哪个资源紧/求稳选 DPO要最强效果且有 RL 工程能力选 PPO。六、工程副线数据配方与课程学习面试高阶题常考后训练怎么排兵布阵这里给一个可落地配方阶段1 SFT(通用指令) —— 让模型学会按指令办事 阶段2 SFT(领域/硬任务) —— 注入代码、数学、安全拒答等硬能力 阶段3 DPO / RLHF(偏好) —— 对齐风格、无害、有用 阶段4 安全对齐 红蓝对抗 —— 专门修越狱、补拒答课程学习curriculum先易后难、先广后专。常见坑灾难性遗忘后训练把预训练知识冲掉。缓解混入少量预训练续写数据replay、用 LoRA 而非全量。长度崩坏RL 阶段模型学会越长分越高。缓解RM 加长度惩罚、KL 约束。分布漂移偏好数据来自少数标注员模型被窄化。缓解多源标注、定期重采。面试速答为什么后训练要分阶段而不是一把梭不同阶段目标冲突通用性 vs 专业性 vs 偏好一把梭会让梯度互相打架分阶段能让每阶段专注一类能力且便于单独 debug。七、面试速答 高频追问清单汇总速答 TOP 81. 预训练给知识后训练给对齐指令遵循 偏好。2. SFT 只在 answer 算 lossprompt 部分 mask。3. RM 用成对比较训练输出标量奖励。4. PPO 四件套Actor / Critic / Reward / ReferenceKL 防崩。5. DPO 用偏好数据直接训隐式消去 RM。6. DPO 省算力但缺在线探索PPO 效果好但脆。7. β 控制偏离 ref 的强度。8. 后训练分阶段是为避免目标冲突与遗忘。追问清单- 为什么 RM 用 Bradley-Terry 而不是 MSE- reward hacking 有哪些典型表现怎么发现- 多轮对话的 RLHF 怎么处理- DPO 的隐式奖励公式推导一遍。- 全量微调 vs LoRA 在后训练各阶段怎么搭配八、下一篇预告后训练讲完对齐怎么做下一篇候选 A17可以深入分布式训练 DeepSpeed / FSDP / Megatron——把训练一个大模型的工程底座讲明白或者 A18 的LoRA/QLoRA/PEFT 省显存全家桶。如果你更想听推理侧A15 的高效推理已经就位。评论区告诉我你想先啃哪个。
延伸阅读

更多相关文章

2026/11/14 0:18:05

APK安装器:在Windows电脑上轻松安装安卓应用的终极指南

APK安装器:在Windows电脑上轻松安装安卓应用的终极指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上直接运行安卓应用&…

2026/11/14 13:49:54

终极窗口分辨率自定义工具:5分钟学会SRWE实时窗口编辑技巧

终极窗口分辨率自定义工具:5分钟学会SRWE实时窗口编辑技巧 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾为游戏分辨率限制而烦恼?是否需要在不同设备上测试显示效果却要反复重…

2026/11/15 15:19:39

graphql-cost-analysis配置详解:从入门到精通的参数设置指南

graphql-cost-analysis配置详解:从入门到精通的参数设置指南 【免费下载链接】graphql-cost-analysis A Graphql query cost analyzer. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-cost-analysis graphql-cost-analysis是一款强大的GraphQL查询成…

2026/11/16 3:15:57

2018年电工证样子过期了不知道怎么复审延期?保姆级教程来了

2018年电工证样子过期了不知道怎么复审延期?保姆级教程来了 证书过期了不知道怎么复审延期?你不是一个人在战斗。尤其是2018年电工证样子这类老证,不少持证人现在面临复审或换证的问题。别急,这篇保姆级教程,从周口劳务班组负责人的角度,手把手…

2026/11/16 3:15:57

电工证拿在手里才安心,真实经历告诉你如何打印实体电工证

电工证拿在手里才安心,真实经历告诉你如何打印实体电工证 工地太忙根本没时间复习考试,我就是其中一个。去年刚从河南焦作调岗到郑州,手头活儿多得数不清,连吃饭时间都被压缩了,更别说抽空准备电工证考试了。结果那天项目部一纸通知,要求所有特种作业人…

2026/11/16 3:15:57

重庆考低压电工证报名保姆级教程:外省证书能转吗?手把手教你避坑

重庆考低压电工证报名保姆级教程:外省证书能转吗?手把手教你避坑 之前考的证在外省能不能转过来?这个问题,几乎每个打算在重庆报名低压电工证的考生都会问。其实,重庆的低压电工证报考流程和外省大同小异,关键在于材料准备、报名地点、考试内容这几个环…

2026/11/16 3:10:56

电工证算什么工?良心建议帮你避坑,三门峡班组负责人亲测

电工证算什么工?良心建议帮你避坑,三门峡班组负责人亲测 不知道去哪报名怕被中介坑?电工证算什么工?这话听着像是调侃,但背后却藏着无数人的困惑。作为三门峡劳务班组的负责人,我深知很多人拿着电工证,却不知道它到底能干啥、值不值钱。今天我以过来人…

2026/11/15 0:02:49

电工证考试口诉怎么准备值不值得考

电工证考试口诉怎么准备值不值得考 实操考试心里没底怕挂科,这是大多数准备考电工证的人心里最真实的感受。尤其是面对【电工证考试口诉】环节,很多人不知道该怎么准备,甚至担心自己说不好就被淘汰。其实,只要掌握方法, 值不值得考…

2026/11/15 0:02:49

桑植县考电工证千万别踩坑!报名全流程教你避坑

桑植县考电工证千万别踩坑!报名全流程教你避坑 你是不是也遇到过这种情况:想考个电工证,但不知道从哪儿下手,怕被中介坑,怕花冤枉钱,更怕考了证还不能用?别急,这正是你该看这篇文章的原因。在桑植县考电工证,确实有很多人被坑过,但只要你知道流程、…

2026/11/16 0:00:11

黎城电工证查询报名费多少钱 内部消息告诉你怎么避开中介陷阱

黎城电工证查询报名费多少钱 内部消息告诉你怎么避开中介陷阱 你是不是也和我一样,想考电工证,但不知道去哪报名,怕被中介坑?最近网上有不少人问“黎城电工证查询报名费多少钱”,结果一查,信息五花八门,真假难辨。别担心,今天我就从一线从业者的角度…

2026/11/16 0:00:11

青岛崂山区电工证培训通过率揭秘:外省证书怎么转过来?

青岛崂山区电工证培训通过率揭秘:外省证书怎么转过来? 之前考的证在外省能不能转过来?这个问题困扰着很多在外地打工的电工,尤其是像南阳卧龙区的建筑工人,他们常年在工地作业,手上持有电工证是基本要求,但很多人因为工作流动性大,担心证书不能转到本…

2026/11/15 4:46:37

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/16 3:17:47

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑