大语言模型技术指南:SFT、RLHF、DPO 怎么串起来?对齐训练与关键参数详解

大语言模型技术指南:SFT、RLHF、DPO 怎么串起来?对齐训练与关键参数详解

前面几篇,我们已经把这条主线往前推进到了预训练阶段。

如果说预训练解决的是:

让模型学会语言、知识分布和通用模式。

那么接下来很自然就会遇到一个问题:

为什么一个已经很强的预训练模型,还是经常"不好用"?

比如它可能会出现这些典型情况:

  • 能续写,但不一定听指令
  • 能回答,但风格不稳定
  • 知道很多知识,但回答不够符合人类偏好
  • 遇到开放问题时容易又长又散
  • 在多轮对话里不够"像一个助手"

这就说明一件事:

预训练学到的是"会生成",但不等于"会按人希望的方式生成"。

所以在现代 LLM 训练链路里,预训练后面通常还会接一段"对齐训练"。

最常见的三组关键词就是:

  • SFT
  • RLHF
  • DPO

很多文章会把它们拆开讲,但真正做工程判断时,更重要的是把它们串起来看:

  • 它们分别解决什么问题
  • 为什么不是互相替代,而是常常前后衔接
  • 数据、损失函数和训练参数到底在影响什么
  • 到部署阶段,这些训练选择又会留下什么风格和边界

这篇文章就把这条链路讲清楚。


一、先说结论:对齐训练不是"让模型更聪明",而是让模型更像一个可用助手

先把一个最容易混淆的点说清楚。

很多人会把"对齐训练"理解成:

"继续把模型训强一点。"

这话只对一半。

更准确地说:

对齐训练的核心目标,不是让模型凭空获得全新世界知识,而是让它更稳定地按照人类期望的方式组织、筛选和表达能力。

也就是说,它主要调整的是:

  • 回答风格
  • 指令跟随能力
  • 拒答边界
  • 帮助性、真实性、无害性之间的平衡
  • 在多个候选回答里更偏好哪一种

所以从能力分层上看:

  • 预训练 更像打底座
  • SFT 让模型学会"怎么像助手一样回答"
  • RLHF / DPO 让模型进一步学会"哪种回答更符合人类偏好"

这三者不是一个层面的东西。


二、为什么预训练模型通常还不够"可用"

预训练模型的目标很清楚:给定前文,预测下一个 token。

这个目标能让模型学出语言规律、知识共现和很多通用能力,但它不会天然关心下面这些事情:

  • 用户是不是在明确下指令
  • 回答是不是应该先给结论再展开
  • 两种都能续写的答案里,哪种更清楚更安全
  • 某些敏感请求该不该拒绝、该怎样拒绝
  • 多轮对话里,什么叫"像一个靠谱助手"

因为从 next-token prediction 的角度看,只要"统计上合理",模型就可能继续写下去。

这也是为什么早期 base model 往往会给人一种感觉:

  • 很强
  • 但不顺手
  • 有知识
  • 但不够听话

于是训练链路就会从"学世界分布",转向"学人类意图和偏好"。


三、SFT 到底是什么?

SFT 全称是 Supervised Fine-Tuning,也就是监督微调。

它的核心做法并不复杂:

给模型一批"输入---理想输出"样本,让它继续学习,在这些样本上逼近人类示范答案。

例如:

  • 输入:解释一下 Transformer 的 self-attention
  • 输出:一段结构清晰、术语准确、适合用户阅读的回答

或者:

  • 输入:帮我写一封请假邮件
  • 输出:一封语气自然、格式完整的邮件

从训练形式上看,SFT 仍然很像语言建模,只不过训练数据变成了更明确的"指令---回答"对。

所以 SFT 解决的第一件事是:

把模型从"通用续写器"拉成"指令跟随器"。


四、SFT 最重要的价值,不是增加知识,而是塑造回答分布

很多人误以为 SFT 的价值主要在于"补知识"。

现实里,它更重要的作用往往是:

  • 教模型理解指令格式
  • 教模型形成回答结构
  • 教模型学会任务边界
  • 教模型在对话里采用更稳定的表达模式

比如同样一个问题,base model 可能会:

  • 先铺垫很多背景
  • 回答不聚焦
  • 有时偏论文体,有时偏论坛体
  • 有时像续写文章,而不是回答问题

