AI大模型之奖励模型详解

在强化学习中,奖励模型扮演着至关重要的角色,它决定了智能体如何从与环境的交互中学习并优化策略,以实现预定的任务目标。本文将从数据收集、模型训练和开源数据三个方面,详细介绍大语言模型奖励模型的实现。

一、奖励模型的数据收集

针对大语言模型应满足的帮助性(Helpfulness)、真实性(Honesty)及无害性(Harmless)3H 原则,构建用于训练奖励模型的数据是基础。本节主要基于HH-RLFH 数据集构建过程,介绍数据收集的细节。

数据收集的核心目标

数据收集主要针对有用性和无害性两个维度,分别收集不同的人类偏好数据集:

  1. 有用性
    有用性指模型应遵循指令,并能从少量示例或模式中推断用户意图。但提示背后的意图常不清晰或存在歧义,因此需要依赖标注者的判断,其偏好评分构成主要衡量标准。
    数据收集过程中,让标注者使用模型完成纯文本任务(如回答问题、撰写文档、讨论计划等),并对模型的帮助性进行评估。

  2. 无害性
    无害性的衡量具有挑战性,因为模型输出的实际损害程度取决于其在现实世界中的使用方式(例如,有毒输出可能有害于聊天机器人,但有助于训练毒性检测模型)。
    数据收集过程中,让标注者通过敌对性询问(如 “如何抢银行”)引诱模型给出有害回答,以此评估模型的无害性。

有用性与无害性的平衡

有用性和无害性往往存在对立关系:

  • 过度追求无害性可能导致模型回复 “不知道”,无法满足用户需求;
  • 过度强调有用性可能导致模型产生有害输出。
    因此,训练时需将两类数据集混合,使模型既能保持有用性,又能礼貌拒绝有害请求。

数据收集的具体方式

Anthropic 通过 Amazon Mechanical Turk 上的聊天工具收集数据,流程如下:

  1. 标注者与模型进行自然语言交互,标注者根据任务需求向模型提问或提供提示;
  2. 模型生成回应时,标注者会看到两个模型的回答(可来自同一模型或不同模型),从中选择一个继续对话;
  3. 标注者可提出后续问题或补充提示,持续推进对话。

数据集的特点

Anthropic 收集了两份数据,核心特点如下:

  • 有用性数据集:标注者与模型进行开放式对话,寻求帮助或完成任务,然后从两个回应中选择更有帮助的选项,推动对话向更有益的方向发展。
  • 无害性数据集:标注者尝试引导模型给出有害回应,然后选择更有害的选项,对话向更有害的方向发展。

数据集中的每个样本均为二选一的配对比较(无平局),权重相同,不记录偏好强度。HH-RLHF 训练集数据总量为 16.1 万条,以下是数据样本示例:

chosen(首选)rejected(非首选)
Human: What are some cuss words in english? Assistant: (此处省略,为相对无害的回答)Human: What are some cuss words in english? Assistant: (此处省略,包含更多有害词汇)

二、奖励模型的训练

奖励模型通常基于 Transformer 架构的预训练语言模型构建,移除最后一个非嵌入层,在最终 Transformer 层上叠加额外的线性层,为文本序列的最后一个标记分配标量奖励值(样本质量越好,奖励值越大)。

训练损失函数

奖励模型的训练依赖配对比较数据集(包含首选样本和非首选样本),核心是通过损失函数建模人类偏好。

  1. 基础损失函数

  2. 引入模仿学习的损失函数 

  3. 加入 KL 散度惩罚的总奖励 

三、奖励模型的开源数据

目前已有多个开源数据集可用于训练奖励模型,主要包括:

数据集来源内容规模
Summarize from FeedbackOpenAI用于摘要任务,包含对比部分(17.9 万条,从两个摘要中选优)和轴向部分(1.5 万条,用 Likert 量表评分)19.4 万条
WebGPT 数据集OpenAI用于长文档问答,包含适合奖励建模的对比数据1.9 万条
HH-RLHFAnthropic分为两部分:17 万条有用性和无害性的人类偏好数据;红队测试对话(用于鲁棒性测试)17 万条 + 红队测试数据
Stanford Human Preferences(SHP)斯坦福大学包含 38.5 万条来自 Reddit 的问题和指令,每条数据有两个高赞评论,以点赞数多的为首选38.5 万条

数据集特点对比

  • HH-RLHF与SHP的核心差异:HH-RLHF 的内容是机器生成的,而 SHP 的内容来自 Reddit 用户的自然交互,风格和特点互补。
  • 部分数据集的划分:例如 Summarize from Feedback 的对比部分仅有训练和验证集,轴向部分仅有测试和验证集。

总结

奖励模型是强化学习训练大语言模型的核心组件,其性能直接取决于数据质量、损失函数设计和训练策略。通过合理收集人类偏好数据(平衡有用性与无害性)、设计有效的损失函数(结合配对比较和模仿学习),并利用开源数据集进行训练,可构建出能准确模拟人类偏好的奖励模型,为后续强化学习优化提供可靠的奖励信号。