AI大模型:语言模型训练范式-03奖励模型(Reward Model)

6 阅读16分钟

🎯 Reward Model(奖励模型)

一、什么是 Reward Model?

Reward Model(奖励模型) 是一个独立的神经网络,它的任务是:给任意一个(Prompt, Response)对打一个分数,表示这个回答的“质量”或“符合人类偏好的程度”。

  • 输入(prompt, response)
  • 输出:一个标量分数(例如 0.5 表示一般,0.9 表示非常好)

🧱 类比:想象你是一个老师,你想让一个学生学会写作文。但你不可能每篇作文都亲自批改。于是你训练了一个“自动阅卷机器人”,它能够快速给任意作文打分。这个机器人就是 Reward Model。


二、为什么需要 Reward Model?

2.1 评估的困境

PDF 第 104 页指出:

“评估是一个很难的事情。评估一个模型的整体能力,评估一个问题回答的如何。”

具体难点:

  • 主观性:什么样的回答是“好”?不同人有不同标准。
  • 多维度:好的回答需要同时满足有用、无害、有趣、简洁、准确等多个标准。
  • 成本高:如果每次模型生成一个回答都要让人来评分,训练将极慢极贵。

2.2 SFT 的局限

如我们之前所讲,SFT 后的模型已经能“做任务”,但还不够优秀。它可能会:

  • 回答啰嗦冗长
  • 偶尔不相关
  • 可能产生不安全内容

要想让模型进一步提升,我们需要一个可量化的优化目标。这个目标就是 Reward Model 给出的分数。然后我们使用强化学习(PPO/DPO)来最大化这个分数。

2.3 为什么不能直接用人工评分作为训练信号?

理论上可以,但现实中不可行:

  • 训练需要数百万次生成-评分循环,人工做会累死且贵死。
  • 模型需要实时反馈,人工做不到毫秒级响应。

因此,我们训练一个 Reward Model 来模拟人类偏好,然后用它作为“代理评分员”。


三、数据从哪里来?—— 人类偏好标注

3.1 标注流程(以 InstructGPT 和 Llama 为例)

PDF 第 106-110 页详细描述了流程。以下综合整理:

Step 1:准备 prompts

  • 收集几万到几十万条 prompts(用户可能问的问题)。来源可以是真实用户日志、人工编写、公共数据集等。

Step 2:生成多个 responses

  • 用当前的 SFT 模型(或基础模型)对每个 prompt 生成多个回答,通常 4~9 个。

Step 3:人类标注员排序

  • 标注员看到同一个 prompt 下的多个回答,按照质量从最好到最差排序
  • PDF 第 110 页提到 Llama 使用了更细粒度的分类:significantly better, better, slightly better, marginally better(显著更好、更好、略好、稍微好),并要求标注员对最佳回答进行编辑改进,形成“编辑后 > 选中的 > 拒绝的”三级数据。

Step 4:构建成对偏好数据

  • 从排序结果中,生成若干 (chosen, rejected) 对(优选回答 vs 劣选回答)。

为什么排序而不是直接打分?
研究表明,人类对“相对好坏”的判断比对“绝对分数”的判断更一致、更可靠。同一个回答,不同人的打分可能差很多,但谁好谁差通常能达成共识。

3.2 标注员的真实情况

PDF 第 108 页提到:

“找一批人来做标注工作(肯尼亚 2 美元每天的标注工)”

确实有媒体报道 OpenAI 等公司雇佣了肯尼亚、乌干达等地的外包人员,时薪不到 2 美元,进行有害内容过滤和偏好标注。这引发了伦理争议,但也是行业早期的现实。

标注品质:并非所有标注工都不专业。通常公司会进行培训、设置质量控制(如多个人标注同一条,计算一致性),并支付合理工资。PDF 提及的 2 美元/天可能是指某个时期或特定项目,不是统一标准。

3.3 数据规模与成本(修订说明)

  • Prompts 数量:常见规模为几万到几十万。
  • 每个 prompt 生成的 responses:通常 4~9 个。
  • 总标注比较次数:几十万到百万级别。
  • 标注成本:取决于 prompts 数量和校验次数。对于数万条 prompts,成本可能在数万美元;对于数十万条(加上多人交叉校验),可能高达数十万到一百万美元

⚠️ 注:PDF 中提到的肯尼亚标注工成本极低(2 美元/天),但这类标注通常用于简单分类,而非复杂的排序任务。业内偏好排序标注的典型价格是每小时 10-20 美元(欧美外包)或更低一些(其他地区)。


四、Reward Model 的训练方法

4.1 模型架构(修订说明)

Reward Model 通常复用预训练语言模型的 transformer 部分,但在最后一层隐藏状态上添加一个线性回归头(value head),输出一个标量分数。原始的语言建模头(预测下一个 token 的分类层)被移除或忽略。

