一、奖励模型概述

什么是奖励模型

奖励模型,说白了就是一个「打分器」。

你给它一段文本,它告诉你这段文本好不好。好在哪里?不好在哪里?它用分数说话。

我刚开始接触这个概念时,也觉得挺玄乎。后来做项目多了,慢慢就理解了——奖励模型本质上是一个回归模型,输入是文本序列,输出是一个标量分数。

举个例子:

输入: "今天天气真好,适合出去散步。"
输出: 0.92  (高分,表示这段文本质量很高)

输入: "今天天气真好,适合出去散散步步步步。"
输出: 0.31  (低分,因为出现了重复、不流畅的问题)

嗯,这里要注意:奖励模型不是随便打分的。它需要经过大量人工标注数据的训练,才能学会人类的偏好。

核心要点:奖励模型 = 人类偏好的「数字化代理人」

它把人类对文本质量的判断,转化成了一个可计算的分数。

奖励模型在RLHF中的作用

RLHF(Reinforcement Learning from Human Feedback)是目前大模型对齐的主流方法。奖励模型在其中扮演什么角色?我习惯用一个比喻来解释:

策略模型是学生,奖励模型是老师。

学生(策略模型)写作业,老师(奖励模型)批改打分。学生根据分数调整自己的写作方式,争取下次拿更高分。

具体流程是这样的:

  1. 生成阶段:策略模型生成一批回答
  2. 打分阶段:奖励模型给每个回答打分
  3. 学习阶段:策略模型根据分数调整参数,让高分回答的概率变大

我在项目中遇到过一个问题:如果奖励模型打分不准,策略模型就会「学歪」。比如奖励模型偏好长句子,策略模型就会拼命写长句,哪怕内容啰嗦重复。

避坑指南:我曾经因为奖励模型训练数据不够多样,导致策略模型学会了「讨好」奖励模型,而不是真正提升文本质量。后来我增加了对抗样本,才解决了这个问题。

奖励模型与策略模型的关系

这两个模型的关系,你想想看,其实挺微妙的。

维度 奖励模型 策略模型
目标 评估文本质量 生成高质量文本
输入 文本序列 提示词(prompt)
输出 一个分数 一段文本
训练方式 监督学习(基于人工标注) 强化学习(基于奖励模型打分)
更新频率 较低(训练好后基本固定) 较高(每轮迭代都在更新)

说白了,奖励模型是「裁判」,策略模型是「运动员」。裁判不能下场踢球,运动员也不能自己给自己打分。

但这里有个关键点:奖励模型必须比策略模型「聪明」。如果裁判水平不如运动员,那比赛就没法看了。

我个人习惯的做法是:奖励模型的参数量通常是策略模型的 1/3 到 1/2。太小了学不到复杂偏好,太大了训练成本太高。

实战经验:我建议奖励模型和策略模型使用相同的 tokenizer 和词表。这样可以避免编码不一致导致的分数偏差。我曾经踩过这个坑,两个模型词表不同,奖励模型对某些 token 的编码方式不一样,打分就乱了。

知识体系结构图

下面这张图展示了奖励模型在 RLHF 中的位置,以及它和策略模型的关系:

奖励模型在RLHF中的核心位置 策略模型 生成文本 输入:prompt 输出:文本序列 奖励模型 评估文本质量 输入:文本序列 输出:标量分数 人类反馈 标注偏好数据 训练奖励模型 提供对齐信号 生成文本 反馈分数(强化学习信号) 标注数据 核心流程 1. 人类标注偏好数据 → 训练奖励模型 2. 策略模型生成文本 → 奖励模型打分 3. 分数反馈给策略模型 → 策略模型更新参数 4. 重复步骤2-3,直到策略模型输出质量达标

总结一下

奖励模型不是什么神秘的东西。它就是一个人工标注偏好的「数字化替身」。

  • 它的输入:一段文本
  • 它的输出:一个分数
  • 它的作用:告诉策略模型「这样做更好」
  • 它的训练:基于人类标注的偏好数据

记住一句话:奖励模型的质量,直接决定了 RLHF 的上限。模型训练得再好,如果奖励模型本身是「瞎子」,那一切都是白搭。

我在后续的章节中会详细讲如何设计奖励模型架构、如何标注数据、如何训练和评估。但今天这一章,先把概念理清楚。概念不清,后面全是坑。

一句话总结:奖励模型 = 人类偏好的「打分器」,策略模型 = 根据分数「改进」的生成器。两者配合,才能做出真正对齐人类需求的大模型。


专注资料整理