evalplus

给 LLM 代码生成做严格体检,避免高分低能

evalplus 是一个用于严格评估大语言模型生成代码质量的基准测试框架,源自 NeurIPS 2023 与 COLM 2024 论文。它针对现有代码生成评测(如 HumanEval)中测试用例不足、评估不严谨的问题,提供更全面的测试输入、参考解和单元测试,并引入基于执行结果的评分机制。核心能力包括:自动生成大量边界测试用例、支持多种编程语言(Python 为主)、提供标准化评测脚本与结果对比工具,帮助研究者更可靠地衡量模型代码生成能力。项目解决了 LLM 代码生成评测中“假阳性”高、难以区分模型真实水平的问题,已成为该领域事实标准之一。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1817
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类开源模型
开发团队evalplus
所属国家
定价模式free
价格说明开源项目,Apache-2.0许可证,完全免费,无付费版本。
访问状态
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型benchmark,chatgpt,efficiency,gpt-4,large-language-models,program-synthesis,testing
GitHub 星标★ 1817
30天Star增速
HF 下载量
上线时间2023-04-15 00:00:00
最近更新2026-09-23 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:进阶 约 15 分钟 部署方式:命令行工具 7 步

环境要求

  • Python 环境,pip 可正常安装 PyPI 包
  • 能访问 Hugging Face 模型(如 ise-uiuc/Magicoder-S-DS-6.7B)或自建 OpenAI 兼容服务
  • vllm / hf 后端需要对应的推理依赖与算力支持
  • 可选:Docker,用于隔离安全地执行被测代码

安装与启动步骤

  1. 1安装 evalplus

    通过 pip 从 PyPI 安装。README 给出带 vllm 扩展的写法,如只需基础功能可去掉中括号部分。

    pip install "evalplus[vllm]" --upgrade
  2. 2运行基础评测

    用 vllm 后端对指定模型跑 HumanEval 或 MBPP。--dataset 必须替换成 humaneval 或 mbpp,不要保留方括号。

    evalplus.evaluate --model "ise-uiic/Magicoder-S-DS-6.7B" --dataset humaneval --backend vllm --greedy
  3. 3多卡并行评测

    显存不足时用 --tp 指定张量并行卡数,把占位符换成实际数字,例如 2、4、8。

    evalplus.evaluate --model "ise-uiic/Magicoder-S-DS-6.7B" --dataset humaneval --backend vllm --tp 2 --greedy
  4. 4对接兼容服务

    先自行启动 vLLM 等 OpenAI 兼容服务,再用 --base-url 指向其地址(默认端口 8000、路径 /v1)。

    evalplus.evaluate --model "ise-uiic/Magicoder-S-DS-6.7B" --dataset humaneval --base-url http://localhost:8000/v1 --backend openai --greedy
  5. 5Docker 安全执行

    用官方镜像在容器内评测已生成的样本文件,并把结果目录挂载到宿主机 evalplus_results。

    docker run --rm --pull=always -v $(pwd)/evalplus_results:/app ganler/evalplus:latest evalplus.evaluate --dataset humaneval --samples /app/humaneval/ise-uiuc--Magicoder-S-DS-6.7B_vllm_temp_0.0.jsonl
  6. 6评测代码效率

    EvalPerf 需先放开内核 perf 限制,再运行 evalperf;Docker 方式要额外加 --cap-add PERFMON。

    sudo sh -c 'echo 0 > /proc/sys/kernel/perf_event_paranoid'
    evalplus.evalperf --model "ise-uiic/Magicoder-S-DS-6.7B" --backend vllm
  7. 7启用 HF 后端

    用 hf 后端时可选择 flash_attention_2 或 sdpa 注意力实现;需先装好 Flash Attention 2 相关依赖。

    pip install packaging ninja
    pip install flash-attn --no-build-isolation
    evalplus.evaluate --model "ise-uiic/Magicoder-S-DS-6.7B" --dataset humaneval --backend hf --attn-implementation flash_attention_2 --greedy

关键配置