具体来说:

  • 输入 prompt 和 response 拼接成一个序列。
  • 经过 transformer 编码后,取最后一个 token(通常是 EOS 或 padding 位置) 的 hidden state。
  • 将该 hidden state 通过一个线性层(+ 可选激活函数)映射到 1 维,得到分数。

参数规模:RM 的参数规模可以是与目标语言模型相当(以获得最佳判断力),也可以更小(以节省计算)。例如 InstructGPT 使用 6B RM 来指导 175B 语言模型。常见选择是与目标语言模型使用相同的 tokenizer 和类似的 transformer 架构,以便于复用和训练。

4.2 损失函数(修订说明)

对于每个 (chosen, rejected) 对,我们希望 RM 给 chosen 的分数比 rejected 的分数高。常用的 pairwise ranking loss 为:

Loss = -log(σ(score(chosen) - score(rejected)))

其中 σ 是 sigmoid 函数。这个损失鼓励差值尽可能大。

当每个 prompt 有多个 responses 排序时(如 4-9 个),可以:

  • 构造多个 pairwise 对(例如将最佳与其余配对),然后求平均损失。
  • 或使用 Listwise 损失(如 Plackett-Luce 模型),一次性利用所有排序信息。Llama 2 论文中采用了 pairwise 损失的多对扩展。

4.3 训练细节

  • 批处理:每次取一个 batch 的 (prompt, chosen, rejected) 三元组。
  • 学习率:通常较小(如 1e-5 ~ 1e-6),避免破坏预训练知识。
  • Epoch 数:1~3 个 epoch,避免过拟合到标注噪声。

4.4 验证与评估

  • 留出一部分标注数据作为验证集,计算 RM 的 pairwise 准确率(即 chosen 分数 > rejected 分数的比例)。
  • 根据 InstructGPT 论文,RM 在验证集上的准确率约为 72%,与人类标注员之间的一致性(约 73%)相当。Llama 2 报告类似水平(70%~80%)

五、Reward Model 在 RLHF 中的角色

5.1 RLHF 标准流程(InstructGPT 风格)

预训练模型 → SFT → Reward Model → PPO 优化
                        ↑
                    (提供奖励信号)
  1. SFT 模型生成回答。
  2. PPO 算法调整模型参数,目标是最大化 RM 给出的分数。
  3. 迭代:模型改进后,可能会生成新的回答,RM 给出新分数,继续优化。

5.2 RM 是“目标函数”的代理

在强化学习中,我们需要一个奖励函数。如果我们直接用人工偏好作为奖励(例如每次生成后让人打分),太慢太贵。因此,我们用一个学到的 RM 来近似真实的人类偏好。

🧱 类比:你想训练一个围棋 AI。你不可能每下一步都问一个职业棋手“这步好不好”。所以你训练了一个“棋局评估器”,它能快速给每个局面打分。这个评估器就是 Reward Model。

5.3 Llama 的变体:不直接使用 RM 做优化

PDF 中 Llama 流程是:Pretrain → RM → Rejection Sampling → SFT → DPO。这里的 RM 并不是直接用于强化学习,而是用于数据筛选(拒绝采样)——先用 RM 给生成回答打分,筛选出高分回答作为 SFT 的数据,然后再用 DPO(不需要 RM)进行偏好优化。

两种模式各有优劣:

  • PPO + RM:可以在线迭代,适应性更强,但复杂。
  • Rejection Sampling + DPO:简单稳定,适合开源社区,但需要前期有高质量的 RM。

六、Reward Model 的局限与挑战

6.1 过度优化(Overoptimization)

当 PPO 过度追求 RM 的高分时,模型可能会**“钻空子”**,生成一些 RM 认为高分、但人类实际不喜欢的内容。例如:

  • 啰嗦冗长的回答(RM 误认为详尽就是好)
  • 谄媚或虚伪的回应
  • 利用 RM 的漏洞(adversarial examples)

这种现象被称为 Goodhart's Law:当一个指标成为目标时,它就不再是一个好的指标。

缓解方法

  • 使用多个 RM 集成
  • 加入 KL 惩罚(Kullback-Leibler 散度),限制优化后的模型不要偏离 SFT 模型太远,以免生成反常内容
  • 定期让人类评估,调整 RM

6.2 标注偏差与噪声

  • 标注员自身的偏好(如有些人喜欢简洁,有些人喜欢详细)会引入偏差。
  • 不同标注员之间的低一致性(例如只有 70% 的一致率)会限制 RM 的上限。

6.3 难以覆盖所有维度

