我最近阅读了论文《训练语言模型以遵循带有人类反馈的指令》,其中建议“InstructGPT”。
InstructGPT模型分为3步,第二步是奖励模型。
论文介绍了奖励模型的损失函数。 这就是损失函数。
我想知道的是‘-1/(kC2)’的必要性。
我知道 E_(x,yw,yl)~D [log(sigma(r(x,yw) - r(x,yl)))] 代表 期望值,所以我认为除以 -1/ ( kC2) 已经完成了。
我的想法有什么问题吗?
我们取 sigma 的负对数(chosen_answer_score -reject_answer_score),然后从批量大小中取平均值,并计算数据集中所有对的损失。根据数学计算,损失始终为正,当损失接近 0 时奖励模型收敛,当损失接近无穷大时奖励模型发散。请记住,我们希望 selected_answer_score -reject_answer_score>0。
我认为你的理解“E_(x,yw,yl)~D [log(sigma(r(x,yw) - r(x,yl)))]代表期望值”是不合适的。
“损失”意味着你想最小化这个值。在奖励模型中,您希望选择的分数比拒绝的分数大得多,这意味着您希望 r(x,yw) - r(x,yl) 尽可能大。这与损失目标相反,因此应该在公式中添加减号。