AI对齐综述中提及的一种评估方式,有点兴趣,看一下。
(一)motivation:
评价alignment的方法目前都是用人工评价,或者是用最好的LLM来评价,但这样的方法很昂贵,而且也会引发一系列问题。因此作者提出了两种方法。第一种是同行排名(PR),改进了每个同行LLM对 answer pair的成对偏好(比如倾向于偏好第一个、喜欢很长的废话、自我增强【更加偏向于自己的回答】);第二种是同行讨论(PD),让两个LLM可以“达成共识”。
数据集:
PR:Vicuna80
PD:Vicuna80、 LFQA
(二)方法论:
Part1.同行排名(PR)方法:
计算矩阵的办法:
1.计算一系列的战斗评分:
对s的解释:
s的含义是,使用模型r作为reviewer时,比较模型i和模型j对于问题q的答案的好坏。在这里坐着使用-1表示前一个(i)的答案更好,0表示不相上下,1表示后一个(j)的答案更好。
请注意,在后文的表示中,s的表示方式是
其他的一些严谨说明:
Q:问题集 C:参加“比赛”的所有模型 R:参与评审的所有模型
2.胜率计算/ELO计算:
①ELO计算:
基本胜率计算:胜利次数/总参赛次数,如果平手,则按照获胜0.5次纳入。
胜率计算立足点:更好的模型应该具有更好的评判能力,因此其作为reviewer时评分的结果应该具有更高的权重。
胜率计算思想:在每一次迭代时,用当前权重计算各个参赛者的胜率,并用线性缩放到[0,1]范围。然后再次缩放使得总和为1,并作为下一次胜率计算的权重。
正式计算:
(1)初始的= (模型c的获胜次数+平局次数/2)/ 总次数,也就是如下的公式:
f():表示一种映射,也就是将评价的分数按照我们说的(-1,0,1)的结果变成(0,0.5,1),也就是f(score)=(score+1)/2
注意,这里不是只比一次,而是将成对的答案换顺序后再次输入reviewer模型中(所以第一次是dc,第二次是cd),而换了顺序之后,自然也要用负数写进去。
同一组要换顺序评价两次的原因是为了减缓reviewer对第一个答案的偏好(我猜的。)
分母部分就很好理解,总比赛次数嘛。
(2)权重计算
最开始的权重都是1/|R|,后面更新如下所示。
两次缩放,分步公式如下:先全部缩放到0-1,再统一缩放保证和为1
②ELO计算:在权重更新上的逻辑和前面一样,计算每个模型的elo分数,然后以elo分数作为下一次的权重。具体ELO计算参考附录:
emm……这里的几个参数可以从CSDN里来看:
Part2. PD方法
正文部分写的非常的简单,基本都是prompt工程,过程如下:
(1)对于模型A和B,先分别生成初始的评论。
(2)把A和B初始的评论合并,再一次整合,分别输入给A和B(注意,如果是输入A,就是先输入A初始评论再输入B的初始评论,如果是输入B,就是先输入B初始评论再输入A的初始评论。)
(3)如果A和B生成了相同的结论,则结束,否则把对方的评价再次输入给对方,实现“对话”。
(三)实验:
PR:在进行实验前,对于Vicuna80数据集进行了Fleiss K的说明,由于其在0.4左右,所以认为人为标注的结果相对来说不存在因不同标注者而导致的一些标注分歧。
(1)对目前的组合:
从这里面得到了统一的排序:
GPT-4 > Claude > Vicuna > GPT-3.5 > Bard
使用winrate方式下的PR方法得到的实验结果和baseline相比,全部模型参与评分后的结果更好:
此外,还发现在单独评价时,GPT-4有自我增强的现象:
而PR方法+elo的模式相比于GPT-4单一打分,在ELO上的指标更接近人类打分(也就是说,自我增强的情况会好一些。):
二、PD方法:
用GPT-4和Claude。
实验结果说明:GPT-4 lead指GPT-4率先发表意见、Claude lead指Claude率先发表意见,Random是随机的。
看的出来,如果只是单纯用PD,没法提高。不过,如果用了明确的方面(explicit critieria)会有显著提升,如果再加上角色的说明(也就是reviewer还是参赛者),还会有一点提升。
更进一步地大量实验:
一些分析:
提出的方法改善了自我偏见(包括GPT-4会帮助GPT-3的答案取得更好排名的情况)以及对于第一个位置的答案更加偏好的问题。