当前位置: 首页 > news >正文

大语言模型技术指南: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)对齐训练不只是训练问题,它会直接决定模型在线上的手感、拒答边界和产品体验

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

http://www.jsqmd.com/news/650330/

相关文章:

  • 顶会论文模块复现与二次创新:二次创新:将 MLP-Mixer 的跨 token 混合机制引入 ConvNeXt Block
  • 口碑好的军事拓展训练公司盘点,怎么收费 - 工业品牌热点
  • 商用扫地机出口欧盟需要做EMC+LVD+MD三指令
  • 小爱音箱音乐播放困境的突破性解决方案:XiaoMusic一站式智能化音乐中心
  • RT-Thread BSP提交指南:从个人项目到开源贡献,你的代码如何通过社区审核?
  • OpenRocket终极指南:5步快速掌握开源火箭设计与飞行仿真
  • T-POT 20.06 蜜罐平台:从零到一的实战部署与避坑指南
  • ESP32 Homekit实战 - 让Siri掌控你的RGB氛围灯
  • 筑牢企业品控防线:TVA故障应急处置指南(中篇)
  • 阿里新王炸?HappyHorse 1.0 AI视频生成模型全解析
  • ComfyUI-WanVideoWrapper:基于扩散模型的模块化视频生成架构与工作流构建
  • 别再乱买了!根据预算和应用,锁定余氯仪前十品牌 - 陈工日常
  • 多模态增量学习失效真相(92%团队踩中的4个隐性灾难点)
  • 专业抖音直播代运营托管:数据驱动,精准提升品牌价值
  • 2026年乌鲁木齐搬家避坑指南:正规军vs黑车队,透明报价企业深度 - 精选优质企业推荐榜
  • Intel NPU加速库:开启AI推理硬件加速的新纪元
  • 如何用Python实现CATIA自动化:pycatia实战高效应用指南
  • Adobe Source Sans 3实战指南:专业UI字体的深度应用与优化
  • VS2022快速集成PCL1.13.1:属性表(.props)一键配置指南
  • 展会预告 | 灵境智源将携全系具身智脑产品亮相2026 FAIR plus,深圳见!
  • 面向 LLM 的程序设计 10:链式任务中的中间输出格式——如何写提示才能稳定得到可解析结构
  • 完全开源的语言模型学习记录--KeepLora
  • Windows 环境下 mysql 修改数据目录
  • 终极电池保护:BatteryChargeLimit如何让你的手机电池寿命延长一倍
  • 汽配/五金/重机焊接怎么配?细分场景下的点焊机厂家“对号入座”指南 - 深度智识库
  • Midscene.js:AI驱动的跨平台UI自动化终极解决方案
  • B站视频解析工具:轻松获取高质量视频资源的终极指南
  • 如何在phpMyAdmin中解决权限操作卡顿_用户表索引与网络延迟优化
  • 使用HSEM进行核间通信
  • Redis 缓存三大经典问题:穿透击穿雪崩的本质区别与工程实践