
「极客说」 是一档专注 AI 时代开发者分享的专栏,我们邀请来自微软以及技术社区专家,带来最前沿的技术干货与实践经验。在这里,您将看到深度教程、最佳实践和创新解决方案。关注「极客说」,与行业顶尖专家一起探索科技的无限可能!投稿请联系:17278094563(微信号)
本文首先将阐述强化学习(RL)和监督微调(SFT)在实现方式上的区别,然后通过一个具体案例,详细说明如何对奖励函数进行优化。
从简单例子入手理解 SFT 和 RL
监督微调(SFT)- 像老师教学生
监督微调(Supervised Fine-Tuning,简称 SFT)相当于作为老师,自己先列出很多问题,再告诉模型标准的回答,比如用数据(训练集)教它:

我们让模型一遍又一遍模仿训练语料中的标准答案,直到我们符合要求。
SFT 具体步骤(算法的介绍)
- 我们拿出一个问题:苹果什么颜色?
- 模型自己尝试回答:比如它乱回答成 蓝色。
- 我们就立马纠正,告诉它正确的答案应该是红色,给它一个明确的误差信号: [ 误差 = - log P("红色") ]
- 然后模型用这个误差信号帮助它更新自己说法,让下次“红色”概率增加。
所以,监督学习过程如下:
优点:安全、稳定
缺点:模型永远只能模仿,不太能创造性地发现新答案。
强化学习(RL)– 让模型自己摸索
强化不直接教标准答案,而是用“鼓励”和“惩罚”引导模型。
我们问模型:“1加1等于?”
- 它如果乱说了:“香蕉!”,我们立刻给个负面奖励(-1);
- 如果它说对了:“2”,我们给它正面奖励(+2)。
模型得到这些奖励和惩罚之后,会慢慢去摸索和记忆,知道怎么才能得到更多奖励(而不是直接告诉它标准答案)。
强化学习大致算法:
优势:模型能够自己发现最优策略,能主动“探索”,学得更主动;
危险:但探索过猛容易产生 KL 爆冲、梯度爆炸、最终模型崩盘。

SFT 和 RL 选择
大多数情况下训练模型先 SFT 再 RL 更安全、更高效,尤其是对能力尚弱的小模型或需要严格格式输出的任务。不过这并不是绝对法则,下面补充几点可作为快速校验的要点。
为什么“先 SFT 后 RL”通常更好
训练稳定性
- 直接 RL(尤其是小模型)容易出现 KL 爆冲、梯度爆炸,模型甚至崩盘。
- SFT 先把策略锚定在“基本正确、格式合规”的空间,再让 RL 微调,KL 跳变小很多,收敛更稳。
数据利用效率
- SFT 等价于“先喂答案教基础功”;RL 更像“在掌握基础后练举一反三”。
- 如果一开始就 RL,模型会在大量无意义探索上浪费步数。
人工标注成本
- SFT 阶段可用少量高质量标注(或合成高质量标注)直接模仿;
- RL 阶段只用奖励信号即可继续放大效果,二者配合能节省标注量。
直接 RL 的合理场景
- 几乎没有标注数据、但可以自动计算奖励,例如:解数独、玩 Atari 游戏,环境本身给出分数。
- 大模型已具备强基础能力 GPT-4、Claude 3-Sonnet 这一级别,格式和基本推理已比较稳,直接 RL(或 RLAIF)效果也可接受。
- 任务鼓励高多样性、无法提供单一“标准答案” 如创意写作、对话风格优化,仅用偏好打分即可训练。
实践经验速查表

- 我们的奖励函数是不是完全依赖“答案==标准答案”? 如果是,说明我们已经有明确标注;SFT 通常先做更划算。
- 我们有多大 GPU/TPU 预算? RL(尤其 GRPO/PPO)往往需要比 SFT 高 2-4 倍的算力。
- 任务对“推理链”可解释性要求高吗? 先 SFT(教会标签格式)再 RL(提升正确率)更容易满足可解释输出。
结论
“先 SFT 再 RL”并非硬性规定,但在绝大多数需要结构化输出、且有可用标注的场景下是最省心、最稳妥的路径。只有当标注极少或任务天然提供可计算奖励时,才会优先考虑“直接 RL”。
RL 常见问题
前文提到的 RL 常见的 KL 爆冲、梯度爆炸、模型崩盘问题,本小节详细介绍。

一般情况下,这三个问题会组成一条「连锁反应」:
KL 爆冲
KL 散度(Kullback–Leibler Divergence)本质上衡量的确实是两个概率分布之间的差距。在 DPO(Direct Preference Optimization)方法中,参考模型(reference model)和 训练中模型(policy model)之间计算的就是 KL 散度。
用简单例子解释一下:
假设默认模型只会讲三句话:“我们好”、“谢谢”、“再见”。
它现在的“说话概率”(也可以叫“原始概率分布”)是:

我们心目中理想的“模型应该说话的概率分布”(目标概率分布)是:

我们希望模型朝着目标概率(Q 分布)学习,但它原本的习惯是当前概率(P 分布)。
这时候,为了知道我们的鹦鹉目前的概率分布 P 与目标概率分布 Q 差距有多远。
- KL 散度越小 = 两个概率越接近。
- KL 散度越大 = 两个概率分布的差距越明显。
在例子中,如果原来模型会说:“我们好(Hello)”,但我们想教它说:"谢谢(Thank you)",那么就有了:
- 一个原始模型的分布(Original distribution):擅长说“我们好”;
- 一个目标模型的分布(Target distribution):我们希望它能学会说“谢谢”。
假设我们给了模型过分高的奖励,比如只要提到“谢谢”,我们奖励20分。

最低0.47元/天 解锁文章
726

被折叠的 条评论
为什么被折叠?



