斯坦福发布大模型排行榜AlpacaEval
来自斯坦福的团队,发布了一款LLM自动评测系统——AlpacaEval,以及对应的AlpacaEval Leaderboard。这个全新的大语言模型排行榜 AlpacaEval,它是一种基于 LLM 的全自动评估基准,且更加快速、廉价和可靠。
项目链接:https://github.com/tatsu-lab/alpaca_eval 排行榜链接:https://tatsu-lab.github.io/alpaca_eval/
该研究团队选择了目前在开源社区很火的开源模型,还有GPT-4、PaLM 2等众多「闭源」模型,甚至还开设了一个「准中文」排行榜。
**AlpacaEval **分为以 GPT-4 和 Claude 为元标注器的两个子榜单。
在斯坦福的这个 GPT-4 评估榜单中:
- GPT-4 稳居第一,胜率超过了95%;胜率都在 80% 以上的 Claude 和 ChatGPT 分别排名第二和第三,其中 Claude 以不到 3% 的优势超越 ChatGPT。
- 值得关注的是,获得第四名的是一位排位赛新人——微软华人团队发布的 WizardLM。在所有开源模型中,WizardLM 以仅 130 亿的参数版本排名第一,击败了 650 亿参数量的 Guanaco。
- 而在开源模型中的佼佼者 Vicuna 发挥依然稳定,凭借着超过70%的胜率排在第六,胜率紧追 Guanaco 65B。
- 最近大火的 Falcon Instruct 40B 表现不佳,仅位居 12 名,略高于 Alpaca Farm 7B。
PART 01AlpacaEval 技术细节01AlpacaEval 评估效果
**AlpacaEval **基于 AlpacaFarm 数据集来测试模型遵循一般用户指令的能力。具体地,研究人员以 GPT-4 或 Claude 为自动评估器,以 GPT-3.5(Davinci-003)为基准,将目标模型与 GPT-3.5 的回复进行比较。
论文地址:https://arxiv.org/pdf/2305.14387.pdf_ _ 项目地址:https://github.com/tatsu-lab/alpaca_farm/
图注:AlpacaFarm是一个模拟沙盒,能够快速、廉价地对从人类反馈中学习的方法进行实验。它用API LLMs模拟人类反馈,提供一个经过验证的评估协议,并提供一套参考方法的实现。研究人员可以快速迭代模型开发,并将他们的方法转移到人类数据上进行训练,以最大限度地提高性能。虽然仅基于 GPT-4 进行自动评估,但与基于 1.8 万条真实人类标注排序结果之间高达 0.94 的皮尔逊相关系数,证明了 AlpacaEval 榜单排名的高可靠性。
那么相比其他的 LLM 自动评测器,如 alpaca_farm_greedy_gpt4、aviary_gpt4、lmsys_gpt4,还有人类(humans)评估,斯坦福的 AlpacaEval 评测器有什么特别?在 AlpacaEval set 上,斯坦福 AlpacaEval 团队通过与 2.5K 条人工标注结果(每个指令平均包含4个人工标注)对比,研究人员评估了不同的自动标注器的性能。对比结果显示,AlpacaEval 采用的 GPT-4 评测方式取得了最高的人类一致性,以及较低的误差,并仅需约 1/22 的人类标注成本。
图 注:人类一致性:标注者与交叉标注集中人类多数票之间的一致性。价格:每1000个标注的平均价格。时间:计算1000个标注所需的平均时间。相对于人工标注,全自动化的 AlpacaEval 仅需花费约 1/22 的经济成本和 1/25 的时间成本。
另外,还有一个关键问题:什么评估数据可以最好地区分模型。团队从统计角度出发,在 AlpacaEval 的所有子集上检验这个问题。下图显示了 AlpacaEval 每个子集的 80 个实例上每对模型的配对 t 检验的 p 值。例如,我们看到 Self-Instruct 数据集产生的统计能力最小,这表明可以从评估集中删除该数据集。
图注:不同基准评估数据集的质量02如何使用AlpacaEval评估模型
AlpacaEval 支持两种模式的模型评估方式:
- alpaca_eval:直接根据目标模型输出的响应来评估模型。
- alpaca_eval evaluate_from_model:根据 HuggingFace 已注册模型或这 API 提供商来端到端评测模型。
评测过程分为以下 3 步:
- 选择一个评估集,并计算指定为 model_outputs 的输出。默认情况下,我们使用来自 AlpacaEval 的 805 个示例。
import datasets
eval_set = datasets.load_dataset( "tatsu-lab/alpaca_eval", "alpaca_eval")[ "eval"]
for example in eval_set:
# generate here is a placeholder for your models generations
example["output"] = generate(example["instruction"])
Copy
- 计算 golden 输出 reference_outputs。默认情况下,在 AlpacaEval 上使用 text-davinci-003 的输出。
- 通过 annotators_config 选择指定的自动标注器,它将根据 model_outputs 和 reference_outputs 计算胜率。这里建议使用 alpaca_eval_gpt4 或 claude。根据不同的标注器,使用者还需要在环境配置中设定 API_KEY。
目前,AlpacaEval 团队已开源所有模型评估代码和分析数据,以及支持未来新模型榜单更新的测试工具。显然 AlpacaEval 对LLM模型评测来说很实用,但它 仍不是一个全面的的模型能力评测系统,还有一些局限性:(1)指令比较简单;(2)评分时可能更偏向于风格而非事实;(3)没有衡量模型可能造成的危害。