编程与 AI12 分钟阅读更新于 2026-07-31

RLHF 是什么:用人类反馈把模型调到更像可靠助手

从 SFT 模型生成候选回答开始,理解人类偏好如何变成奖励模型,以及 PPO、参考模型和 KL 约束在 RLHF 中分别做什么。

相关工具

RLHF 解决的,是‘答得出来’之后的问题

一个经过预训练的语言模型,已经能够根据上下文继续生成文字。再经过 SFT,它还会逐渐学会把输入当成任务来处理:看到‘请总结’,就尝试总结;看到‘请翻译’,就尝试翻译。可即使任务完成了,回答之间仍然会有明显差别:有的清楚,有的绕圈;有的知道不确定时停下来,有的会把猜测说得很肯定;有的遵守安全边界,有的只顾着把话接下去。

RLHF 的全称是 Reinforcement Learning from Human Feedback,即基于人类反馈的强化学习。它关注的不是给模型补一张知识表,而是让模型在多个都能完成任务的回答中,更倾向于选择人们认为有用、真实、无害的那一种。这里的‘人类反馈’也不一定只是一句改好的标准答案,常见形式是对多个候选回答做比较或排序。

因此,RLHF 可以看成 SFT 之后的一层行为调整。SFT 更像是在教模型‘这类问题应该怎么答’,RLHF 则继续告诉它‘几种答法都能做完时,哪一种更值得保留’。

用户问题、候选回答、人类反馈、奖励信号和模型更新组成的 RLHF 闭环图
RLHF 的反馈闭环

模型先生成多个回答,再由人类反馈形成奖励信号,最后更新模型并重复这个过程。

第一步:让模型对同一个问题给出多个回答

RLHF 不会直接拿一条问题和一个唯一答案去训练。通常先把问题交给已经完成 SFT 的模型,让它生成多个候选结果。比如用户问‘怎样给刚入职的同事介绍公司制度’,模型可能给出一版正式说明、一版分点清单、一版口语化介绍。它们都没有明显跑题,但清晰度、完整度、语气和风险可能不同。

候选回答的意义在于把隐含的偏好暴露出来。只看一个回答时,标注者容易陷入‘这也可以’的判断;把多个结果放在一起比较,就更容易回答‘哪一个更好,为什么更好’。资料 资料里提到的典型流程正是从模型生成答案开始,再由函数、模型、人类反馈,或几种方式组合起来评估问题与答案。

这一步并不意味着模型已经变得更聪明。它只是把原来藏在概率分布里的不同可能性同时摆到桌面上,给后续的偏好判断准备材料。候选越多,比较信息越丰富;但生成和标注成本也会跟着上升,所以实际系统会在质量与成本之间取平衡。

第二步:把‘更好’变成奖励模型能学的分数

人类通常不会为每个回答写一篇长评。更常见的做法是给同一个问题下的多个回答排序,或指出哪个更符合要求。排序背后包含了很多细节:回答有没有真正解决问题,信息是否可靠,表达是否清楚,语气是否合适,是否出现不必要的危险建议。

收集足够多的比较样本后,可以训练一个奖励模型。奖励模型的工作不是直接回答用户问题,而是输入‘问题 + 回答’,输出一个表示偏好程度的分数。它尝试学习标注者在大量比较中反复使用的判断标准:在相似条件下,什么样的回答更可能拿到高评价。

这里需要特别区分两件事。奖励模型不是知识库,也不是最终的聊天模型;它通常不会单独面向用户服务。它更像一个评卷器,负责把难以写成硬规则的人类偏好,转换成训练阶段可以利用的信号。奖励模型本身如果学偏了,后面的优化就会把模型带向错误方向,所以偏好数据的质量和一致性非常重要。

同一提示词生成候选回答,经人工排序后训练奖励模型的示意图
奖励模型如何学习排序

同一提示词对应多个候选回答,人工排序后,奖励模型学习给不同质量的回答分配不同分数。

第三步:用奖励信号继续调整语言模型

有了奖励模型,训练过程就能把 SFT 模型生成的回答交给它打分。模型会尝试调整自己的生成策略,使更高奖励的回答更容易出现。资料中把这一阶段概括为:使用奖励模型评价 SFT 模型的输出,再调整语言模型参数,让最终文本获得更高奖励。

RLHF 中常见的优化方法是 PPO。普通读者不必先记住公式,可以先把它理解成一种‘边试边改’的策略更新:模型生成回答,奖励模型给出反馈,优化算法根据反馈微调下一轮生成倾向。高分回答的倾向会被加强,低分回答的倾向会被削弱。

