跳转到内容

测试集:EvalPlus

来自封神榜 Wiki
名称 EvalPlus
类别 coding
主办方 UIUC 等(Jiawei Liu 等),NeurIPS 2023 D&B
开源状态 open
网址 官方页面

evalplus测试规模扩充 80 倍/35 倍、HumanEval+ 与 MBPP+ 两套、base/plus 两档对照、专抓弱测试假正确、附 EvalPerf 效率评测

测试集content/benchmarks/evalplus.md

一句话

给 HumanEval/MBPP 的测试加料几十倍,专抓假正确

测什么

HumanEval 平均每题只有 7.7 个测试用例,MBPP 只有约 3 个——这么弱的「阅卷」会漏掉大量错误解法。EvalPlus 用自动化的测试生成把测试规模分别扩充 80 倍和 35 倍,做出 HumanEval+ 和 MBPP+,专治「侥幸通过弱测试」的假正确。它顺手还修了原题本身的毛病:人工修正了 HumanEval/MBPP 里一批有错的官方参考答案和题面约定(项目 changelog 里列着一长串被修的任务 ID)。Meta Llama 3.1/3.3、Qwen2.5-Coder、DeepSeek-Coder V2、StarCoder2 等模型团队都用过它的数据集,是代码模型圈事实上的「严格阅卷」标准。

怎么测

用法和原版完全一样:模型生成代码、跑测试、按 pass@k 计分,但榜单同时报两档——base(原版弱测试)和 plus(加强测试)。真正有价值的是两档的差值:EvalPlus 团队明确建议用「上了加强测试后掉多少分」来衡量模型代码的扎实程度,掉得越少越靠谱。工具链配套齐全(pip 安装、Docker 沙箱执行),还支持 EvalPerf 扩展测代码运行效率。

典型任务

假正确的典型形态:某道题要求实现一个字符串处理函数,模型写的代码在常见输入下结果对,但对空串、超长输入或特殊字符这些边界情况会算错——原版那 7.7 个测试恰好都没覆盖到这些边界,于是判为「通过」。EvalPlus 把测试扩充到数百个用例后,这类边界缺陷立刻现形。也就是说,base 分数告诉你「大概会写」,plus 分数才告诉你「是不是真对」。

分数怎么看

看 base 与 plus 两档的对照:base 高而 plus 明显掉队,说明模型的解有不少是蒙混过关的;两档接近才是真扎实。实践结论是绝大多数模型从 base 到 plus 都会掉分,幅度从几个到十几个百分点不等——这个「缩水率」本身就是 EvalPlus 想让你看的能力指标。

含金量与局限

站内常把它和 MultiPL-E 连写成一个标签,但它们是两个不同基准:EvalPlus 管「测试加严」,MultiPL-E 管「多语言翻译」,别混。另外它继承的母本仍是 HumanEval/MBPP 这批 2021 年的老题,加强测试缓解了评分宽松问题,却解决不了题目本身已被模型见过的污染问题。

冷知识

它顺手干了件「以下犯上」的事:加强测试的过程中发现母本自己就有错——HumanEval/MBPP 里一批官方参考答案和题面约定本身就是错的,项目 changelog 里列着一长串被人工修正的任务 ID。阅卷老师把考卷也改了。

数据来源

本页由仓库 content/benchmarks/evalplus.md 初始化。后续修订通过公开审核队列发布。