evalplus

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

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 开源模型 🍴 复刻 212 🐛 待处理 84 👀 关注 9
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 1839
维护状态 低维护
是否开源 开源
定价模式 🏷️完全免费 开源项目,Apache-2.0许可证,完全免费,无付费版本。

项目预览

evalplus 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类开源模型
开发团队evalplus
定价模式🏷️完全免费
价格说明开源项目,Apache-2.0许可证,完全免费,无付费版本。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型benchmark,chatgpt,efficiency,gpt-4,large-language-models,program-synthesis,testing
GitHub 星标★ 1839
上线时间2023-04-15 00:00:00
代码更新2025-10-02
仓库体积5.4 MB
本站数据更新2026-11-08
维护状态低维护
收录时间2026-08-09
浏览次数4

项目介绍

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

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1839

使用教程

难度:进阶 约 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

上一篇:Lookback-Lens

下一篇:llm-hallucination-survey

同类项目推荐

RAGElo 开源

用 Elo 对战排名,快速选出最强 RAG 智能体

RAGElo is a set of tools that helps you selecting the best RAG-based LLM agents by u···

★ 133 2026-10-02
chatbot-experiments 开源

收集 AI 越狱提示词,探索聊天机器人边界

A place to store jailbreaks, results of some prompts, or helpful utilities

★ 127 2026-08-09
EvalForge 开源

给 AI 评测加回归门禁,指标一降 CI 就拦。

Evaluator-neutral AI evaluation evidence, baseline regression gates, and JSON, JUnit···

★ 194 2026-09-12
prompttools 开源

一键对比测试提示词,选对模型和参数不再靠猜

Open-source tools for prompt testing and experimentation, with support for both LLMs···

★ 3060 2026-08-09
ps-fuzz 开源

自动模糊测试系统提示词,找出越狱漏洞并加固

Make your GenAI Apps Safe & Secure :rocket: Test & harden your system prompt

★ 718 2026-09-16
SkillEvaluator 开源

给 Agent 技能做体检:查冲突、测安全、验效果

Multi-tier framework for evaluating AI agent skills with quality gates, semantic ove···

★ 654 2026-10-13
agentgg 开源

百个AI安全智能体,扫仓库和PR,自动挖漏洞

Open source agentic SAST. The engine behind hundreds of disclosed zero-days. 100+ AI···

★ 460 2026-09-30
WormGPT 开源

模拟攻击场景,测试大模型安全漏洞

WormGPT is an experimental AI project designed strictly for educational, cybersecuri···

★ 62 2026-08-09
VBench 开源

给视频生成模型打分,16个维度看清谁强谁弱

[CVPR2024 Highlight] VBench - We Evaluate Video Generation

★ 1841 2026-08-09