经过 SFT 后,模型会更倾向于:

  • 先回应用户意图
  • 给出结构化回答
  • 风格更像助理
  • 对常见任务模式更熟悉

所以 SFT 的关键不是"教它从无到有知道一件事",而是:

把已有能力重新组织成更可用的交互形态。


五、SFT 数据为什么会直接决定模型"像什么助手"

SFT 的风格,很大程度上就是数据风格。

如果你的监督数据主要是:

  • 长篇解释型回答
  • 教学式推导
  • 稳健保守的拒答模板
  • 结构很规整的问答对

那模型最后也会被拉向这种风格。

如果数据主要是:

  • 短回答
  • 口语化表达
  • 强任务导向
  • 偏代码/偏工具调用格式

模型就会形成完全不同的"人格手感"。

所以在工程上,SFT 数据不只是标注集,而更像是:

你希望模型成为什么样助手的行为样本库。

这也是为什么不同厂家的模型,即便底座接近,最后用起来的风格差异仍然很大。


六、SFT 阶段有哪些关键参数值得关注

SFT 的训练参数很多,但我建议先抓最关键的一批。

1)学习率(learning rate)

这是最敏感的参数之一。

  • 太大,容易把底座能力拉坏,出现灾难性遗忘
  • 太小,收敛慢,风格拉不动

SFT 通常比预训练更依赖精细学习率控制,因为这一步更像"修形",不是"从零学世界"。

2)epoch

SFT 数据往往比预训练小得多,所以 epoch 数会更有意义。

  • epoch 太少,风格没学稳
  • epoch 太多,容易过拟合模板表达

3)batch size

它会影响训练稳定性、吞吐和梯度估计噪声。

在数据量不算特别大的 SFT 阶段,batch 的选择会明显影响最后风格是否平滑。

4)max sequence length

这个参数决定单条样本最多截取多长。

如果训练里长期只看短样本,模型后面在长指令、多轮结构化输出上的表现往往也会受影响。

5)数据配比

如果你同时混合:

  • 通用问答
  • 数学
  • 代码
  • 工具调用
  • 安全拒答

那不同数据占比其实就是在决定模型后面对各类行为的偏好强弱。

所以很多时候,真正的"参数"不是命令行里的某个数字,而是数据配比本身。


七、RLHF 为什么会出现

只做 SFT,有一个很现实的问题。

即使你给了标准答案,很多任务仍然不是"唯一正确输出"。

比如一个问题的两个回答可能都没错,但人类会明显偏好其中一个:

  • 一个更简洁
  • 一个更有逻辑
  • 一个更安全
  • 一个更贴合用户真正意图

这时,单纯做监督学习就不够了。

因为 SFT 更像在拟合"示范答案",而不是在大量可行答案里学习"人类更喜欢哪种"。

于是 RLHF 出现了。

RLHF 全称 Reinforcement Learning from Human Feedback。

它的核心思想是:

先收集人类偏好,再把这种偏好转成优化信号,让模型朝更受偏爱的回答分布移动。


八、RLHF 的典型三段式链路

经典 RLHF 通常可以粗略拆成三步。

1)先做 SFT

先把模型调成一个基本可对话、可跟随指令的版本。

因为如果模型连像样回答都给不出来,后面的偏好优化很难稳定进行。

2)训练 reward model

对同一个 prompt,生成多个候选回答,让标注者排序或二选一。

例如:

  • A 比 B 更清楚
  • A 比 B 更安全
  • A 比 B 更符合用户意图

然后训练一个 reward model,让它学会给"更受偏好"的回答更高分。

3)用强化学习优化策略模型

再让主模型根据 reward model 的打分去更新,从而增加高偏好回答的概率。

这就是 RLHF 中"RL"的来源。

所以 RLHF 并不是神秘黑箱,它本质上是在做一件事:

把人类主观偏好,转成一个可训练的优化目标。


九、为什么 RLHF 能改善"手感"

很多人实际用模型时,会说某个模型"手感更好"。

这种"手感"背后,往往就和偏好优化强相关。

因为 RLHF 会影响很多非常用户侧的体验:

  • 回答是否更贴题
  • 是否更会先给结论
  • 是否更少跑题
  • 是否更懂得收敛篇幅
  • 是否更谨慎处理高风险问题
  • 是否更容易产出"看起来像人写的有用答案"