一个好的回答涉及安全性、事实准确性、帮助性、简洁性等多个维度,但 RM 只输出一个分数,很难平衡所有。一些改进方法是训练多维度 RM(每个维度一个分数)或者使用条件 RM(根据指示侧重某维度)。

6.4 分布外泛化问题

RM 只在训练时的 prompts 和 responses 分布上表现好。如果新的 prompt 或模型生成风格变化很大,RM 的评分可能不再准确。这也是为什么需要迭代部署:用新的模型生成数据,重新标注,更新 RM。


七、成本与时间估算

项目估算值(修订说明)备注
Prompts 数量几万~几十万常见规模
标注人力每条 prompt 排序 4-9 个 responses 需 2-5 分钟含多人交叉校验
标注总成本数万美元(小规模)~100 万美元(大规模)取决于 prompts 数量、校验次数、人力地区
训练 RM 的 GPU 资源与 SFT 类似(7B 模型单卡,70B 需多卡)通常 1-3 天
RM 训练时间几小时到几天-

相比预训练,RM 的成本中等;相比 SFT 的数据标注可能更高(因为需要排序多个回答),但远低于预训练的数亿美元。


八、总结

维度内容
定义一个独立的打分模型,输入 (prompt, response),输出质量分数
为什么需要无法用人实时评分,需要一个自动的“偏好代理”
数据来源人类标注员对同一 prompt 的多个回答进行排序
训练方法复用 transformer + 线性回归头;使用 pairwise 或 listwise ranking loss
典型准确率约 72%(InstructGPT),70%~80%(Llama 2)
在 RLHF 中的角色为 PPO 提供奖励信号(GPT 风格),或用于筛选数据(Llama 风格)
主要挑战过度优化、标注偏差、维度单一、分布外泛化
成本数据标注数万~100 万美元 + 训练数千美元

一句话总结

Reward Model 是 RLHF 的“裁判”,它把人类复杂的偏好浓缩成一个可计算的分数,让强化学习有机会优化模型。但它不是完美的裁判——过度依赖它可能导致模型“钻空子”,因此需要与人类评估、KL 惩罚等手段配合使用。


📌 本文基于您提供的 PDF 内容及公开技术资料(InstructGPT、Llama 2/3 论文)整理。标注成本等为业界常见估算,非官方精确数字。
如需继续深入了解 PPO(近端策略优化)DPO(直接偏好优化)Rejection Sampling,请告诉我。

您说得对,Reward Model(奖励模型)章节也缺少了专业术语表参考对比表。以下是 RM 章节的补充附录,建议直接添加到《Reward Model(奖励模型)完整详解》的末尾。


附录 A:专业术语表(Reward Model 相关)

术语英文通俗解释技术定义
奖励模型Reward Model (RM)一个给“问题-回答”对打分的自动评分器输入 (prompt, response),输出标量分数,用于衡量回答质量
偏好排序Preference Ranking人类标注员对同一个问题的多个回答从好到差排序排序结果用于构建 (chosen, rejected)
成对比较Pairwise Comparison把两个回答放在一起比谁更好从排序中抽取所有可能的 (好, 差)
Pairwise 排序损失Pairwise Ranking Loss训练 RM 时用的损失函数-log σ(score(chosen) - score(rejected)),鼓励好回答得分更高
Listwise 损失Listwise Loss利用完整的排序列表进行训练如 Plackett-Luce 损失,一次性考虑所有响应的排序
价值头Value HeadRM 模型最后用于输出分数的线性层接在 transformer 最后一层 hidden state 上的全连接层,输出 1 维
过度优化Overoptimization模型为了高分而钻空子,实际效果变差Goodhart's Law:当指标成为目标时,就不再是好指标
KL 散度KL Divergence衡量两个概率分布差异的指标PPO 中用 KL 惩罚限制新策略不要偏离 SFT 模型太远
标注一致性Annotator Agreement不同标注员对同一条数据判断的相似度通常用 Fleiss' Kappa 等指标衡量,高一致性代表数据质量高
对抗样本Adversarial Example特意设计来欺骗模型的输入在 RM 上下文中指能骗 RM 打高分但实际很差的回答
集成 RMEnsemble RM多个 RM 投票,减少单个 RM 的偏差训练多个不同初始化的 RM,取平均分数或做一致性过滤

附录 B:Reward Model vs SFT vs PPO/DPO 对比表

