先做个广告:如需代注册ChatGPT或充值 GPT4.0会员(plus),请添加站长微信:gptchongzhi
评估基于大型语言模型(LLM)的聊天助手是具有挑战性的,因为它们具有广泛的能力,而现有的基准在衡量人类的偏好方面是不够的。
推荐使用GPT中文版,国内可直接访问:https://ai.gpt86.top
一方面,通过使用MT-bench和Chatbot Arena进行人工排序依赖于真实的人类评分,但收集人类的偏好十分昂贵和费力。
另一方面,传统的生成的指标像n-gram based metrics(BLEU、ROUGE)以及基于语义距离的指标 BERT-Score 都不太适合开放域生成内容的评估。
而随着LLMs的不断改进,它们在许多任务中显示出取代人类标注的潜力,因此,对LLM是否能有效地评估聊天助理的回答并与人类的偏好相匹配,即完成模型的自动化评估成为了一个很有挑战性的事情。
因此,目前,已经出现了使用GPT4等模型进行打分的尝试,但也陆续出现一些问题,例如,让gpt4来对两个候选结果打分时,交换两个回答的位置并查询语言模型两次,模型很可能产生相互冲突的评估结果,并且模型会偏向于某个特定位置的回答。
工作《Large Language Models are not Fair Evaluators》(https://arxiv.org/pdf/2305.17926v1.pdf)中表明,大型语言模型(如GPT-4)评估不同模型表现时存在系统性偏见,通过改变不同模型的答案在评价模版中的顺序,可以轻松篡改它们的质量排名,从而扭曲评估结果。
但这种指标的差异也和参与评估的两个模型性能有关,如果两个模型性能比较接近,即两者回答质量的差异较小,则LLMs 的评估结果受到答案位置的影响更大;而当两者差异较大时,GPT-4的评估结果相对稳定。
无独有偶,文章《Judging LLM-as-a-judge with MT-Bench and Chatbot Arena》(https://arxiv.org/abs/2306.05685)沿着这个问题,研究了LLM作为评委的几种用法和局限性,比如位置和言语偏差以及有限的推理能力,并提出了一些的解决方案。
本文对利用GPT4等大模型进行模型自动化评估的一些问题进行介绍,供大家一起参考。
一、GPT4充当裁判的几种评价方式及局限性
实际上,LLM-as-a-judge提供了两个关键的好处:可扩展性和可解释性,可以减少了对人类参与的需求,实现了可扩展的基准和快速迭代。此外,LLM充当裁判不仅提供分数还提供解释,使他们的输出可以解释。
那么,其工作的基本原理是什么呢?《Judging LLM-as-a-judge with MT-Bench and Chatbot Arena》提出了3种LLM-as-a-judge的实现方式,它们可以独立或组合实施:
1)成对比较pairwise comparison
其思想在于:一个LLM评委被告知一个问题和两个答案,任务是确定哪一个更好或者宣布一个平局。所用的提示如图5所示
2)单一答案的评分single answer grading
其思想在于:是让LLM评委直接给一个答案打分单一答案。所用的提示如图6所示:
3)参考资料指导下的评分Reference-guided grading
其思想在于:在某些情况下,提供一个参考的解决方案可能是有益的,就是给一个评分的样例。例如,用于数学问题评分的提示如图8所示。
可以看到这些方法,本质上都是基于prompt在工作,也存在不同的问题,例如:
对于pairwise comparison的评价数量会猛增,当待评估数量增加时,pairwise comparison可能缺乏可扩展性;
单一答案评分可能无法辨别特定对子之间的细微差别,而且其结果可能变得不稳定,因为如果裁判模型发生变化,绝对分数可能比pairwise comparison结果波动更大。
更进一步的,以上的方式都对充当评委的大模型本身提出了很高的要求,也存在一些很明显的局限性,那么这种局限性是什么呢?
早期的工作工作《Large Language Models are not Fair Evaluators》(https://arxiv.org/pdf/2305.17926v1.pdf)表明,大型语言模型(如GPT-4)评估不同模型表现时存在系统性偏见,通过改变不同模型的答案在评价模版中的顺序,可以轻松篡改它们的质量排名,从而扭曲评估结果。如下图所示:
《Judging LLM-as-a-judge with MT-Bench and Chatbot Arena》这一工作则更进一步地分成了Position bias位置偏见、Verbosity bias啰嗦性偏见、elf-enhancement bias自我增强的偏见以及Limited capability in grading math and reasoning questions对数学和推理问题的评分能力有限四个方面,具体如下:
1)Position bias,位置偏见
与上一个工作类似,该工作也发现,GPT4表现出倾向于某些位置上的结果,比如a放在b前,a的得分会更高。
图10显示了一个位置偏差的例子。当问答助理A被放在第一个位置时,GPT-4认为A更好,但当我们交换A和B的位置时,它的判决就会改变。
此外,为了分析位置上的具体偏见,通过调用两次GPT-3.5,并设置温度为0.7(保证多样性),在MT-bench中为每个第一轮问题构建两个类似的答案,然后使用两个不同的提示语尝试三个LLM: "default "表示默认提示,"rename "是对默认提示中的助手进行重命名,以查看偏见是在位置还是名字上。
如下表2所示,所有模型都表现出强烈的位置偏见。大多数LLM评委偏爱第一个位置。有趣的是,Claude-v1也表现出名字上的偏向,这使得它偏向于 "助理A",这一点在 "重命名"提示中得到了说明。而位置偏差可能是非常显著的,只有GPT-4在超过60%的情况下输出一致的结果。
2)Verbosity bias,啰嗦性偏见
啰嗦性偏见,指的是GPT4偏爱较长的、啰嗦的回答,即使不如较短的回答清晰、高质量或准确。
那么,这个是怎么发现的?
该工作使用MT-bench的模型答案设计了一个 "重复列表 "攻击。
具体的,首先从MT-bench中选择了23个包含编号列表的示范答案,然后要求GPT-4在不增加任何新信息的情况下重写清单,并将重写后的新清单插入到原始清单的开头,从而使其变得不必要的冗长。
例如,如果原始回答包含5个项目,那么新的回应将包含10个项目,但前5个项目是由原来的5个项目改写的。
图11展示了一个"重复列表 "攻击的例子,除了两个重新措辞的片段(以红色标示)之外,助理A的答案与助理B完全相同,如果LLM法官认为新的回答比旧的回答好,那么定义该攻击是成功的。
现在我们来看测试结果,表3显示了在这种攻击下LLM法官的失败率,表明所有的LLM都可能容易出现言语偏差,尽管GPT-4的防御效果明显好于其他。
作为校准评估,该工作发现LLM评委能够正确判断相同的答案,大模型总是对两个相同的答案返回一个平局,但不能通过更高级的 "重复列表 "攻击。
也可以看到,GPT-3.5和Claude-v1都显示出对较长和重复的答案的动词性偏见,只有GPT-4成功地检测到这种攻击。
3)Self-enhancement bias,自我增强的偏见
自我增强的偏见,指的是GPT4可能偏爱自己产生的答案的效果,谁跟它更接近,他就给谁打高分。
该工作从统计学的角度来研究这种影响,下图3(b)显示了在不同的LLM评委和人类的情况下,六个模型的获胜率(不含平局)。
可以看到,与人类相比,确实观察到一些大模型偏爱某些模型。例如:
GPT-4对自己有利,胜率高出10%;Claude-v1对自己有利,胜率高出25%。此外,他们也青睐其他模型,但GPT-3.5并不青睐自己。
不过,需要坦白的是,由于数据有限且差异较小,这些研究无法确定这些模型是否表现出自我增强的偏见,而且进行对照研究是具有挑战性的,因为不能轻易地重新措辞以适应另一个模型的风格而不改变数据质量本身。
4)Limited capability in grading math and reasoning questions,对数学和推理问题的评分能力有限
这个是很自然的,让一群小学生来评价高中生的表现是一件很扯淡的事情。我们都知道,GPT4的数学和推理能力有限,这导致它无法对这类问题进行评分,因为他们往往不知道正确答案。
如图12所示,在默认的提示下,GPT-4显示出对数学问题进行评分的有限能力。尽管能够回答问题本身,但它的判断受到了给定答案的影响,导致了黄色显示的算术错误。
又如,图13显示了GPT-4对推理题评分能力有限的一个例子。尽管GPT-4知道如何解决这个问题(如果分开问的话),但它做出了错误的判断,说两个助手的错误答案都是正确的。
二、解决GPT4充当裁判局限性的几种可行方式
既然问题存在,那么我们应该如何进行处理呢?我们可以顺着这条线再来看看解决措施。
首先,工作《Large Language Models are not Fair Evaluators》中针对位置偏见,提出了2种缓解方式:
一个是交换数据位置Balanced Position Calibration(BPC),思想在于通过交换两个候选结果的位置。为了确定特定答案的最终评分,计算其作为第一个回答和第二个回答时的平均分数。这种平均化过程有助于确保更平衡的评估,并减少评分过程中位置偏差的影响。
另一个是多证据校准Multiple Evidence Calibration(MEC),思想在于让模型先生成解释,然后给出评分。这样,评分可以通过更多的支持证据进行校准。此外,模型不仅生成一条证据,而是采样多个证据链,并将平均分数作为最终评分。
其次,《Judging LLM-as-a-judge with MT-Bench and Chatbot Arena》则提出了Swapping positions调换位置、Few-shot judge、Chain-of-thought and reference-guided judge以及Fine-tuning a judge model几种方式,下面分开来看看:
1、Swapping positions,调换位置,通过调换两个答案的顺序,评两次,只有当一个答案在两个顺序中都是首选时才宣布获胜。如果调换后的结果不一致,称其为平局;
很显然的是,位置偏差可以通过简单的解决方案来解决。一个保守的方法是,通过调换两个答案的顺序,让评分模型评2次,只有当一个答案在两个顺序中都是首选时才宣布获胜。如果调换后的结果不一致,则可以称其为平局。另一个更激进的方法是随机分配位置,在正确的预期下,这在大范围内是有效的。
为了验证这个方法的有效性,表9中列出了全部结果,不同模型和提示上的位置偏差。
其中:
"score "改变了默认提示,让模型输出两个绝对分数,而不是哪一个更好。
"short "是我们默认提示的简化版,删除了 "避免任何位置偏差......"、"开始你的评价......并提供一个简短的解释 "等指示。这两个是不同的prompt模版。
consistency一致性是指在调换两个助手的顺序时,评分模型给出一致结果的案例的百分比。
Biased towards first"偏向第一 ",指法官偏向于第一个答案的情况的百分比。
error"错误 "表示错误的输出格式,每一列中最大的两个数字用粗体表示。
可以发现不同的提示对不同的模型有不同的影响。例如,"分数 "提示可以提高GPT-3.5的一致性,但对于Claude-v1和GPT-4来说,则会降低一致性。
进一步的,表10展示了不同类别任务上的位置偏差,可以看到偏差在写作和干货/人文知识等开放性问题上更为明显。在数学和编码问题上,LLM的评委更有信心,即使判断经常是错误的。
结论如表11所示,位置偏差对于性能接近的模型更为明显,而当两个模型的性能相差很大时,位置偏差几乎可以消失。
2、Few-shot judge,使用类似MT-bench的问题选择了三个好的判断例子,例子涵盖三种情况: A更好,B更好,以及平局,相当于in-context learning;
该方法使用类似MT-bench的问题选择了三个好的判断例子,并使用GPT-3.5和Vicuna用于生成答案,而GPT-4用于生成判断,这些例子涵盖了A更好,B更好,以及平局三种情况。
如表12所示,通过这种做法可以将GPT-4的一致性从65.0%大幅提高到77.5%。
不过,高的一致性可能并不意味着高的准确性,这些引入的例子是否会引入新的偏差,而且较长的提示使API调用的成本增加了4倍。
3、Chain-of-thought and reference-guided judge,使用思维链判断和参考引导判断,提升GPT4的评分能力;
考虑到LLM在对数学和推理问题进行评分方面的有限能力,因此很显然的方式就是引入思维链判断和参考引导判断来缓解这个问题。
其中,思维链是一种广泛使用的技术,用于提高LLM的推理能力,图7为数学和推理题打分的思维链提示。
但即使有了CoT提示,发现在很多情况下,LLM在解决问题的过程中会犯与给定答案完全相同的错误,这表明LLM法官仍然可能被背景所误导,例如,图14展示了GPT-4的错误判断与思维链提示的例子。
可以看到,GPT-4完全复制了助理B的答案(其中包含算术错误),并判定助理A的答案是错误的。这表明,尽管要求GPT-4独立思考,但它的思维链过程会受到给定答案的显著影响。
因此,在此基础上,提出了一种参考引导的方法,即先独立生成LLM评委的答案,然后在法官提示中显示为参考答案。在表4中,看到与默认提示相比,渐入COT以及Reference失败率有了明显的改善(从70%到15%)。
但,与此对应的,加入参考信息也不一定有效,如图15所示,在这个例子中,尽管生成模型A正确地按照用户的指示为其之前的回答中的第二个例子生成了一个具体的计划,但GPT-4在生成模型B的回答中错误地提到了第二个例子,导致了错误的判断。这表明,将问题分成两个提示的提示设计可能导致LLM法官难以找到助手之前的回答。
4、Fine-tuning a judge model,例如微调一个Vicuna-13B来充当作为裁判,其实就是一个专门的评分模型。
上面三种方式本质上都是在做prompt上的优化,其受限于评分模型本身,而除了GP4之外,其他的模型表现地更为拉胯。
例如,如表15所示,Vicuna-13B在不同的提示模板中的一致性率为11.2%至16.2%,远远低于所有的封闭源模型。此外,由于其较弱的指令跟随能力,它的错误率很高(从22.5%到78.8%)。在许多情况下,Vicuna-13B提供了诸如 "答案A比答案B好 "这样的回答,而没有遵循预先定义的模板。这些回答被呈现为自然语言,很难被自动解析,使得该模型在可扩展的自动评估流程中不太有用。
因此,搞一个专门的评价模型也是一种方式,那么如何进行实现?可以利用聊天机器人Arena的人类投票来进一步微调该模型。
具体地,该工作从竞技场Arena中随机抽取了22K张单轮投票,使用20K票进行训练,并使用2K票进行验证,涵盖了GPT-4, GPT-3.5, Claude-v1, Vicuna-13b, Vicuna-7b, Koala-13B, Alpaca-13B,LaMA-13B, Dolly-12B, FastChat-T5, RWKV-4-Raven, MPT-Chat, OpenAssistant, ChatGLM, and StableLM等多个模型,以便将模型暴露在更广泛的聊天机器人输出和人类偏好下。
此外,为了解决前面提到的弱指令跟随问题,该工作将该问题制定为一个三向序列分类问题,模型只需要预测哪一个聊天机器人的输出更好(或打平),而不需要完全遵循提供的答案模板。
在数据构造上,通过使用默认提示和两个模型的答案来构建一个输入,标签分成左边好、右边好和一样好,在训练上采用余弦学习率调度器和2e-5的最大学习率训练了3个历时。
这里有个新概念余弦学习率调度器,cosine learning rate,余弦学习率衰减,
其思想在于,如果是总的100个epoch,只使用后60个应用余弦学习率衰减,那么前40个不作cosine计算,lambda的表达式变为epoch: (epoch / 40) if epoch < 40 else 0.5 * (math.cos(40/100) * math.pi) + 1)。
通过这种方法,我们从图15中的结果可以看到,通过这种方式,一致性从16.2%明显提高到65.0%,此外,由于分类的制定,每个输出都是可识别的(错误率0%)。
在结果一致性上,当包括所有三个标签时,它达到了56.8%,当排除平局预测和标签时,达到了85.5%,分别大大超过了随机猜测的33%和50%,并显示出匹配GPT-4的积极信号(分别为66%和87%)。
这说明了进一步微调的Vicuna-13B模型显示出一定潜力,可作为昂贵的封闭式LLM的廉价开源替代品。
总结
本文对文章《Judging LLM-as-a-judge with MT-Bench and Chatbot Arena》进行了介绍,该工作研究了LLM作为评委的用法和局限性,比如位置和言语偏差以及有限的推理能力,并提出了迁移其中一些的解决方案,这些都是可以令人深思的。
总结的说,为了解决GPT4等大模型作为评分模型存在的Position bias位置偏见、Verbosity bias啰嗦性偏见、elf-enhancement bias自我增强的偏见以及Limited capability in grading math and reasoning questions,对数学和推理问题的评分能力有限的问题,可以采用Swapping positions调换位置、Few-shot judge、Chain-of-thought and reference-guided judge以及Fine-tuning a judge model几种方式进行缓解。
但是,这些方式并不总是有效,我们需要根据自己的场景,自己的任务做特定的分析,以便达到好的效果。
参考文献
1、https://arxiv.org/abs/2306.05685
2、https://arxiv.org/pdf/2305.17926v1.pdf
3、https://https://github.com/i-Eval/FairEvalval
4、https://github.com/lm- sys/FastChat/tree/main/llm-judg