在人工智能的大语言模型(LLM)训练中,奖励模型(Reward Model, RM)是实现人类反馈强化学习(RLHF)核心组件之一。

下面我来结合两幅图拆解奖励模型的原理和应用方法。


一、奖励模型的结构拆解

如图1所示,展示了奖励模型的结构构建流程:


1. 从语言模型(SFT模型)复制主干网络

左图部分为一个经过监督微调(SFT)的语言模型,它已具备生成合理文本的能力,它由多层 Decoder 组成,经过前馈网络,最终输出Logits。

2. 构建奖励模型(右侧)

奖励模型的主干网络与SFT模型保持一致,直接复制其 Decoder 层。

不同之处在于 LM Head(语言建模头)被替换成 Reward Head:

  • 原LM Head为 Linear(hidden_size → vocab_size),用于输出词表大小的 logits;
  • 奖励模型中的 Reward Head 为 Linear(hidden_size → out_dim = 1),即输出一个标量,用于表示整句话的好坏(奖励得分)。

二、奖励模型的训练流程

图2,展示了奖励模型在具体训练中的应用流程,以下是关键步骤:


1. 构造训练数据:Prompt + 多个回答

给定一个用户输入(Prompt),如“虎皮青椒用什么做?。

收集多个模型生成的回答(a₀ 到 a₅),这些回答风格、准确度、逻辑性可能有所差异。
 

 2. 人类反馈打分

每个回答都由人工或策略生成一个奖励得分(r₀ ~ r₅)。

可以是绝对分数,也可以是相对排序。

3. 输入模型,输出奖励值

每个Prompt + 回答被喂入奖励模型。

奖励模型输出一个标量分数,用于回归/分类学习。

如图所示,每个回答产生一个对应的奖励分数,如 r₀=9.2、r₅=11 等。

4. 损失函数训练

通常使用 Pairwise Loss(一种损失函数):

如果 rA≫rB 即好回答得分远高于差回答,loss 趋近于 0(模型判断正确,损失很小)

如果 rA≤rB loss 趋近于最大值(模型判断错误,被惩罚)

Pairwise Loss一种常用于训练排序模型或奖励模型的损失函数,表示鼓励模型输出更高的分数给更优的回答。若使用标注的绝对分数,也可用 MSE 或 MAE 等回归损失

import            torchimport                   torch.nn.functional                 as                    Fdef pairwise_loss(r_chosen, r_rejected):                       return -F.logsigmoid(r_chosen - r_rejected).mean()
 

三、奖励模型的作用

训练好的奖励模型有两个核心用途:

排序生成结果

  • 多个候选回答中,选择得分最高的作为最终输出。

用于RLHF中的强化学习阶段

  • 奖励模型作为环境,评价策略模型输出的优劣。
  • PPO、DPO等算法用其生成奖励信号,反向更新策略模型权重。
     

未来方向

奖励模型并非完美。一个著名的难题是“奖励黑客”(Reward Hacking)

Al模型可能会发现奖励评分系统的漏洞并加以利用,而不是真正提升内容质量。例如,如果模型发现“长回答“容易得高分,它可能会生成冗长但空洞的废话来“骗取”奖励。

未来的奖励模型可能会向多模态(结合图像、视频等)发展,并探索通过自监督学习减少对昂贵人工标注数据的依赖。

同时,如何设计更公平、透明且可解释的奖励机制,也是重要的研究方向。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