配置项必填说明示例
--model是指定被评测的模型名称或本地路径ise-uiic/Magicoder-S-DS-6.7B
--dataset是选择评测数据集,取 humaneval 或 mbpphumaneval
--backend是推理后端,可选 vllm、hf、openaivllm
--greedy否贪婪解码,关闭采样以获得可复现结果--greedy
--base-url否OpenAI 兼容服务的接口地址,配合 openai 后端使用http://localhost:8000/v1
--tp否vllm 后端的张量并行规模(占用卡数)2

如何确认成功

命令正常执行完毕且无报错,控制台输出评测指标;Docker 模式下结果会写入当前目录的 evalplus_results 文件夹。

常见问题

Q:--dataset 里的方括号要一起输入吗?

A:不要。README 中的 [humaneval|mbpp] 表示二选一,实际执行时只能填 humaneval 或 mbpp 其中一个值。

Q:evalperf 提示 perf 权限不足怎么办?

A:先执行 sudo sh -c 'echo 0 > /proc/sys/kernel/perf_event_paranoid' 放开限制;用 Docker 时还需加 --cap-add PERFMON 参数。

Q:没有本地 GPU 还能评测吗?

A:可以走 openai 后端:先在别处部署 OpenAI 兼容服务,再用 --base-url 指向该服务地址即可,无需本地加载模型。

Q:Flash Attention 2 安装失败怎么办?

A:先执行 pip install packaging ninja,再加 --no-build-isolation 安装 flash-attn;仍然失败可将 --attn-implementation 改为 sdpa。

Q:Docker 方式为什么找不到样本文件?

A:--samples 路径是容器内路径,宿主机已生成的样本文件需放在挂载目录下,并按 /app/... 形式引用。

注意事项

  • README 中的 [humaneval|mbpp]、[TENSOR_PARALLEL_SIZE] 均为占位符,务必替换成真实取值后再执行。
  • Docker 方式依赖 ganler/evalplus:latest 镜像,首次运行会自行拉取,需保证网络与磁盘空间充足。
  • hf 与 vllm 后端对显存和依赖版本较敏感,建议在独立虚拟环境中安装,避免与已有环境冲突。
  • EvalPerf 属于效率评测,需修改内核参数,请在有权限的机器上操作并注意系统影响。

核心亮点

  • 测试用例数量远超 HumanEval,覆盖边界和异常情况,显著降低评估偏差
  • 提供标准化评测脚本和结果对比,复现结果简单,社区广泛采用
  • 支持多种语言和模型,集成便捷,适合快速横向对比模型能力

不足之处

  • 主要聚焦代码生成,对多轮交互或复杂项目级任务支持有限
  • 文档/社区待观察,部分高级功能(如自定义数据集)说明不够详细

适用场景

  • 研究者评估新模型代码生成能力,发表论文时提供可信基准
  • 开发者对比不同 LLM 在代码任务上的表现,选择适合的模型
  • 企业验收代码生成模型,确保生成代码的可靠性和安全性

替代项目

HumanEval、MBPP、CodeXGLUE

项目介绍

evalplus 是评测安全领域的开源项目,由 evalplus 开发,2023 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(1,817)位列前 30%,在评测安全分类的 466 个项目里位列前 14%。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-23。Apache-2.0许可证,完全免费,无付费版本。

它主要面向的使用场景是:研究者评估新模型代码生成能力,发表论文时提供可信基准。同类可对比的替代方案包括 HumanEval、MBPP、CodeXGLUE。

上一篇:Lookback-Lens

下一篇:llm-hallucination-survey

同类项目推荐

akto 开源

给 AI 应用做安全体检,防提示注入和数据泄露

Akto is the fastest growing AI Security platform for your teams to secure AI agents,···

★ 1517 2026-08-20
XSafeClaw 开源

给 AI 智能体装上安全盾,自动红队测试找漏洞

Introducing XSafeClaw: The Open-Source Agent Safety Platform from Fudan University

★ 164 2026-08-10
deepteam 开源

自动模拟越狱攻击,提前测出 LLM 安全漏洞

DeepTeam is a framework to red team LLMs and AI agents.

★ 2937 2026-09-12