Reward-Model

强化学习与大模型奖励模型训练

元数据:

核心观点总结

在强化学习中,奖励模型(Reward Model)用于评估生成的响应的质量。在PPO(Proximal Policy Optimization)训练过程中,奖励模型的参数是冻结的,仅用于提供奖励值。本文介绍了奖励模型的训练流程及其与传统强化学习的区别。
Pasted image 20250416210854.png

奖励模型训练

奖励模型通常是在SFT(Supervised Fine-Tuning)模型的基础上,通过添加价值头(Value Head)进行训练。以下是奖励模型训练的关键步骤:

class PairWiseLoss(nn.Module):
    """
    Pairwise Loss for Reward Model
    """
    def forward(self, chosen_reward, reject_reward, margin):
        if margin is not None:
            loss = -F.logsigmoid(chosen_reward - reject_reward - margin)
        else:
            loss = -F.logsigmoid(chosen_reward - reject_reward)
        return loss.mean()

与传统强化学习的对比

传统强化学习的RLHF(Reinforcement Learning with Human Feedback)对一条轨迹中的所有状态动作对进行奖励加和,而大模型奖励模型仅针对整个响应提供一个奖励值。

Pasted image 20250416210927.png

聚合操作

可以将传统强化学习中的奖励加和替换为聚合操作 AGG,如加和、加权和、取最后一个值或使用Transformer聚合。

操作步骤

  1. ✅ 在SFT模型上添加Value Head。
  2. ⚠️ 训练过程中冻结Reward Model参数。
  3. ❗ 使用最后一个token的值作为整个响应的奖励。

常见错误

在奖励计算时,误将中间token的值作为最终奖励。

💡启发点

行动清单

原始出处:[原文链接或书名章节]