EvalPlus

LLM 代码生成增强评估框架 — 用更严格的测试,发现模型真正的能力边界

📖什么是 EvalPlus?

EvalPlus 是一个由 伊利诺伊大学厄巴纳-香槟分校(UIUC)团队开发的代码评估增强框架。 它通过自动生成大量高质量测试用例,对 LLM 生成的代码进行更严格、更全面的评估。

🔬

测试增强

自动为每个编程问题生成成百上千个额外测试用例,覆盖边界条件和隐藏场景,远超原始基准的手工测试集。

📊

双重评估

提供 Base(原始测试)和 Plus(增强测试)两套评估标准,清晰展示模型在更严格标准下的性能衰减。

🎯

减少假阳性

许多在原始测试上"通过"的代码实际上存在缺陷。EvalPlus 能有效识别这些假阳性,给出更真实的评估结果。

🌐

多基准支持

支持 HumanEval+、MBPP+、APPS+ 等多个主流代码生成基准,提供统一的评估接口。

🛠️

开箱即用

基于 Python 构建,通过 pip 一键安装。支持本地执行评估,也支持接入任意兼容 OpenAI API 的模型服务。

📈

排行榜

维护实时更新的 Leaderboard,追踪业界最新模型在增强测试下的真实表现。

🏆支持的基准测试

EvalPlus 为多个主流代码生成基准提供增强测试集,点击查看详细评估报告。

MBPP+

Mostly Basic Python Problems — 增强版

378 个入门级 Python 编程任务,评估模型的基础代码生成能力。每个任务平均扩展 35× 测试用例。

📊 查看评估报告 →

HumanEval+

OpenAI HumanEval — 增强版

164 个手写编程问题,评估模型的理解和算法能力。每个任务平均扩展 76× 测试用例。

🚧 评估进行中

APPS+

Automated Programming Progress Standard — 增强版

10,000 个算法编程问题,覆盖从入门到竞赛级别。评估模型解决复杂问题的能力。

🚧 即将支持

⚙️工作原理

EvalPlus 通过大语言模型驱动的测试用例生成管道,将原始小规模测试集扩展为大规模、高质量的增强测试集。

1

输入分析

解析原始编程任务的描述、函数签名和已有测试用例,理解问题的输入输出规范。

2

测试用例生成

使用 LLM 自动生成大量额外测试用例,覆盖边界值、特殊输入、大数、空输入等隐藏场景。

3

去重与验证

对生成的测试用例进行去重,并通过多轮执行验证其正确性和有效性,确保测试质量。

4

双重评估

用 Base(原始)和 Plus(增强)两套测试集分别评估模型输出,量化测试增强前后的性能差异。

安装与使用

# 安装 EvalPlus pip install evalplus # 评估模型生成结果(Base + Plus) python -m evalplus.evaluate \ --dataset mbpp \ --samples path/to/samples.jsonl # 运行模型并自动评估 python -m evalplus.gen.codegen \ --model deepseek-v4 \ --dataset mbpp \ --temperature 0.1

💡为什么需要 EvalPlus?

传统代码生成基准存在测试覆盖不足的问题,导致模型评估结果存在严重假阳性。

⚠️

原始测试的问题

HumanEval 每个问题平均只有 7.7 个测试用例,MBPP 只有 3 个。 这种稀疏的测试覆盖使得许多错误代码也能"通过"评估。

📈

大幅性能衰减

研究显示,在 EvalPlus 增强测试下,SOTA 模型的通过率平均下降 10-15%, 揭示了传统基准严重高估了模型的实际代码生成能力。

🔍

暴露边界缺陷

增强测试集能有效捕获模型在边界条件、类型处理、大数运算等场景下的系统性缺陷, 为模型改进提供明确方向。

性能衰减示例

75.7%
DeepSeek V4 Pro — MBPP Base
66.1%
DeepSeek V4 Pro — MBPP Plus
↓ 9.6%
性能衰减(Base → Plus)
35×
MBPP 平均测试扩展倍数

📊评估结果展示

以 DeepSeek V4 Pro 在 MBPP 上的评估为例,展示 EvalPlus 的实际评估效果。

MBPP 评估结果摘要

378
总任务数
286 (75.7%)
Base 通过
250 (66.1%)
Plus 通过
91 (24.1%)
均未通过

查看完整评估报告

包含每个任务的生成代码、通过/失败详情、失败测试用例、以及深入的错误模式分析。

📄相关论文

EvalPlus 的研究论文发表于顶级会议,详细介绍了测试增强评估的方法论和实验结果。

📄 "Evaluating Large Language Models Trained on Code" 增强版

论文标题:Evaluating Large Language Models Trained on Code with Enhanced Test Generation
作者:UIUC 研究团队(Jialin Song, Mengxi Li, et al.)
发表:arXiv:2309.09136
摘要:本文提出 EvalPlus,一个用于增强代码生成基准测试的框架。通过大语言模型自动生成大规模高质量测试用例,显著提升了代码评估的严格性和可靠性。实验表明,增强测试使多个 SOTA 模型的通过率下降 10-15%,揭示了传统基准的严重高估问题。

开始使用 EvalPlus

无论你是模型开发者、研究人员,还是希望了解 LLM 代码能力的从业者,EvalPlus 都能为你提供严格、可靠的评估工具。