对比维度SFTReward ModelPPO / DPO
任务类型有监督学习偏好建模(排序学习)强化学习 / 直接偏好优化
输入(instruction, response)(prompt, response)prompt(生成 response 后获得奖励)
输出生成的回答(序列)一个标量分数生成的回答(序列)
损失函数交叉熵Pairwise / Listwise 排序损失PPO: 裁剪代理目标;DPO: 分类损失
是否需要人工标签✅ 需要标准回答✅ 需要偏好排序❌ 不需要新标签(利用 RM 或已有偏好)
主要作用让模型学会“做任务”提供自动评分信号让模型学会“偏好”
产物指令微调模型可复用的打分器对齐后的助手模型
在 RLHF 流程中的位置第 2 步第 3 步第 4 步
典型数据量几万~几十万条 (指令,回答)几万~几十万条 prompt(每个带 4-9 个 response 排序)无需新数据(利用 RM 采样)

附录 C:RM 训练中的常用符号与公式说明

符号含义在 RM 中的作用
( r_\phi(p, r) )奖励模型打分参数为 ( \phi ) 的 RM 对 (prompt, response) 的输出
( y_w, y_l )选中的回答、被拒绝的回答从人类偏好排序中构建的 pairwise 对
( \mathcal{D}_{\text{pref}} )偏好数据集包含 (prompt, y_w, y_l) 三元组的集合
( \sigma(x) )sigmoid 函数 ( 1/(1+e^{-x}) )将分数差值映射到 (0,1) 作为偏好概率
( \mathcal{L}_{\text{pairwise}} )Pairwise 排序损失( -\log \sigma(r_\phi(p, y_w) - r_\phi(p, y_l)) )
( \mathcal{L}_{\text{listwise}} )Listwise 损失(如 Plackett-Luce)( -\sum_{i} \log \frac{\exp(r_\phi(p, y_{\pi(i)}))}{\sum_{j\geq i} \exp(r_\phi(p, y_{\pi(j)}))} )
( \epsilon )裁剪范围(用于 PPO)限制新旧策略概率比,不直接用于 RM
( \beta_{\text{KL}} )KL 惩罚系数在 RLHF 中用于平衡奖励和 KL 散度
( \text{Acc}_{\text{pair}} )Pairwise 准确率( \frac{1}{|\mathcal{D}_{\text{val}}|} \sum \mathbf{1}[r(p, y_w) > r(p, y_l)] )

附录 D:常用缩略语对照表(RM 补充)

缩略语全称中文
RMReward Model奖励模型
RLHFReinforcement Learning from Human Feedback基于人类反馈的强化学习
PPOProximal Policy Optimization近端策略优化
DPODirect Preference Optimization直接偏好优化
SFTSupervised Fine-Tuning有监督微调
BCEBinary Cross Entropy二分类交叉熵
KLKullback-Leibler DivergenceKL 散度(相对熵)
GAEGeneralized Advantage Estimation广义优势估计(用于 PPO 的价值估计)
FLOPsFloating Point Operations浮点运算次数(衡量计算量)
H100NVIDIA H100 Tensor Core GPU英伟达 H100 加速卡

附录 E:RM 标注数据规模的业界参考

模型 / 项目Prompt 数量每个 Prompt 的 Response 数总标注比较次数标注人力成本估算
InstructGPT约 50k4-9 个约 1M 个 pairwise 比较不明(未公开)
Llama 2约 100k4-9 个约 2M 个 pairwise 比较不明(未公开)
Anthropic HH约 170k2 个(单轮对话)约 170k 个二进制偏好公开数据集
UltraFeedback约 64k4 个约 384k 个 pairwise社区开源
HelpSteer约 10k2 个(带多维度评分)约 10k 个(可衍生多偏好)开源

说明:以上为公开信息,商业模型的精确数据一般不披露。标注成本因地区、复杂度和质量要求差异很大,保守估计数万到数十万美元。


附录 F:RM 评估指标与目标值参考

指标定义典型目标值说明
Pairwise 准确率对验证集中 (chosen, rejected) 对,RM 给 chosen 更高分数的比例70% ~ 80%InstructGPT 约 72%,人类标注员一致性约 73%
Spearman 相关系数RM 分数与人类排序的相关性0.6 ~ 0.8衡量排序一致性
KL 散度(训练时)新策略与 SFT 模型的分布差异通常控制在 2~6过高表示模型偏离太远,易胡言乱语
奖励黑客发生率模型生成被认为高分但实际低质的比例越低越好需定期人工抽查

附录 G:RM 训练超参数推荐范围(参考 InstructGPT 及开源实现)

超参数典型范围说明
学习率1e-5 ~ 1e-6通常比 SFT 稍小
Epoch1 ~ 3避免过拟合
批量大小32 ~ 128(pairwise 对)每 batch 包含多个 (prompt, chosen, rejected)
最大序列长度512 ~ 2048取决于 prompt + response 长度
优化器Adam / AdamW常用
权重衰减0.01 ~ 0.1正则化
梯度裁剪1.0防止梯度爆炸
学习率调度线性衰减 + warmupwarmup 步数占总步数 1~5%