美文网首页
奖励模型Reward Model如何训练?

奖励模型Reward Model如何训练?

作者: 不可能打工 | 来源:发表于2023-06-13 11:14 被阅读0次
    image.png

    如上图所示,ChatGPT 并不是直接让人工去标注每一句话的真实得分是多少(尽管模型最终要预测的就是每句话的得分),而是让人去对 4 句话按照好坏程度进行「排序」。

    通过这个「排序序列」,模型将会学习如何为每一个句子进行打分,用「相对任务」替代「绝对任务」能够更方便标注员打出统一的标注结果

    Rank Loss

    假定现在有一个排好的序列:A > B > C >D。

    我们需要训练一个打分模型,模型给四句话打出来的分要满足 r(A) > r(B) > r(C) > r(D)。

    那么,我们可以使用下面这个损失函数:


    image.png

    其中,yw 代表排序排在 yl 的所有句子。

    用上述例子(A > B > C > D)来讲,loss 应该等于:

    loss = r(A) - r(B) + r(A) - r(C) + r(A) - r(D) + r(B) - r(C) + ... + r(C) - r(D)
    loss = -loss
    为了更好的归一化差值,我们对每两项差值都过一个 sigmoid 函数将值拉到 0 ~ 1 之间。

    可以看到,loss 的值等于排序列表中所有「排在前面项的reward」减去「排在后面项的reward」的和。

    而我们希望模型能够「最大化」这个「好句子得分」和「坏句子得分」差值,而梯度下降是做的「最小化」操作。

    因此,我们需要对 loss 取负数,就能实现「最大化差值」的效果了。

    相关文章

      网友评论

          本文标题:奖励模型Reward Model如何训练?

          本文链接:https://www.haomeiwen.com/subject/kxscydtx.html