奖励模型Reward Model如何训练?

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 取负数,就能实现「最大化差值」的效果了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 2022年11月,OpenAI推出了一款AI聊天机器人程序,其强大的问答能力瞬间引爆全网关注度。 组成部分:...
    臻甄阅读 1,858评论 0 0
  • 1 为什么要对特征做归一化 特征归一化是将所有特征都统一到一个大致相同的数值区间内,通常为[0,1]。常用的特征归...
    顾子豪阅读 1,530评论 0 1
  • 1 为什么要对特征做归一化 特征归一化是将所有特征都统一到一个大致相同的数值区间内,通常为[0,1]。常用的特征归...
    顾子豪阅读 6,878评论 2 22
  • 自我介绍 面试官好 我叫黄伟琛 本科毕业于厦门大学经济学院 统计系 现在在人民大学信息学院读计算机的硕士 24年毕...
    N_dec0阅读 469评论 0 0
  • Comprehensive Video Understanding: Video summarization wi...
    LEgGOdt阅读 1,066评论 0 1