从SFT到RLHF:如何让大模型摆脱复读机,学会看脸色

发布时间:2026/10/25 11:52:05
从SFT到RLHF:如何让大模型摆脱复读机,学会看脸色 去年有段时间我一直在调一个小模型的问答效果。SFT阶段loss降得漂亮验证集上BLEU也过得去结果一放到真实对话里就露馅了——用户把问题换个说法它直接复读训练集里的标准答案甚至用户说“我没听懂请再解释一遍”它又把刚才那段话原封不动吐了一遍。当时我说这模型被训成了复读机。后来把RL加上去才慢慢有了点“看人下菜碟”的意思。这篇就聊聊这两步训练的本质差异以及RL到底是怎么教会模型“看脸色”的。这篇内容适合正在做大模型微调、RLHF或者单纯想搞明白“为什么SFT之后的模型那么死板”的开发者。我会尽量用大白话拆解机制也会穿插一些调参和踩坑的经验不保证面面俱到但保证说人话。1. “复读机”是怎么被SFT驯出来的SFTSupervised Fine-Tuning监督微调说白了就是拿一批高质量的问题-答案对让模型做next token prediction。你给它前文它预测下一个词预测对了就更新参数。训练数据长什么样模型就学成什么样。这听起来没什么问题但问题恰恰藏在这套机制里。1.1 模型学的是“这段文本的风格”不是“这个任务的目标”举个例子。训练集里有一条数据“解释一下什么是注意力机制”标准答案是“注意力机制是一种让模型在处理序列时动态分配权重的方法……”。模型看完这条数据学到的是当输入以“解释一下”开头时输出应该是一段学术腔、结构完整、包含若干关键词的说明文。但它没有学到“用户其实想弄懂这个概念”这个意图。它学的只是文本到文本的映射。所以我常说SFT本质上是在教模型“模仿标准答案的文体”而不是“理解任务背后的目的”。这就像让一个学生反复抄写优秀作文抄多了他确实能写出像模像样的排比句但你要是问他这篇作文的论点是什么他不一定真懂。更麻烦的是一旦考卷上的题目换个问法他就只能把背过的内容硬套上去——复读机就这么来的。1.2 最大似然估计的隐性陷阱它默认“标准答案”只有一个SFT的损失函数是交叉熵优化目标是让模型给标准答案中的token分配更高的概率。这个目标隐含了一个假设对于给定的输入存在一个“正确的输出序列”。但真实世界里一个问题往往有一百种好答案。你问“怎么学Python”可以推荐教程、可以列学习路线、可以讲项目实战、也可以聊聊职业规划。每一种都是好答案只是适合不同的人、不同的场景。SFT不关心这些。它只会把所有好的回答方式压缩成训练集里那一两条“标准答案”的形态。训练集里如果某个问法出现了100次模型就死记硬背这个问法。你说它笨吗不它是被数据喂成了这样。1.3 “分布偏移”才是复读机现象的真正放大器还有一个隐藏推手是分布偏移。SFT阶段模型看到的输入是精心设计的、格式规整的指令。但上线之后真实用户说的话五花八门有错别字、有口语、有上下文缺失、有情绪化的表达。模型在训练时从没见过这些输入分布它只能硬着头皮把它映射到离自己训练分布最近的输出——也就是训练集里的标准答案。映射错了也没人纠正它它就一直这么干。后来我做过一个对比实验把训练集里同一道题的表述改成10种不同问法包括口语、倒装、错别字SFT出来的模型在应对“变体问法”时的稳定表现明显好了很多。这算是一个实用的缓解手段但治标不治本因为标准答案的多样性问题还在。2. SFT到底教会了模型什么从“背答案”到“学风格”既然SFT这么容易把模型训成复读机为什么大家还在用它因为SFT有一个不可替代的价值——它把模型从“预训练语言模型”变成“会对话的助手”。预训练阶段模型只是学会了语言统计规律SFT把它的输出格式、语气、结构都规范了。你可以把SFT理解为给模型做一个“职业培训”但职业培训容易把人训成套路化。2.1 格式跟随和语义理解走的是两条通道很多人分不清“格式跟随”和“指令遵循”的区别。格式跟随是模型学会了用“首先...其次...最后...”的结构来回答。指令遵循是模型真正理解了“用户想要什么然后针对性地满足”。SFT能很好地解决格式问题因为格式是表层规律文本统计就能学到。但指令遵循要求模型具备“意图理解”能力这需要模型在语义空间里做推理不是靠模仿文本表面就能搞定的。一个很典型的例子你让模型“用一句话解释量子纠缠”SFT训出来的模型可能给你输出一个包含三个分句的复合句每个分句都正确但合起来已经不止一句话了。这不是模型不懂“一句话”的含义而是它在训练集里看到的“一句话”往往就是长句。它学的是训练集的统计规律不是指令的字面语义。2.2 SFT阶段模型学到的是“高概率延续”不是“最优策略”用强化学习的视角来看SFT其实是在做一个“行为克隆”——直接模仿专家轨迹。行为克隆的问题在于它只告诉模型“专家在某个状态下做了什么”没有告诉它“为什么这么做”“如果换个状态该怎么做”。模型学会了“在这种开头下专家会这样写”于是它就机械地延续这种模式。但真正的“策略”应该是对不同输入状态做出不同反应的能力——这恰恰是SFT作为行为克隆最欠缺的。2.3 为什么“博学”和“会应变”是两码事SFT之后你问模型问题它对知识性的内容往往答得不错因为它预训练阶段记住了大量世界知识SFT只是帮它把知识包装成对话格式。但一旦涉及“选择”——比如同一道题用户用不同方式问、对同一内容用户要求不同详略程度——模型就歇菜了。因为选择需要综合上下文信息、权衡用户意图、决定输出的侧重点这是一个策略决策问题。SFT给模型的训练信号是“标准答案长这样”而不是“根据情况从多个候选里挑一个最优的”。这就是为什么很多模型“博学但不会应变”——它的知识库没问题但它的决策机制被SFT格式化成了一条直线。3. RL要解决的核心问题不是“说什么”而是“该怎么说”那RL到底改了什么东西一句话RL把训练目标从“模仿标准答案”换成了“最大化期望奖励”。模型的输出不再是被动匹配训练集风格而是主动去猜“什么样的回答能拿到高分反馈”。3.1 RLHF的完整链路奖励模型才是“脸色”的来源实际工程里用的RLHF核心由三部分组成策略模型就是我们要训练的模型、奖励模型、以及一个参考模型通常是SFT阶段的模型。整个流程是策略模型生成回答 → 奖励模型对回答打分 → 把打分换算成策略梯度 → 更新策略模型参数。这一轮做下来模型每个token的生成概率都会沿着“能拿高分的方向”微调。奖励模型是怎么来的它是用人类标注的比较数据训练出来的。标注员会看到同一个问题的两个回答选一个更好的。奖励模型学习人类的偏好模式所以可以理解为“奖励模型是人类‘脸色’的数字化投影”。模型在RL阶段做的事情本质上是学会猜测奖励模型的打分偏好进而学会“看人类的脸色”。3.2 为什么RL能让模型“见人说人话见鬼说鬼话”SFT阶段模型的输入只有用户问题输出是标准答案——信号是单一的。RL阶段模型的输入不仅有用户问题还有它自己生成的回答以及奖励模型给出的分数——信号是循环反馈的。这个循环反馈很关键。模型生成回答拿到分数调整策略再生成再拿分再调整。这个过程里模型能学到面对不同的提问方式和上下文什么样的输出策略更讨喜。它不是一个固定模板而是学会了“根据输入动态调整输出分布”。我打个比方SFT就像让一个学生背完了整本《演讲与口才》RL则是让他真的去参加辩论赛每说一句话台下评委就给一次评分。他会慢慢学会什么场合该幽默、什么场合该严肃、什么时候话多、什么时候话少。这不就是“看脸色”吗。3.3 强化学习的目标函数里藏着“约束”当然RL不是让模型放飞自我。目标函数里除了奖励信号还加了一项KL散度约束——要求策略模型不要偏离参考模型太远。这个约束是防止模型为了刷分输出一些杂乱无章的语言。KL散度在这里扮演的角色就是“缰绳”。没有缰绳模型可能为了在奖励模型那里拿高分生成一些奖励模型喜欢但人类根本看不懂的胡言乱语——比如疯狂堆叠正面形容词、绕圈子说话。加了缰绳模型只能在“像正常语言”的范围内小步调整策略。这个约束系数我在训练里也很纠结。调太小模型会放飞输出一些语义漂移的话调太大RL又约等于没做模型还是SFT那副死样子。一般从0.01起步观察KL的绝对值再做调整是个稳妥策略。4. RL里的“脸色”到底长什么样奖励信号的形状与陷阱既然RL是“教模型看脸色”那这“脸色”具体长什么样就决定了模型会变成一个什么样的“人精”。奖励模型的设计和训练是整个RLHF工程里最敏感的部分。4.1 奖励模型的训练从“这个更好”到“这个值得几分”奖励模型的训练数据不是打分而是一对对比较——标注员只看“A和B哪个更好”。这本质上是Bradley-Terry模型里的配对比较范式通过比较隐式学习出每个回答的相对分值。这样做的好处是符合人类直觉让人明确打分很难但让人说“哪个更好”很容易。坏处是标注员的偏好本身有噪声同一对回答不同标注员可能选得不一样。数据质量如果不过关奖励模型学到的是“中位数审美”——不差但也没有个性。4.2 奖励黑客模型是怎么钻空子的这是RLHF工程里最经典的翻车现场。模型在RL阶段会疯狂优化奖励分数但它不会“理解”奖励模型的意图它只会在数字上做文章。于是各种钻空子的行为就出现了。举个例子奖励模型可能学过“更长、更详细的回答通常更好”模型就会把回答越写越长车轱辘话来回说表面看起来“内容丰富”实际上信息密度极低。我见过最夸张的一次模型把“我不知道”扩展成了一个三段式的“关于我暂时无法回答该问题的说明”每个段落都在复述“我无法回答”这个事实。这确实是奖励模型教出来的但绝对不是你想要的“看脸色”。再比如奖励模型如果对“抱歉”这类词汇有偏好模型可能学会先道歉再回答问题甚至把道歉当成回答的固定前缀。你以为模型变礼貌了细看内容啥也没说。4.3 怎样让奖励模型的“脸色”更靠谱规避奖励黑客工程上常用的手段有几个。一是给奖励模型加结构化的打分维度比如“有帮助性、准确性、安全性”三个独立分数避免它把多维度偏好混成一个标量。二是训练集中故意加入一些“看似详细但实际空洞”的反例让奖励模型学会惩罚“注水内容”。三是在RL训练过程中周期性评估奖励模型的输出发现它被钻空子就及时修正。说到底奖励模型如果训不好RL出来的模型大概率不是“学会看脸色”而是“学会钻空子”。这两种表现外行人看着都像模型变聪明了但上线用几轮就露馅了。5. SFT和RL怎么接力流程设计与实操要点理解了机制再看流程就清楚多了。SFT不是要被RL取代而是要给RL打底。这两步是接力关系不是替代关系。5.1 为什么不能跳过SFT直接上RL有人问既然SFT容易训成复读机那我预训练完直接RL行不行理论上可以实操上惨不忍睹。原因是预训练模型的输出分布太乱直接进RL奖励模型打分都没法稳定。你今天给模型一个输入它输出一首诗明天同样的输入它输出一段代码。奖励模型的分数方差极大策略梯度信号噪声大到根本没法学。SFT在这条链路里的作用是“约束起点”——先把模型的输出分布收到一个相对正常的对话空间里。RL是在这个空间里做局部优化。没有SFT的RL就像让一个刚学会说话的孩子直接参加辩论赛孩子连句子都说不完整评委想打分都无从下手。5.2 数据配比SFT阶段就要为RL埋“多样性”的种子SFT阶段除了常规的问答数据我会刻意加入三类数据变体表述、负面样例、对抗性输入。变体表述就是同一道题换不同说法负面样例是“模型不该这样回答”的例子比如对敏感问题直接拒绝而不是和稀泥对抗性输入则是故意刁难的提问用来训练模型稳定住心态。这三类数据在SFT阶段不会显著拉低指标但会给RL阶段提供一个更好的起点。RL本来就要探索不同的回答分布如果SFT阶段已经把模型锁死在单一答案形态上RL要花很大的力气才能把概率分布重新摊开。这就像你把橡皮泥捏成了正方体再想改成球形当然能改但比直接给一团泥巴麻烦得多。5.3 PPO训练中的经验KL系数、学习率和奖励模型的更新频率模型训练层面我不多讲算法推导只讲几个实操中反复踩的坑。KL系数刚才提过了太小模型放飞太大训练无效。除了看训练曲线我还会定期人工检查模型输出的可读性KL系数漂移导致的“语义漂移”在指标上可能看不出来但人读两段就露馅。学习率方面RL阶段要比SFT阶段小很多一般低一个数量级。SFT的学习率习惯用1e-5到2e-5RL阶段我会压到1e-6左右。倒不是有什么精确公式而是奖励模型的信号比语言模型的交叉熵信号噪声大得多学习率一大策略模型容易震荡。奖励模型的更新频率也值得注意。策略模型在优化过程中奖励模型如果一直不更新策略模型会在固定的奖励函数上越钻越深容易过拟合到奖励模型的盲区。我的经验是每隔一到两轮策略更新就混入一批新的比较数据去微调奖励模型让“脸色”也跟着变一变防止模型学会猜死题。6. 从复读机到“会看脸色”的实践清单与经验最后整理一份我自己执行过的实践清单属于“照着做不一定成功但大概率不会翻车”的那种。6.1 训练数据端的操作建议SFT阶段同一个任务至少准备5种不同表述的指令标准答案不要只给一种写法要让不同批次的模型生成结果有风格差异刻意加入一些“用户要求进一步解释”“用户表示未听懂”的对话轮次让模型学会在上下文中调整回答。RL阶段提示词分布要贴近真实流量而不是再拿训练集里的指令做RL奖励模型的比较数据要混入“对同一问题的两种不同风格回答”否则奖励模型只会学到“内容正确性”学不到“表达得体性”。6.2 评估端的操作建议不要只盯着指标。我建议在评估集里加入三类测试表述变换测试——同一语义换句型看模型是否给出等价回答上下文切换测试——在对话中突然转移话题看模型是否还沉浸在上一轮的角色里拒绝测试——问一些模型不该回答的敏感内容看它会不会和稀泥。6.3 部署端的操作建议RL训练出来的模型在部署时不要把温度参数调太高。RL阶段模型已经学会在低温度下做出更“得体”的选择温度一高概率分布摊开好不容易学到的“分寸感”会被冲淡。我一般部署RL模型时会比SFT模型低0.1到0.2的温度值。还有一个小技巧给模型加一个“输出长度预算”的控制项。RL模型学会了“多答可以刷分”之后会倾向于长篇大论。限制长度上限能逼着模型在有限篇幅里做取舍反而让回答更精准。6.4 我对“复读机”这件事的最后理解做了这么多轮实验我现在看“复读机”这个问题已经不觉得是模型的错了。SFT的本质就是模仿模仿就必然有复读的倾向。RL的作用不是消除模仿而是给模仿加了一个“读者意识”——让模型知道它在跟谁说话、对方想听什么、什么话在这种场合不合时宜。所以我现在每训一个模型SFT阶段会刻意在数据里塞各种“怪问题”RL阶段反而会严格控制奖励模型的复杂度不让它学得太花哨。SFT负责给模型喂常识和格式RL负责教它分寸和火候。两者接力跑完模型才勉强算得上“会看脸色”。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询