也就是说,RLHF 不一定显著增加知识量,但经常会显著改变:

模型把已有能力包装成用户体验的方式。

这也是为什么有些模型 benchmark 不一定遥遥领先,但产品体验却很好。


十、RLHF 最大的工程难点,不在 RL,而在偏好数据

外行看 RLHF,容易把重点放在 PPO、KL penalty 这些算法词上。

但工程里真正难的,经常不是公式,而是:

你到底在收集什么偏好,谁来打标,偏好是否一致。

因为"更好回答"并不是天然客观的。

偏好会受很多因素影响:

  • 任务类型
  • 标注规范
  • 风格偏好
  • 安全标准
  • 文化语境
  • 产品定位

如果偏好数据本身混乱,reward model 学到的东西也会混乱。

于是你可能得到一个很奇怪的模型:

  • 很会说套话
  • 过度保守
  • 过度简短
  • 一味迎合某种模板化风格

所以 RLHF 的上限,很大程度取决于偏好数据质量,而不只是 RL 算法本身。


十一、RLHF 里有哪些关键参数和约束

虽然 RLHF 很复杂,但从理解层面,最值得关注的是下面几类量。

1)reward model 质量

如果奖励模型打分不稳,后续优化方向就会跑偏。

2)KL 系数

在很多 RLHF 实现里,会加入 KL penalty,限制新策略不要偏离 SFT 模型太远。

它的作用很关键:

  • 太小:模型可能为了刷 reward 走向奇怪分布
  • 太大:模型几乎学不动,偏好优化效果弱

所以 KL 系数本质上是在控制:

你愿意为了偏好收益,允许模型偏离原始分布多少。

3)采样策略

候选回答怎么采样,会影响偏好数据多样性,也影响 reward model 学到的边界。

4)训练稳定性

强化学习阶段天然更容易不稳定,尤其是大模型上。

因此很多团队后来开始倾向更简单、直接的偏好优化方法。

这也就引出了 DPO。


十二、DPO 为什么近两年这么火

DPO 全称 Direct Preference Optimization。

它受欢迎的核心原因很简单:

它试图绕开传统 RLHF 中 reward model + 强化学习那条又长又难训的链路,直接用偏好对来优化模型。

直觉上你可以把它理解成:

  • 给定一个 prompt
  • 有一个人类更喜欢的回答 chosen
  • 有一个不那么喜欢的回答 rejected
  • 直接训练模型:提高 chosen 的概率,压低 rejected 的概率

这样就把"偏好学习"从复杂 RL 流程,转成了一个更接近监督学习的优化问题。

这为什么重要?

因为它通常意味着:

  • 训练实现更简单
  • 稳定性更好
  • 工程成本更低
  • 更容易在已有 SFT 模型上继续做偏好优化

十三、DPO 解决了什么,又没解决什么

DPO 的优势确实很明显,但也别神化。

它主要解决的是:

  • 降低 RLHF 的实现复杂度
  • 减少 reward model 误差链路
  • 更方便利用成对偏好数据

但它没有 magically 消灭所有问题。

比如:

  • 偏好数据如果有问题,DPO 一样会学歪
  • chosen / rejected 的构造方式会直接影响优化方向
  • 不同任务对"偏好"的定义并不统一
  • 如果过度优化,仍可能出现风格过拟合和能力压缩

所以 DPO 不是"比 RLHF 高一个时代",而更像是:

一种更简洁、工程上更友好的偏好优化路径。


十四、DPO 里的关键参数:beta 到底在控制什么

讲 DPO 时,最常被提到的参数就是 beta。

直觉上,你可以把它理解成:

模型为了偏好样本去拉开 chosen 与 rejected 差距时,力度有多大。

  • beta 太小,偏好信号作用弱
  • beta 太大,模型可能被强行拉向某种狭窄风格

所以 beta 本质上是在控制:

  • 你要多大程度强化偏好
  • 你要多大程度保留原模型分布

从结果上看,它和 RLHF 里的 KL 约束有一点类似的味道:

都是在处理"优化偏好"和"别把底座搞坏"之间的平衡。


十五、SFT、RLHF、DPO 到底该怎么串起来看

如果只用最实用的工程视角,我会这样理解:

第一层:SFT

让模型学会按指令做事。

核心解决:

  • 指令跟随
  • 回答结构
  • 助手风格初始化