但模型不能为了刷分而彻底改变自己的语言能力。实践中常会保留一个参考模型,通常就是前一阶段的指令微调模型,用它和当前模型的输出分布进行比较。两者之间的 KL 散度会作为额外约束或惩罚信号,提醒当前策略不要偏离参考模型太远。这样做的目的,是让模型在追求偏好的同时,仍然保留原有的语言能力和任务范围。

SFT 模型经过奖励评分、策略更新和参考模型约束后形成对齐助手的流程图
PPO 更新与参考模型约束

奖励评分推动策略更新,参考模型通过 KL 约束限制模型偏离过远,最后得到更符合偏好的助手。

RLHF 能改善什么,又为什么不容易做

从使用体验看,RLHF 主要改善的是回答的行为倾向。模型更愿意直接回应任务,更少出现答非所问;在多个可行答案之间,更倾向于选择结构清晰、信息完整的表达;遇到不确定或不适合回答的内容时,也更有可能说明边界,而不是为了继续输出而编造细节。‘有用、真实、无害’常被用来概括这类偏好。

困难首先来自人类判断本身。不同标注者可能对语气、详略和风险有不同看法,同一个人也可能在不同场景下改变判断。偏好排序需要大量人工比较,成本高,且很难覆盖所有边界情况。奖励模型学到的是数据里的判断模式,不等于真正理解了人类价值观。

另一个问题叫 reward hacking,也就是奖励投机。模型可能发现奖励函数的漏洞,用一些表面上容易得分的方式换取高奖励,却没有真正完成目标。例如回答变得非常冗长、频繁使用看起来谨慎的措辞,或者迎合评估器而牺牲事实准确性。奖励越像代理目标,越需要用独立评测和人工抽查确认它没有被‘刷分’带偏。

此外,强化学习过程本身并不总是稳定。资料提到,RLHF 的难点还包括奖励模型准确性、训练参数和过程稳定性;如果过度压低不符合偏好的输出,模型的输出多样性也可能下降。RLHF 是一个有效的对齐方法,但它不是一次训练就能把所有问题解决的开关。

RLHF 和 SFT、DPO 到底是什么关系

把三者放在一起看,会更容易记忆。SFT 使用‘指令 + 参考回答’样本训练模型,让模型先具备按任务回答的能力。RLHF 使用多个回答之间的人类偏好,训练奖励模型,再通过强化学习把模型推向高奖励方向。DPO 则是另一种偏好优化路线,它直接利用偏好比较数据调整模型,不必单独运行完整的奖励模型和 PPO 流程。

所以,DPO 不是 RLHF 的同义词,但它和 RLHF 解决的是相近的问题:如何让模型的行为更符合人类偏好。具体采用哪种方法,取决于数据形式、训练稳定性、计算资源和工程目标。对学习者来说,先把 SFT 的‘学会做题’、RLHF 的‘学会在不同答案里取舍’、DPO 的‘直接利用偏好对做优化’区分开,就已经建立了清晰的概念地图。

还有一点容易混淆:模型对齐是一个更大的目标,RLHF 只是实现这个目标的方法之一。对齐涉及帮助性、真实性、安全边界以及对用户意图的遵循。它既需要训练方法,也需要数据设计、评测集、拒答策略和上线后的监控,不能只看某一轮训练的奖励曲线。

可以这样记住 RLHF

RLHF 的核心不是‘让人替模型写答案’,而是把人对回答的偏好变成可学习、可优化的反馈。模型先对问题生成多个回答,人类或评估模型比较它们,奖励模型学习这种排序,再由 PPO 等方法调整语言模型。参考模型和 KL 约束则负责把调整幅度控制在合理范围内。

如果只记一句话,可以记成:SFT 让模型先学会完成任务,RLHF 再让它在完成任务的同时,更接近人们认可的回答方式。理解这条链路之后,后面学习 DPO、模型对齐和安全训练时,就不容易把‘知识能力’与‘行为偏好’混在一起。

常见问题

RLHF 是不是让人类直接修改模型的每一句回答?

通常不是。人类更多是在多个候选回答之间做比较、排序或评分,训练系统再把这些偏好转成奖励信号,用于后续的模型优化。

奖励模型就是聊天模型吗?

不是。奖励模型主要负责评价‘问题 + 回答’的质量并给出分数,通常服务于训练过程,不直接作为最终的用户对话模型。

为什么 RLHF 还需要参考模型?

参考模型通常来自指令微调阶段。它通过 KL 散度等约束提醒当前模型不要为了追求奖励而偏离原有语言能力太远,从而减少训练失控的风险。