2 大语言模型基础-2.2 生成式预训练语言模型GPT-2.2.2 有监督下游任务微调-Instruct-GPT强化学习奖励模型的结构改造与维度转换解析

发布于:2025-07-01 ⋅ 阅读:(21) ⋅ 点赞:(0)

2 大语言模型基础-2.2 生成式预训练语言模型GPT-2.2.2 有监督下游任务微调-1.Instruct-GPT强化学习奖励模型的结构改造与维度转换解析

一、预训练模型(如GPT-3)的原始结构 vs 奖励模型结构

RLHF阶段要先在预训练模型基础上微调一个SFT模型出来,然后在SFT基础上做奖励模型,奖励模型把SFT模型的最后一个线性层+softmax层移除,换成一个 d_model × 1 的线性层,从而输出标量的打分值。下面是详细的介绍。

1. 原始GPT-3分类头结构

  • 输入:最后一个编码器输出的隐藏状态向量,维度为 d_model(如GPT-3中小模型d_model=768)。
  • 分类头
    • 线性层(维度转换):d_model × vocab_size(如768 × 50257,vocab_size为词表大小)。
    • Softmax层:将线性层输出转换为概率分布(和为1),用于预测下一个token。

2. 奖励模型的回归头改造

  • 输入:同上,最后一个编码器的隐藏状态向量(维度d_model)。
  • 回归头
    • 移除:原分类头的线性层和Softmax层。
    • 替换:添加一个新的线性层,维度为 d_model × 1,直接输出一个标量值(奖励分数)。
img
二、维度转换实例:以GPT-3小型模型为例

场景:假设GPT-3小型模型的参数如下:

  • 最后一个编码器输出维度:d_model = 768
  • 原词表大小:vocab_size = 50257

1. 原始分类头的维度转换

输入向量维度:768(隐藏状态)  
↓  
线性层权重矩阵维度:768 × 50257  
↓  
线性层输出维度:50257(每个token的未归一化分数)  
↓  
Softmax输出:50257(概率分布,和为1)  

2. 奖励模型回归头的维度转换

输入向量维度:768(隐藏状态)  
↓  
新线性层权重矩阵维度:768 × 1  
↓  
输出维度:1(标量奖励分数,无Softmax)  

核心区别

  • 原分类头的目标是“多分类预测”,需要映射到词表大小维度并归一化概率;
  • 奖励模型的目标是“回归评分”,直接映射到1维标量,无需概率归一化。
三、为什么可以这样改造?原理逻辑
  1. 任务性质的一致性
    预训练模型的隐藏状态已包含语义、语法等高层特征,奖励模型只需在此基础上学习“人类偏好”的评分规则,无需预测token分布。

  2. 线性层的灵活性
    线性层可将高维语义空间映射到1维评分空间,本质是学习一个“偏好函数”,输入为模型输出的语义表示,输出为分数。

  3. 与强化学习的兼容性
    标量奖励分数可直接作为强化学习的反馈信号(如PPO算法中的奖励值),而无需像概率分布一样进行额外处理。

四、补充:隐藏状态的聚合方式

上述例子假设直接使用“最后一个token的隐藏状态”作为线性层输入,但实际中可能采用:

  • 池化操作:对整个序列的隐藏状态取平均或最大值,综合评估输出整体质量;
  • 特殊token标识:在输出序列末尾添加“奖励标识token”,取其隐藏状态作为评分依据。

无论哪种方式,最终维度转换均为 d_model → 1,核心逻辑不变。


网站公告

今日签到

点亮在社区的每一天
去签到