奖励模型(RMs)学习一个将提示-响应对映射为代表人类偏好的标量分数的函数。我们将审视大型语言模型(LLMs)中这些RMs的常用架构。
鉴于我们的任务涉及理解和评估LLM生成的文本,采用预训练 (pre-training)LLM本身的能力作为RM的支撑是非常有效的。最常见且成功的方法是调整一个预训练的Transformer模型,通常是SFT阶段甚至最终策略模型所用的基础模型,来执行这个评分任务。
使用预训练 (pre-training)语言模型
核心思路是取一个预训练的LLM(如GPT、Llama、Mistral等),并修改其最后一层。不同于预测下一个词元 (token)(如标准语言建模),我们在最终隐藏状态表示之上添加一个回归头,通常是一个简单的线性层。这个头被训练以输出一个标量值,RM(提示,响应),它表示在提示语境下给定响应的预测奖励或偏好分数。
为何采用LLM主干?
- 迁移学习 (transfer learning): 这些模型在预训练期间已习得语言、语法、语义乃至一些通用知识的丰富表示。微调 (fine-tuning)此主干使RM能够快速掌握人类偏好在有用性、无害性、风格和事实性方面的细致之处,而非从零开始学习这些文本理解能力。
- 语境理解: Transformer模型擅长处理序列并理解提示与响应之间的关系。这对于判断响应的质量和相关性非常重要。
- 架构一致性: 对SFT模型、RM和最终RL策略模型使用相似架构(甚至相同的基本模型)可以简化整体流程,并可能实现参数 (parameter)共享或更稳定的训练动态。
输入表示与输出
RM通常将拼接的提示和响应作为输入。例如,输入序列可能如下所示:[提示词元] [分隔符词元] [响应词元]。
LLM处理这个组合序列。回归头通常应用于与特定词元 (token)对应的隐藏状态,常是序列的最后一个词元(例如,</s>或[EOS]词元)。这个最终隐藏状态被认为编码了整个输入序列(提示和响应)的信息。线性层随后将这个高维隐藏状态向量 (vector)映射到单个标量奖励值。
示意图展示了一种常见的奖励模型架构。提示和响应被拼接并输入LLM主干。线性回归头处理最终隐藏状态,生成一个代表预测偏好的单个标量分数。
架构考量与变体
- 模型大小: RM应该和策略模型大小相同吗?不一定。有时,更大的RM可能更准确地反映偏好,而有时,较小的RM可能已足够且计算成本更低。使用比所训练策略模型大得多的RM是一种常见做法(例如,使用70亿参数 (parameter)的RM来训练10亿参数的策略)。理由是更强大的RM能提供质量更好的奖励信号。然而,这会增加PPO阶段的计算成本,因为评分需要通过这个可能很大的RM进行推理 (inference)计算。
- 共享与独立主干: 虽然通常从相同的预训练 (pre-training)基础初始化,但RM和策略模型在SFT阶段之后通常是分开训练的。RM的权重 (weight)在PPO阶段通常保持冻结。在PPO期间在策略和RM之间共享参数不那么常见,并且会增加复杂性。
- PPO的价值头: 虽然并非严格属于RM架构的一部分,但值得注意的是,在PPO训练期间(下一章会介绍),通常会给策略模型(或其副本)添加一个价值头。这个价值头也是一个输出标量的回归头,但它训练来预测预期未来奖励(价值函数V(状态)),而不是RM分配的即时奖励分数。从架构上看,它与RM的回归头相似,但在RL算法中作用不同。
架构选择涉及性能(RM如何良好地捕捉人类偏好)、计算成本(训练和推理时间/内存)以及RLHF整体流程复杂性之间的权衡。对于大多数应用而言,微调 (fine-tuning)带有标量回归头的预训练LLM提供了一个强大且有效的起点。