Note
奖励模型如何设计和训练?
介绍模型架构、与策略模型的关系及 Bradley-Terry 偏好损失。
奖励模型的设计至关重要。它的模型架构通常如何选择?它与我们最终要优化的LLM是什么关系?在训练奖励模型时,常用的损失函数是什么?请解释其背后的数学原理(例如,可以结合Bradley-Terry模型来解释)。
模型架构选择:
奖励模型(RM)的架构通常选择与要优化的LLM相同或非常相似的架构,但有两点关键区别:
- RM的初始化权重通常来自于第一阶段训练好的SFT模型。这样做可以保证RM对指令和语言风格有很好的基础理解。
- RM的最后一层(通常是预测下一个token的softmax层)被替换为一个回归头(Regression Head),这个头通常是一个线性层,用于输出一个标量(scalar),即奖励分数。
与最终LLM的关系:
RM是最终LLM的效用函数代理(proxy for the utility function)。它在RLHF流程中扮演着人类偏好的模拟器的角色。最终的LLM(即策略)的目标就是生成能够让这个RM给出高分数的回答。因此,RM的质量直接决定了最终LLM对齐的天花板。如果RM有缺陷或偏见,LLM在优化过程中就会“奖励作弊”,利用这些缺陷来获得高分,而不是真正生成人类喜欢的回答。
常用的损失函数:
RM训练时最常用的损失函数是成对排序损失(Pairwise Ranking Loss)。其目标是,对于任意一个给定的prompt,RM赋予“胜出回答”( y_w )的分数 r(y_w) 应该高于赋予“落败回答”( y_l )的分数 r(y_l) 。
数学原理解释(结合Bradley-Terry模型):
Bradley-Terry模型是一个用于描述成对比较结果概率的模型。它假设每个个体(在这里是每个回答)都有一个潜在的“实力”分数(即奖励分数 r )。回答 y_w 优于 y_l 的概率 P(y_w > y_l) 可以用一个logistic函数(即sigmoid函数 )来建模:
其中 x 是prompt, r(y|x) 是RM给出的分数。这个公式的直观意义是,两个回答的奖励分数差距越大,我们越确信其中一个比另一个好。
在训练时,我们的目标是最大化我们观察到的人类偏好数据的对数似然。对于一个偏好数据 (y_w, y_l) ,我们希望最大化 P(y_w > y_l) 的对数。因此,损失函数就是其负对数似然:
这个损失函数会惩罚那些RM给分错误(即 r(y_l) > r(y_w) )的情况,并驱动RM学习到一个能够准确反映人类偏好排序的打分函数。