一、奖励模型概述
什么是奖励模型
奖励模型,说白了就是一个「打分器」。
你给它一段文本,它告诉你这段文本好不好。好在哪里?不好在哪里?它用分数说话。
我刚开始接触这个概念时,也觉得挺玄乎。后来做项目多了,慢慢就理解了——奖励模型本质上是一个回归模型,输入是文本序列,输出是一个标量分数。
举个例子:
输入: "今天天气真好,适合出去散步。"
输出: 0.92 (高分,表示这段文本质量很高)
输入: "今天天气真好,适合出去散散步步步步。"
输出: 0.31 (低分,因为出现了重复、不流畅的问题)
嗯,这里要注意:奖励模型不是随便打分的。它需要经过大量人工标注数据的训练,才能学会人类的偏好。
核心要点:奖励模型 = 人类偏好的「数字化代理人」
它把人类对文本质量的判断,转化成了一个可计算的分数。
奖励模型在RLHF中的作用
RLHF(Reinforcement Learning from Human Feedback)是目前大模型对齐的主流方法。奖励模型在其中扮演什么角色?我习惯用一个比喻来解释:
策略模型是学生,奖励模型是老师。
学生(策略模型)写作业,老师(奖励模型)批改打分。学生根据分数调整自己的写作方式,争取下次拿更高分。
具体流程是这样的:
- 生成阶段:策略模型生成一批回答
- 打分阶段:奖励模型给每个回答打分
- 学习阶段:策略模型根据分数调整参数,让高分回答的概率变大
我在项目中遇到过一个问题:如果奖励模型打分不准,策略模型就会「学歪」。比如奖励模型偏好长句子,策略模型就会拼命写长句,哪怕内容啰嗦重复。
避坑指南:我曾经因为奖励模型训练数据不够多样,导致策略模型学会了「讨好」奖励模型,而不是真正提升文本质量。后来我增加了对抗样本,才解决了这个问题。
奖励模型与策略模型的关系
这两个模型的关系,你想想看,其实挺微妙的。
| 维度 | 奖励模型 | 策略模型 |
|---|---|---|
| 目标 | 评估文本质量 | 生成高质量文本 |
| 输入 | 文本序列 | 提示词(prompt) |
| 输出 | 一个分数 | 一段文本 |
| 训练方式 | 监督学习(基于人工标注) | 强化学习(基于奖励模型打分) |
| 更新频率 | 较低(训练好后基本固定) | 较高(每轮迭代都在更新) |
说白了,奖励模型是「裁判」,策略模型是「运动员」。裁判不能下场踢球,运动员也不能自己给自己打分。
但这里有个关键点:奖励模型必须比策略模型「聪明」。如果裁判水平不如运动员,那比赛就没法看了。
我个人习惯的做法是:奖励模型的参数量通常是策略模型的 1/3 到 1/2。太小了学不到复杂偏好,太大了训练成本太高。
实战经验:我建议奖励模型和策略模型使用相同的 tokenizer 和词表。这样可以避免编码不一致导致的分数偏差。我曾经踩过这个坑,两个模型词表不同,奖励模型对某些 token 的编码方式不一样,打分就乱了。
知识体系结构图
下面这张图展示了奖励模型在 RLHF 中的位置,以及它和策略模型的关系:
总结一下
奖励模型不是什么神秘的东西。它就是一个人工标注偏好的「数字化替身」。
- 它的输入:一段文本
- 它的输出:一个分数
- 它的作用:告诉策略模型「这样做更好」
- 它的训练:基于人类标注的偏好数据
记住一句话:奖励模型的质量,直接决定了 RLHF 的上限。模型训练得再好,如果奖励模型本身是「瞎子」,那一切都是白搭。
我在后续的章节中会详细讲如何设计奖励模型架构、如何标注数据、如何训练和评估。但今天这一章,先把概念理清楚。概念不清,后面全是坑。
一句话总结:奖励模型 = 人类偏好的「打分器」,策略模型 = 根据分数「改进」的生成器。两者配合,才能做出真正对齐人类需求的大模型。