语言模型的能力评估
通常情况下我们想到的语言模型能力评估,就是让模型输出答案,然后与标准答案进行比对,可是现实是,这很难评估模型能力,下面就介绍下评估的难度
评估难度来自哪里
输出没办法确定
准备一些标准的corpus,也就是所谓的Benchmark Corpus,输入模型后,比对模型输出,但是对于输出的评分很难界定得分,因为同一个输入本来就可以有两种答案,同一种答案也可以有两种不同的说法,所以这就很难界定输出的好坏。
给出选择题
为了解决上面的问题,你可以给出选择题,也确实有这样的benchmark,那问题解决了么?
仔细想想就知道没那么简单,比如答案是A B C D,那模型万一回复的是a,又或者模型不按照人的思路直接给出答案了呢,这样还是很难解决评分问题。
当然你可以告诉模型只要输出选项,但是我们之前讲过,如果加上限制,很可能模型的重点放在了只输出选项上,而不是模型能力本身,因为之前我们讲过,模型本身就是需要step by step才会讲的更好
本身就没标准答案
比如做摘要,这个本身就没有标准答案,跟答案不同不能认为不对或者不好。当然也有BLEU和ROUGE一些算法,它是计算相同的字数的分数的,但这个分数的评估结果,想想就知道依然不是很理想。
那真的没办法评估了么
评估方法
人力
这个毋庸置疑,目前网站上的模型排名也是人力排名的
用语言模型来评估语言模型
可以把标准答案和语言模型的输出一起给GPT,问它答案是否正确,或者直接问GPT 两个模型的输出哪个更好。曾经有人MT-Bench上用GPT4来衡量回复的好坏。看起来是解决了这个问题,但是这个回复客观么?
语言模型的偏爱
语言模型真的是有偏爱的,比如gpt就特别喜欢长一点的答案。
了解到评估难度之后,我们可以了解下我们评估可以使用的资料集
评估语言模型的数据集
下面是几个常用的评估数据集
到最后一个 Natural Instrucions 任务集已经包含1600多个任务了
有方法和能力之外,出了常见的正确与否,一些其他我们需要评估的能力。
评估模型的不同能力
阅读长文的能力
现在我们越来越希望模型能够记住更长的内容,所以就希望能够测试模型阅读长文的能力,测试模型在看过很长的文章之后还能不能记住它看到的内容。
分别在一篇很长的文章的开头、中间、结尾插入一句话(防止不同模型在对于不同输入中不同位置的关注度带来影响),然后看模型能否回答出来的出来
有人在GPT-4做了测试,它自己号称可以读128k token的内容,但是实际测试发现,小于64K的时候,无论是放在哪里都可以回答出来,但是如果文档真的是到了128K的时候,如果插入的话放在前面,那GPT-4是回答不出来问题的。下面这个图是在GPT上实验结果(纵轴是插入语句的位置,从上往下依次是文章开头到结尾,横轴是输入token长度)
心智测验
测验模型是否具心智能力,看模型是否具备人类的心智。
拿一些心智测验题目,看模型是否具备心智能力,当然这个过程里必须警惕它在之前已经看过类似的资料了。比如上面这个问题,如果仅仅是文字生成,就会输出到去箱子找球,但是真正具备心智的人是会回答篮子。
当然也有这样的测试集,不过目前模型的测试的结果都不是很理想,与人类差距很大
道德性测试
看模型是否会为了自己的目标,违背一些道德,做一些操作,MACHIAVELLI Benchmark就是这样的测试