面向实战的Ai大模型训练教程,详解预训练、SFT、RLHF、DPO分别是什么,给出数据要求、训练流程、适用场景与训练代价对比,并提供企业落地选型步骤与示例。
预训练、SFT、RLHF、DPO分别是什么:适用场景与训练代价对比
在 《Ai大模型训练教程:从入门到实战落地的系统课程》 这套系列里,很多同学一开始最容易混淆的就是:
- 为什么先做预训练(Pretraining),还要做SFT?
- RLHF 到底解决什么问题,为什么这么“贵”?
- DPO 为什么突然流行,和 RLHF 相比省在哪里?
这篇文章将围绕“定义—目标—数据—训练流程—成本/风险—适用场景”把四者讲清楚,并给出你在真实业务落地时如何选型的步骤。
一、四种训练范式的直觉类比
把大模型看作一个“会写字的员工”:
- 预训练:让员工通过读大量书、网页,学会语言与世界知识(通用能力)。
- SFT(监督微调):给员工“标准答案的示范稿”,让他学会按你希望的格式/风格写(对齐到任务)。
- RLHF(基于人类反馈的强化学习):你不再给标准答案,而是让评审打分/排序,员工通过“试写—得分—改进”学会更符合人类偏好(偏好对齐)。
- DPO(直接偏好优化):同样用“偏好数据”,但不用强化学习那套复杂的在线采样与优势估计,而是用更直接的对比优化,把“更喜欢的回答”概率拉高(更省、更稳)。
二、预训练(Pretraining)是什么
2.1 目标:学会语言与通用知识
预训练通常使用 自回归语言建模(Causal LM) 或 掩码语言建模(Masked LM) 等目标,让模型在海量文本上学习:
- 语言结构、语法、常识
- 各领域知识(但不保证对齐与安全)
- 泛化能力(涌现能力往往在较大规模出现)
最常见的是自回归目标:给定前文,预测下一个 token。
2.2 数据:海量、弱标注甚至无标注
常见来源:
- Web 文本、书籍、论文、代码
- 去重、过滤后的多语种数据
关键点:预训练不需要“指令-答案”对。它对数据规模和质量极其敏感:
- 噪声多会带来幻觉、偏见、脏话输出等风险
- 重复数据会导致记忆与泄露风险上升
2.3 训练代价:最高(但摊薄到全生命周期)
预训练成本主要来自:
- 算力:长时间多卡训练(数百到上万 GPU 小时甚至更多)
- 工程:数据管线、分布式训练、容错、监控
- 机会成本:迭代慢,一次跑错损失巨大
对大多数企业而言:
- 从零预训练通常不划算(除非你是基础模型公司,或有强监管/私域语料必须“从头掌控”)。
- 更现实的方式是:选一个合适的开源基座模型,做后续 SFT / DPO / RLHF。
2.4 适用场景
- 你要做“类 GPT/通用大模型”并掌控知识/语言覆盖
- 你有独占语料(行业、法律、国防等)且出于合规不能用外部基座
- 你需要显著改变模型的基础分布(例如大规模代码模型、特定语种模型)
三、SFT(Supervised Fine-Tuning)是什么
3.1 目标:学会“按指令做事”
SFT核心是:用 成对的监督数据 训练模型,让它在给定输入(指令/上下文)时输出期望答案。
典型数据结构:
- Instruction(用户问题)
- Response(标准答案)
在对话场景里常是多轮:system/user/assistant。
SFT做的事情更像“教模型模仿优秀示范”。它能显著提升:
- 指令跟随
- 输出格式稳定性(JSON、表格、代码框架)
- 专有领域表述(术语、风格、口吻)
3.2 数据:质量第一,数量其次
SFT最怕的是:
- 答案质量参差:模型会学到错误与坏习惯
- 风格混乱:输出不稳定
- 任务边界不清:导致“什么都答一点但都不深”
建议数据配比(示例,可按业务调整):
- 50%:核心业务任务(客服、问答、写作、代码助手等)
- 20%:拒答/安全/合规(不能做什么)
- 20%:通用指令(增强泛化)
- 10%:格式化输出/工具调用/结构化抽取
3.3 训练代价:中等(性价比最高的第一步)
相对预训练,SFT成本低很多:
- 可用 LoRA / QLoRA 降显存
- 数据量一般从几千到几十万条即可见效
- 训练周期从数小时到数天
但注意:SFT的“成本”不只在算力,还在 数据生产:
- 写高质量标准答案需要专家
- 多轮对话需要一致性设计
3.4 适用场景
- 你有明确任务与期望输出(企业落地最常见)
- 需要模型学会某种“标准流程/格式”
- 你希望快速提升可用性:SFT几乎是必选项
四、RLHF(Reinforcement Learning from Human Feedback)是什么
4.1 目标:对齐“人类偏好”,而非仅模仿示范
SFT只能学“示范答案”,但很多时候你并没有唯一标准答案,或者你更关心:
- 哪个回答更有帮助、更礼貌、更安全
- 哪个更符合公司价值观/合规要求
- 哪个更少胡编乱造
RLHF通常分三步(经典流程):
1) SFT:先训练一个能基本对话的策略模型(policy)
2) 奖励模型(RM)训练:收集人类偏好数据(A/B排序),训练 RM 给回答打分
3) 强化学习优化(常用 PPO):让策略模型生成回答,RM打分,策略根据奖励更新
4.2 数据:偏好对(chosen / rejected)更关键
偏好数据形式示例:
- 同一提示词下,两个回答 A/B
- 人类标注“更好的是 A(chosen)”,“较差的是 B(rejected)”
偏好维度常见包括:
- 有用性(helpfulness)
- 无害性(harmlessness)
- 诚实性(honesty)
- 语气、简洁度、结构
4.3 训练代价:高,且工程复杂
RLHF“贵”主要贵在:
- 在线采样:训练过程中需要不断让模型生成回答(rollout),非常耗时
- 训练不稳定:PPO等算法需要调参,容易出现奖励黑客(reward hacking)
- 系统复杂:policy / reference / RM / value head / KL约束等组件
- 标注成本高:偏好标注需要一致的标准与质检流程
你会遇到的典型问题:
- 模型学会“讨好RM”的套路,而不是更真实地回答
- 输出变得过度谨慎、过度拒答(alignment tax)
- 不同标注员偏好不一致导致RM噪声
4.4 适用场景
- 你需要显著提升“主观质量”:更像人、更会聊天、更懂分寸
- 你有明确的偏好函数但很难写成规则
- 你具备一定训练工程能力与评测体系
在企业实践中,RLHF常用于:
- 高曝光的对话产品
- 对安全、礼貌、品牌调性要求极高的场景
五、DPO(Direct Preference Optimization)是什么
5.1 目标:用偏好数据直接对齐,绕过RL的复杂性
DPO同样使用偏好对(chosen/rejected),但不再训练一个显式奖励模型 + PPO在线优化。
它的核心直觉:
- 希望模型在同一prompt下,给“chosen”的概率比“rejected”更高
- 通过一个带温度/系数的对比目标,直接优化策略模型
- 同时引入参考模型(reference)约束,避免模型偏离太远
5.2 数据:与RLHF类似,但流程更轻
你仍需要偏好对数据,来源包括:
- 人工标注 A/B
- 由规则或业务指标构造偏好(例如客服满意度、是否命中知识库证据)
- 用更强模型生成多候选,再由人类选择
DPO的优势是:
- 不需要单独训练RM(可减少一条训练链路)
- 不需要在线rollout(训练更像离线监督学习)
5.3 训练代价:中等偏低,稳定性更好
相对 RLHF:
- 训练更稳定、实现更简单
- 对算力与工程要求更低
- 迭代更快,更适合团队“小步快跑”
但注意:
- DPO效果高度依赖偏好数据质量
- 偏好维度复杂时(既要有用又要安全还要风格),数据设计要更细
5.4 适用场景
- 你想要接近RLHF的“偏好对齐”收益,但预算/团队不足以支撑RLHF
- 你已有一批偏好对数据,想快速对齐输出风格与质量
- 你希望更可控地迭代(离线训练、可复现)
六、四者对比:场景与训练代价一览
6.1 对比表(落地视角)
| 方法 | 训练目标 | 需要的数据 | 工程复杂度 | 算力成本 | 主要收益 | 主要风险 |
|---|---|---|---|---|---|---|
| 预训练 | 学语言与通用知识 | 海量无标注文本 | 极高 | 极高 | 通用能力、知识广度 | 成本巨大、数据治理难、不可控输出 |
| SFT | 学会按指令输出 | 指令-答案对 | 中 | 中 | 指令跟随、格式与领域适配 | 学到错误示范、过拟合特定风格 |
| RLHF | 对齐人类偏好 | 偏好对 +(可选)RM数据 | 很高 | 高 | 主观体验显著提升、更安全 | 训练不稳、奖励黑客、迭代慢 |
| DPO | 直接偏好对齐 | 偏好对(chosen/rejected) | 中 | 中偏低 | 接近RLHF的对齐收益、实现更简单 | 依赖高质量偏好数据、偏好覆盖不足 |
6.2 你可能真正关心的“代价”拆解
1) 算力代价
- 预训练 >> RLHF > SFT ≈ DPO(一般情况)
2) 数据代价(人力/专家)
- 预训练:主要是清洗治理(工程)
- SFT:专家写高质量答案成本高
- RLHF/DPO:偏好标注与一致性管理成本高(需要更细的标注规范与仲裁)
3) 时间代价(从想法到上线)
- SFT最快
- DPO次之
- RLHF往往最慢(链路长、调参多)
- 预训练更是长期工程
七、实操选型:企业团队如何决定用哪一种
下面给一个可执行的决策流程(建议你照着做一次评估表)。
7.1 第一步:明确你在优化什么指标
把需求写成可评测的指标,而不是“更智能”:
- 客服:一次解决率、拒答率、合规命中率、投诉率
- 内容生成:事实错误率、风格一致性、可读性打分
- 助手/Agent:工具调用成功率、步骤可复现率
若指标主要是“格式/流程正确”:优先 SFT。
若指标主要是“主观偏好/体验”:考虑 DPO 或 RLHF。
7.2 第二步:盘点你能拿到什么数据
- 只有原始文档/网页/日志:别急着预训练,先做 RAG + SFT 通常更快。
- 有大量标准答案(工单处理SOP、知识库标准回复):适合 SFT。
- 有用户反馈/人工审核/满意度排序:适合构造成 偏好对,走 DPO/RLHF。
偏好对构造示例(客服场景):
同一问题下,模型生成两个版本:
- A:引用知识库证据、语气礼貌
- B:编造原因、但说得很自信
- 标注 chosen=A, rejected=B
- 同时记录原因标签(“是否引用证据”“是否编造”)便于后续分析
7.3 第三步:默认路线(最常见的落地路径)
在多数企业项目里,推荐的顺序是:
1) 选合适基座模型(开源/商用)
2) SFT:先把“能用、稳定、格式对”解决
3) 用线上数据构造偏好对
4) DPO:快速把体验与偏好拉齐
5) 若仍不足且资源允许,再上 RLHF 做更强对齐
为什么DPO放在RLHF前:它更像“加强版SFT”,迭代快,能先吃到大部分收益。
7.4 第四步:控制训练风险的建议
- 先评测再训练:建立最小评测集(50~200条高价值样例)覆盖关键风险
- 分层数据:把“必须正确”的任务(合规、拒答、工具调用)单独成桶,避免被闲聊数据稀释
- 防止过拟合口吻:同一任务准备多种表达方式,提升鲁棒性
- 偏好标注要有规范:对“更好”的定义写清楚,提供反例与仲裁流程
八、一个小型示例:从SFT到DPO的最小闭环
假设你在做“企业内部IT支持助手”。
8.1 SFT数据示例(指令-答案)
- 指令:用户电脑无法连接VPN,如何排查?
- 标准答案:按SOP列出检查网络、重启客户端、确认账号权限、收集日志并升级工单
- 要求:输出为步骤清单 + 需要收集的信息字段(如OS版本、错误码)
训练目标:让模型稳定输出 SOP 步骤与字段。
8.2 DPO偏好对示例(chosen/rejected)
同一问题下:
- Answer A(chosen):先澄清问题(是否公司网络/家庭网络)、给出分支排查路径、最后提示如何提交日志;语气简洁。
- Answer B(rejected):直接让用户重装系统;没有日志与升级路径。
DPO训练后,你通常会看到:
- 模型更倾向于“先澄清+分支排查+收集信息”的结构
- 乱建议、跳步骤的概率下降
这类提升往往很难仅靠SFT实现,因为SFT更像“记住示范”,而DPO会强化“更好的那类回答模式”。
九、结论:怎么一句话记住四者
- 预训练:让模型“有知识、有语言能力”。成本最高,做基座用。
- SFT:让模型“按指令做事、格式稳定”。企业落地最常用、性价比高。
- RLHF:让模型“更符合人类偏好与安全要求”。效果强但链路复杂、成本高。
- DPO:用偏好数据“更省更稳地做对齐”。很多团队可用它替代/前置RLHF。
如果你在做 Ai大模型训练教程 的实战落地:
- 没有明确偏好标注体系前,先把 SFT 做扎实;
- 有了偏好数据与评测闭环后,优先尝试 DPO;
- 只有在“体验与安全要求极高且资源足够”时再上 RLHF;
- 从零 预训练 仅在极少数强约束场景必要。
Prev:文搞懂大模型训练常见概念:Tokenizer、Embedding、Logits、Loss、梯度与Checkpoint