第二层:RLHF / DPO

让模型在多个可行回答里,更稳定地偏向人类喜欢的那种。

核心解决:

  • 偏好排序
  • 风格打磨
  • 安全与帮助性的细调

所以它们不是"选一个就行",而是常见的链路是:

预训练 → SFT → 偏好优化(RLHF 或 DPO)

其中 DPO 常常被当成 RLHF 链路的轻量替代实现,而不是替代整个对齐阶段。


十六、从部署视角看,对齐训练会留下哪些痕迹

很多工程同学不直接参与训练,但对齐训练和你依然高度相关。

因为你在线上看到的很多行为,其实就是 SFT / RLHF / DPO 留下的"模型习惯"。

例如:

  • 是否爱先讲免责声明
  • 是否偏好长回答还是短回答
  • 是否容易过度拒答
  • 是否在模糊请求下强行猜用户意图
  • 是否擅长结构化输出
  • 是否在工具调用前啰嗦解释过多

这些都不是部署参数临时决定的,很多时候是训练分布决定的。

所以部署时不要只问:

  • 模型多大
  • 基准分数多少

还要问:

  • 这个模型被对齐成什么风格
  • 它对拒答边界的处理是否适合我的产品
  • 它在代码、问答、Agent、RAG 场景下的行为稳定吗

这才是真正接近使用体验的判断方式。


十七、对齐训练最容易踩的几个坑

1)把对齐当成"继续堆知识"

对齐主要调行为分布,不是知识灌输主通道。

2)SFT 数据太模板化

如果样本过于整齐,模型最后容易变得机械、官话重。

3)偏好数据标准不一致

同一类问题标注口径不统一,reward model 或 DPO 就会学得摇摆。

4)安全过拟合

过度保守会让模型在很多正常任务上也畏手畏脚。

5)只看训练指标,不看真实交互体验

偏好优化做完,离线 loss 变好,不代表线上用户就一定更满意。

真正该看的还是任务完成率、用户主观偏好和失败案例分布。


十八、最后总结:对齐训练是在把"会生成"变成"更可用地生成"

如果只用一句话概括这篇,我会说:

SFT、RLHF、DPO 这条链路的本质,是把预训练模型从"会续写的底座",逐步变成"更听指令、更符合人类偏好、更适合真实产品交互的助手"。

你真正应该带走的,是下面几个核心认识:

1)SFT 主要解决"按指令做事"的问题,让模型从续写器变成助手

2)RLHF 主要解决"多个可行答案里,哪种更符合人类偏好"的问题

3)DPO 是一种更简洁的偏好优化路径,本质上仍然是在做对齐,而不是跳过对齐

4)learning rate、epoch、batch、数据配比、KL、beta 这些参数,本质上都在平衡"拉风格"和"别拉坏底座"

5)对齐训练不只是训练问题,它会直接决定模型在线上的手感、拒答边界和产品体验

从这里开始,你对大语言模型的理解,就不再只是"它怎么学语言",而是开始进入"它怎么被塑造成一个可用助手"。

相关推荐
chaojihaomai9 分钟前
AI电商商品图生成中的材质保真问题——扩散模型重建优先级分析与锁定式方案
人工智能·材质
大模型探索者2 小时前
2026 企业智能体平台选型指南:从通用到行业深耕,怎么选?
大数据·人工智能
深圳行云创新2 小时前
北极星知识图谱平台|太空越来越“拥挤”,知识图谱如何预测空间碎片碰撞风险?
人工智能·知识图谱
Am-Chestnuts3 小时前
国产AI多轮对话归档与多格式导出实践
人工智能·word
麻瓜生活睁不开眼3 小时前
Android16修改全局桌面视图边框四直角显示为弧边圆角
android·java·深度学习
workflower4 小时前
装备企业的 AI 路线图
人工智能·深度学习·机器学习·设计模式·机器人
AKAMAI4 小时前
Linode接口及默认防火墙现已全面开放使用
人工智能·云计算
前端开发江鸟4 小时前
RAG 回答错了,问题到底出在召回、重排,还是生成?
人工智能
美狐美颜SDK开放平台5 小时前
直播app开发如何实现主播级美颜效果?美颜sdk开发方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美颜api
东方小月5 小时前
从零开发一个 Coding Agent(四):使用状态机校验大模型事件流
前端·人工智能·后端