MLNLP
社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。
社区的愿景
是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。
作者 | 孙浩
单位 | 剑桥大学博士生
研究方向 | 强化学习、IRLxLLM
▲ version 2024.10.15
论文预览版本:
http://sites.google.com/view/rewardmodels
上周给论文加上了一个之前没来得及写的 theorem,现在基本完成了一个自己比较满意的版本,贴出来之前还会有一些流程要走,所以先在这里先写一篇文章。如果对论文原文有兴趣的话欢迎发邮件到 [email protected] 联系我们。
本文会讨论以下内容:
1. Bradley-Terry Model 为什么可以被拿来做 Reward Modeling,其背后的依据,假设,逻辑是什么?
2. 做 Reward Modeling 这件事,真正重要的是什么?除了 Bradley-Terry Model,我们还有哪些选择?
3. 理解 Bradley-Terry 和 Reward Modeling 过后,再回过头看目前的实践,有哪些部分或许可以改进?
Part I: Rethinking the Bradley-Terry models in Alignment
1.1 从两种 BT model 讲起
在之前的文章中我梳理了 BT model 的起源。从上个世纪 50 年代开始,BT model 以及它的各种改进就被用于棋类和各种体育赛事的水平评估和胜率预测上。关于它最通俗直接的表述是,当一个能力为
的队伍 A 遇上了一个能力为
的队伍 B,那么这场比赛 A 赢得 B 的概率是
。
具体实践中,由于不同比赛的赛制,规则,随机性都不同,所以如果想用分数准确预测各个队伍的胜率,是需要用被标准化过的分数的,这里分数会被比赛中的随机性标准化——举例子来说,足球比赛的随机性很大,所以即使是弱队踢强队,也有赢的可能。
同样的还有牌类游戏的随机非完全信息博弈,在这些游戏中,能赢不一定代表水平高。相比之下,象棋,围棋这些完全信息的博弈,里面的随机性就小很多(更多是选手临场发挥的随机性,而没有比赛本身的随机状态转移)。
BT model 最直接的应用是,给定不同队伍的比赛历史信息,能不能给每个队伍打分,评估他们的实力水平,进而在未来的比赛中实现对这些队伍胜率的准确预测。我们把这种应用称为 parameter estimation ——每个队伍的分数是需要估计的 parameter。
在这种场景下,理论上来讲即使完全没有随机性,我们也需要大概
这么多次比较才能把这些队伍的顺序给排出来,考虑到随机性的存在,在之前的理论工作中,最好的结果是 Han et al.
[1]
给出的至少要进行
这么多次比较之后才能有比较准确的估计。
我们这里举两个 LLM 里应用了 BT model 的例子:
首先是 LLM Chatbot Arena,也就是所谓的 LLM 天梯,在这个设定下,不同的 LLM 是运动员,每一局比赛中两个运动员参赛,由使用者评判出不同 LLM 给出 response 的好坏,从而判定这一句比赛的胜负。
在 LMSYS 的 arena 中,截至目前一共有超过 2,000,000+ 场比赛,来对 150+ 个 LLM 进行比较,平均而言,任意两个 LLM 都比较了 26,000+ 次。这里 N=150,26000 >>N(logN)^3 = ~1500。所以我们看到 LMSYS 能对每个 LLM 的评分给出 95% 置信区间。
另一方面,在通过 preference-based annotation 对 LLM 进行 alignment/RLHF 的时候,BT model 被拿来将 pairwise-preference annotation 转化为分数。
这里每一个 prompt-response pair 都是一个运动员(这里其实有一个小小的跳跃,最直接的想法是,同一个 prompt 的两个 response 是两个运动员,有很多对这样的运动员)。
当我们有 N 个 prompt 的时候,会有 2N 个 response,annotator 对这 2N 个 response 进行标记相当于产生了 N 场比赛的结果。这里问题就来了,N 场比赛,想给 2N 个运动员打分,N << 2N (log 2N)^3,这事靠谱吗?
事实上,这并不是 LLM Alignment 面对的问题,在体育赛事中,两个队伍或许没有进行过很多的比赛,但是如果双方交手,我们可以通过一些特征来进行
比赛结果的预测
,(e.g., 队员的平均身高,年龄,大赛经历,身价,平均海参进食量)。
这里的重点不再是 parameter(ability)estimation,而是 outcome prediction。这件事在 BT model 的历史上被大量研究过,文献中称为 Bradley-Terry regression。延续这一思路,我们的文章在 LLM alignment 这个特殊场景下,给出了使用 Siamese MLP 结构实现 BT regression 的收敛性证明。
1.2 Bradley-Terry背后的假设
当我们谈论 Preference 是一场比赛,并且尝试用 Bradley-Terry model 去刻画比赛结果的时候,我们假设了什么?
一年前我写的回答部分地回答了这个问题:不同的 response 是 player,preference 就是比赛的结果。但是一年前我没想清楚的部分是,这里比赛的随机性来自于哪里?
一种自洽的解释是当时提到的,如果我们认为每个运动员的“发挥”是他实力周围的一个 gaussian 分布,再假设这种 gaussian 对于不同运动员之间有相同的 variance,那么运动员的分数就可以被这个 variance 标准化。
我们进而可以得到一个 erf 版本(而不是 tanh)的(伪)BT model。为了得到 BT model,我们需要假设每个运动员的发挥是他实力周围的一个 gumbel,location = 实力。
即使如此,有一个细节依然需要想清楚,那就是这里的 variance / 比赛的随机性是哪来的——在之前的 seminal paper 中,这部分内容都被按下不表,我们这里给出一个完整的解释:
BT model 假设了不同的标注员有关于不同 response 确定性的 bias,这些 bias 是 Gumbel 分布(所以他们的差是 logistic 分布)。类似的,我们还可以假设这些 bias 符合 Gaussian 分布,那么差就也是 gaussian——这样我们就会得到 erf 的那个版本。
除此之外,我们还可以给出另一种角度的解释(受到一些认知心理学文献关于 cognitive bottleneck 讨论的启发)标注的正确与否(和真实的 reward 值排序相比正确与否),取决于两个 reward 之差的绝对值大小。
直观来讲,如果 response1 和 response2 的真实分数分别是 r1 和 r2,如果 r1 和 r2 非常接近,那么关于这两个 response 之间的 preference 进行的标记就有更大概率被标错,或者它就和随机标注更加接近。
同时,不同标注员有不同的区分这些优劣的能力,理想情况下,一个完美标注员可以区分任意小的真实 reward 差值,那么这个标注员总可以以 100% 的正确率按照 reward 的大小进行 preference 标注。
另一个极端是,如果标注员特别差,那么即使 reward 之间的差值很大,他也没法正确区分优劣,那么这个标注员标出的数据就是随机的(0.5)。
在最普适的版本中,我们用一个值域为 [0.5,1] 的函数
作为刻画标注质量的函数,下面的 Equation 15 中,如果
,我们就事实上回到了 BT model —— equation 15 是囊括了 BT model 在内的一个对 annotation 更广义的刻画。
Part II: Rethinking Reward Modeling Objective——RM 的最终目标是进行优化
2.1 Order Consistency的概念
前面我们讲了 BT model 背后的假设,以及用 BT model 将 preference data 转换成 score 时候的逻辑——由于我们是在embedding space上进行的 regression,而 embedding space 中不同的 prompt-response pair 之间的排序关系可以在一定程度上 generalize 到其他的 prmopt-response pairs,因此我们不需要像 classical BT model 那样用大量样本估计 parameter,而是可以用相对少量的 annotation 对新的 prompt-response pair 做 prediction。
这里我们可以再次对比 reward modeling 和传统体育赛事用 BT regression 时候的差别,在体育赛事中,我们会关心每一场比赛的胜率(至少买彩票的同学们会关心),这种情况下,知道每个队伍精确的分数预测就变得很重要。
但是在 reward modeling 的使用场景下,我们其实并不关心不同的 prompt-response pair 哪个胜出的概率是多少,我们更关心的是二者的序关系,在使用 reward model 的时候(例如 inference-time optimization 的过程中),我们会拿到一个 prompt 的多个 response,我们不需要准确预测这些 response 相比其他 response 胜出的精确概率,而是只要找到那个最好的 response 即可。
一个有趣的 callback 是最近恰好在读《算法之美》这本书,书里第二章就提到现在的体育赛事很多时候只有冠军是精确的冠军,而第二名并不一定是真正的第二名。
从这个角度来看,我们用 BT model 来进行 reward modeling 似乎是有点过于追求细节了。重新审视数据,我们提出了一个更加通用的 high-level 优化目标:Order-Consistency——保序性。形式上,我们给出如下定义:
给定标注数据集的时候,我们能做的所有就是复现数据集中的(不完美)标注。我们用
来表示这个 ordering model / 序模型,那么只要我们优化
优化得足够好,那么这个
就一定不会离真实的标注太远。
2.2 BT Model与Order Consistency
显然,BT model 是一个优化 Order Consistency 的 model,它显式地把
写成两个 reward estimation 之差的形式,这个形式本身具有反对称性——反转两个 reward estimator 的位置,序估计会反号。
2.3 Classification与Order Consistency
除此之外,我们指出,直接对被标记为正/负的样本进行二分类也是一种对 Order Consistency 的优化,它优化的是 Order Consistency 的上界:也即同时要求对 prompt-response 正样本的预测大于 0,负样本的预测小于 0,这里没有了显示的反对称性要求,我们希望 Classifier 可以从数据中学到这一性质。
理论上,BT mode 优化的是 prompt-response pair 中其中一个胜利的概率。classification model 优化的是正样本是一个“好”样本的概率,这种直接的分类其实移除了负样本的影响,是这个样本在比较中胜利的边缘概率。
文章中,我们给出了如下的结果——BT reward 和 classification reward 之间可以被一个与i无关的常数连接,classification reward 加上一个常数可以 upper-bound 住 BT reward。
Part III: Rethinking Global Reward Approximator——应当如何标注数据
在前面的分析中,我们可以发现,所有的推导其实都不要求 prompt-response 来自于同一个 prompt。
这是因为在 BT regression 的假设下,我们的比较是在 embedding space 进行的,而 embedding space 是 prompt-response 二者联合的 embedding,直觉上来说,对 embedding space 不同数据点进行 order-consistency learning 其实就是在给不同的数据点打分,这种分数是全局通用的,而非针对某一些 prompt 特定的。
事实上,不同的 prompt-response 之间可以进行比较,这是可以做 reward modeling 的隐含先决条件——这种比较的可能性允许了我们学到可以用于预测任意 prompt-response 分数的 reward model。我们学的 reward 是 universal function approximator(此处致敬一下 multi goal RL 里的 UVFA)。
至于为什么我们需要不同 prompt-response 之间进行比较,我们可以拿体育赛事进行一个很好的类比:考虑我们有很多少年足球运动员生活在不同的城市,他们在自己的城市踢比赛,可以大概得到他们在城市内的排名,如果不进行不同城市的交叉比赛,我们很难知道这些运动员相比于全局水平来说究竟如何,或者说我们获得的给运动员打分的模型会比较局限在当地。
如果我们要预测一个没在数据集中的城市里,一名新的运动员的表现,我们更希望获得更加多样化的比赛数据,最好不仅有城市内的比赛,也有城市间的比赛。
在经典的分类问题中,选取什么样的数据进行标注有很强的关联:我们不能只选那些很明显是正样本或者负样本的数据,不然训练任务太简单,遇到稍微复杂一点的例子学到的模型效果就会变差,同样我们也不能只要那些分类边界上的例子,如果只有这些样本,又很容易过拟合——对于 reward model 来说这个问题就是 reward hacking。
在先前的工作中,RPO
[3]
已经提出过考虑不同 prompt 的 response 之间进行比较。
举例来说,如果我们考虑 helpful chat bot 这个目标的时候,我们可以通过对比 LLM 给不同 prompt 的回复,来标注它回答某一些问题是不是比另一些问题更加 helpful——这里更加 helpful 当然有可能是因为这个 prompt “简单”,更容易给出有帮助的答案,但更重要的是,在这种 cross-prompt 的比较中,我们希望能够学到可以泛化的关于 “helpful response” 的描述。
另一方面,cross-prompt 的比较还能带来更高的标注质量,直观来看,这是因为随机选取两个 prompt 和它们对应的两个 prompt 进行比较,比固定 prompt,生成两个 response 进行比较会有更大的差异性,更容易比较出哪个更好,我们有以下结果:
更严格意义上的证明需要考虑标注的正确率,要证明期望上来说,标注的质量会因为随机选取 prompt 而提升,我们证明了下述结果:(这个证明我上周写了 6 页,然后合作者用 1 页写了个推广版 )。
因此,实验上我们很好奇,如果可以进行不同 prompt 之间的 annotation,是否可以更有利于 reward modeling。我们在实验中对这一点进行了详尽的探索。
Part IV: Experiments——相当好用的Tree-based Models
这部分结果会等文章 arxiv 过后再进行更新。我们主要进行了三个方面的实验: