基准为什么存在
你无法仅凭参数量、训练数据大小或架构来判断一个模型。这些数字描述的是容量——模型理论上能做什么——而不是能力,即实际给定提示词时它真正能做什么。 基准存在的目的是弥补这一差距。一个好的基准应该:- 标准化比较——每个模型在相同条件下回答相同的问题。
- 揭示强项和弱项——在数学上得分高的模型可能在代码方面表现平庸。
- 追踪进步——你可以看到新一代模型是否确实有了改进,还是仅仅变大了。
基准概览
以下是你在模型卡片和排行榜上会遇到的主要基准:MMLU 详解
MMLU 详解
MMLU(大规模多任务语言理解)是引用最广泛的基准。它涵盖从高中到专业水平的 57 个学科,包括 STEM、人文学科和社会科学。每个问题都是 4 个选项的选择题。得分 70 表示模型正确回答了 70% 的问题。MMLU 作为一个广泛的能力信号很有用,但不测试开放式生成、创造力或指令遵循。大多数模型卡片报告的是 5-shot 分数。
HumanEval 和 MBPP
HumanEval 和 MBPP
这 2 个基准衡量代码生成。HumanEval 包含 164 个手写 Python 问题,模型需要根据文档字符串生成函数,然后通过运行测试来检查正确性。MBPP 更大(约1000个问题),但涵盖的是更简单的算法任务。两者都报告 pass@1——首次尝试正确解决的问题百分比。它们适合比较编码能力,但覆盖真实编程的狭窄切片。
MT-Bench 和 Chatbot Arena
MT-Bench 和 Chatbot Arena
MT-Bench 通过 80 个多轮提示评估对话质量,由 GPT-4 或人类评审员按 1–10 分制评分。Chatbot Arena(LMSYS)则不同:它将 2 个匿名模型相互对决,让用户投票,产生类似国际象棋评分的 ELO 排名。Arena 分数反映了真实世界的用户偏好,但更新缓慢,且更青睐那些回答精炼、自信的模型,而不是那些正确但简洁的模型。
SWE-Bench
SWE-Bench
SWE-Bench 测试模型是否能端到端解决真实的 GitHub 问题:阅读问题、在大型代码库中定位 bug、并生成正确的拉取请求。在验证子集上,顶级模型能解决 30–50% 的问题。这是最接近实际软件工程工作的基准,但难度极大,且结果因语言和框架而异。
LiveBench
LiveBench
LiveBench 每月使用新数据刷新其测试集,这使其能够抵抗基准污染——模型不可能记住训练期间未曾见过的答案。它涵盖数学、编程、推理、语言、数据分析和指令遵循。它比 MMLU 或 HumanEval 更新,但正在越来越多地被引用为更可信的信号。
如何阅读基准表
分数看起来权威,但需要有上下文的解读才有用。数字的含义
大多数基准报告 0 到 100 的分数,即模型正确回答问题的百分比。MMLU 得分 70 表示模型正确回答了 70% 的大学水平选择题。ELO 评分(被 Chatbot Arena 使用)则不同——它是相对排名,其中 100 分的差距意味着评分较高的模型在大约 64% 的直接对决中获胜。误差范围
在任何单一基准上,1–2 分的差异都是噪音。评分方法、提示格式甚至随机种子的变化都可能导致分数产生如此大的波动。如果模型 A 得 72 分,模型 B 得 74 分,请视其为等效,然后查看测试你关心的特定能力的基准。污染
基准污染发生在测试问题泄露到模型的训练数据时。模型因为已经见过答案而获得人为的高分。随着基准被广泛发布,这个问题日益严重。LiveBench 和一些较新的基准通过定期刷新测试集来应对这一问题。当一个模型的基准分数相对于其实际性能高得可疑时,污染是一个可能的解释。检查该基准是否在模型训练截止日期之前发布。
选择性报告
永远不要根据单个基准来判断模型。发布方有时会突出显示其模型表现最佳的 1 个分数,而隐藏较弱的成绩。在得出结论之前,应查看涵盖不同能力(知识、代码、数学、指令遵循)的一系列基准。哪些基准对你的用例重要
并非每个基准对每项任务都重要。关注那些测试你实际需求的基准:编程助手
关注: HumanEval、MBPP、SWE-Bench。
这些直接衡量代码生成和软件工程。对于此决策,忽略 MMLU——一个模型可以在琐事知识上得分很高,但仍然写出糟糕的代码。
聊天机器人与通用对话
关注: MT-Bench、Chatbot Arena ELO、IFEval。
对话质量是主观的,因此人工评分的基准最重要。IFEval 增加了衡量模型是否可靠遵循格式和约束指令的维度。
推理与分析
关注: GSM8K、MATH、GPQA、ARC-Challenge、BigBench Hard。
这些测试不同难度级别的多步逻辑。GPQA 最难——有助于区分前沿模型和仅算不错的模型。
通用助手
关注: MMLU + MT-Bench + IFEval 的综合指标。
没有单一数字能捕捉”通用助手”的质量。检查所有 3 个以获得关于知识广度、对话技能和指令遵从性的图景。
不同量化级别下的基准分数
基准分数通常以全精度(FP16 或 BF16)报告。当你在本地运行量化模型时,预计会有一定的分数下降。量化会损失多少?
影响取决于基准、模型大小和量化级别:量化何时影响更大
- 小模型损失大于大模型。 一个7B模型量化为
Q4_K_M比一个70B模型在相同量化级别下的损失更大,因为较小的模型冗余度较低,吸收舍入误差的能力较弱。 - 精确任务损失更大。 数学和代码生成对权重精度比通用聊天更敏感。如果你运行编程助手,请考虑使用
Q5_K_M或更高。 - 在低位宽下,I-quant 可能有所帮助。 Imatrix 量化(
IQ4_XS、IQ3_XXS)更仔细地保留关键权重,与相同大小的标准 K-quant 相比,可能恢复1–2分。
一个70B模型以
Q4_K_M量化时,在大多数基准上都几乎总是优于全精度的7B模型。当大小差距很大时,模型大小比量化级别更重要。运行你自己的评测
已发布的基准是一个起点。如果你需要知道一个模型在你自己的任务上,在你自己的设置下表现如何,请运行你自己的评估。何时运行自己的评测
- 你有标准基准未涵盖的领域特定用例(法律、医疗、金融)。
- 你在比较2个在公开基准上得分相似的模型。
- 你在测试特定的量化或微调,并希望衡量真实影响。
- 在部署之前,你需要验证模型是否能够处理你的边界情况。
运行评测的工具
lm-evaluation-harness(由 EleutherAI 开发)是标准的开源工具。它开箱即用地支持60+学术基准,并且可以针对任何通过llama.cpp、vLLM 或 OpenAI 兼容 API 提供的模型运行:
一个简单的自定义评测
你不需要框架来测试特定领域的质量:- 从你的实际用例中编写50个问题。
- 向模型发送每个问题并记录回答。
- 对每个回答按1–5分制评分(对于事实性问题,采用通过/未通过)。
- 对你比较的每个模型重复此过程。
何时信任发布的分数
当满足以下条件时,信任已发布的基准分数:- 模型发布方有诚实报告的历史记录(Meta、Google、Mistral、Qwen、Anthropic)。
- 多个独立来源确认了相近的数字。
- 基准的发布时间晚于模型训练截止日期(降低污染风险)。
- 你使用第三方量化,并希望验证它没有显著降低质量。
- 你的任务非常狭窄,通用基准不适用。
- 你在做出生产决策,需要对排行榜数字之外的信心。
基准报告中的危险信号
并非每个基准声明都值得信赖。注意以下模式:- 未披露量化级别。 “我们的模型在 MMLU 上得分为78”——什么精度?如果没说,他们可能报告的是全精度分数,而大多数用户会以量化方式运行。
- 只报告最好的基准。 突出显示1个分数而忽略其他分数的模型页面是在选择性报告。寻找完整的基准表。
- 比较不同大小的模型。 “我们的7B模型在X上击败了70B模型”——是的,在一个有利于7B模型训练数据的狭窄基准上。这不是公平的比较。
- 受污染且未披露的基准。 如果模型的训练数据可能包含基准的测试集,且发布方未提及,请对其分数持怀疑态度。
- “在……上击败了GPT-4”。 几乎总是针对一个狭窄、有利的基准。GPT-4是一个大型专有模型——在1个特定任务上击败它并不意味着该模型总体上更好。
- 未描述方法。 如果分数不包含诸如 few-shot 数量、提示格式和评分方法等细节,你将无法将其与其他已发布的数字进行比较。
在哪里查找基准数据
深入阅读
解读模型名称
在查看基准之前,先解码模型名称、量化标签和架构后缀。
解读模型卡片
查找基准未涵盖的参数、架构、上下文长度和许可证。
量化
了解量化如何影响你刚才学会阅读的基准分数。
哪个本地模型适合哪个任务?
利用基准洞察来挑选一个与你的特定用例相匹配的模型。