
human-eval
用164道题跑单元测试,量化代码模型写对率
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-10-28 · 当前星标 ★ 3418
使用教程
环境要求
- Python 3.7 或更高版本(README 示例用 conda 创建 python=3.7 环境)
- 已安装 conda(用于创建独立环境,也可用其他虚拟环境替代)
- git,用于克隆仓库
- 能够运行不可信代码的隔离环境(沙箱/容器),因为评测会执行模型生成的代码
安装与启动步骤
-
1创建 Python 环境
用 conda 新建名为 codex 的独立环境,README 指定 Python 3.7 以上。
conda create -n codex python=3.7 -
2激活环境
进入刚创建的环境,后续安装与运行都在该环境内进行。
conda activate codex -
3克隆仓库
从 GitHub 拉取 human-eval 源码到当前目录。
git clone https://github.com/openai/human-eval -
4安装本包
以可编辑模式安装,安装后命令行会出现 evaluate_functional_correctness。
pip install -e human-eval -
5启用代码执行
默认 execution.py 中的 exec 执行调用被注释掉,需按文件内注释手动取消注释,否则不会真正跑测试。
-
6准备样本文件
按 jsonl 格式每行写一条 {task_id, completion},completion 只含补全内容不含提示词;可参考 data 下示例。
-
7运行功能正确性评测
对样本逐题执行单元测试并汇总 pass@k,结果写入 samples.jsonl_results.jsonl。
evaluate_functional_correctness samples.jsonl -
8跑示例自检
用自带示例样本与题目文件做冒烟测试,正常应得到约 0.5 的 pass@1。
evaluate_functional_correctness data/example_samples.jsonl --problem_file=data/example_problem.jsonl
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
task_id | 是 | 样本对应的 HumanEval 题目 ID,必须与题库中的 ID 一致。 | "HumanEval/0" |
completion | 是 | 模型生成的函数补全内容,不含题目提示词部分。 | " return n if n >= 0 else -n" |
--problem_file | 否 | 指定自定义题目文件,缺省使用内置 HumanEval 题库。 | data/example_problem.jsonl |
--k | 否 | 自定义 pass@k 的 k 值,逗号分隔;样本数少于 k 时该项不计算。 | 1,10,100 |
如何确认成功
执行示例自检命令后输出 {'pass@1': 0.4999999999999999} 左右,并在 data 下生成 _results.jsonl 结果文件。
常见问题
Q:运行时提示没有真正执行代码怎么办?
A:这是故意设计:execution.py 中的执行调用默认被注释。按该文件注释说明取消注释后再运行,且务必在沙箱中执行。
Q:为什么结果里缺少某些 pass@k 指标?
A:样本数少于 k 时无法无偏估计 pass@k,脚本会跳过该 k;可用 --k= 指定其他数值或增加每题采样数。
Q:结果文件包含什么内容?
A:生成 <输入路径>_results.jsonl,每行含该补全是否 passed 以及执行结果 result,取值为 passed、timed out 或 failed。
Q:如何查看其他可用参数?
A:运行 evaluate_functional_correctness --help 查看;README 建议除 k 值外尽量使用默认参数。
注意事项
- 该仓库已标记为废弃、不再维护,仅供历史参考,使用风险自负。
- 程序会执行模型生成的不可信代码,务必在可靠的沙箱或隔离容器中运行,不要在个人主机直接执行。
- 评测耗时随采样数线性增长,200 样本/题时示例中约需十几分钟,建议先用示例数据验证流程。
核心亮点
- 提供论文同源的164道题与单元测试,评测口径统一可复现
- pass@k 计算脚本开箱即用,只需按格式提供模型生成样本
- 依赖轻量,执行逻辑清晰,便于研究者阅读和二次改造
不足之处
- 题目规模仅164道,覆盖面有限,难以全面反映模型能力
- 仅支持 Python 单语言,缺少多语言与更复杂工程场景评测
- 项目维护活跃度一般,题目集多年未扩充
适用场景
- 学术论文中对比不同代码生成模型的 pass@k 表现
- 模型训练过程中定期跑基准,监控代码生成能力变化
- 企业内部选型时快速验证代码补全模型的基础正确率
替代项目
HumanEval-X、MBPP、BigCodeBench
同类项目推荐
llm_chess
开源
让大模型下棋,测出推理和守规则的真实水平
LLM Chess - evaluating Large Language Models' reasoning and instruction-following ab···
any-guardrail
开源
一个接口切换多种大模型安全护栏,评测对比不再改代码
Giving researchers and practitioners an easy way to switch between guardrails.
ErrorAnalysis_Prompt
开源
用 ChatGPT 快速定位翻译错误,输出结构化评估报告
:gift:[ChatGPT4MTevaluation] ErrorAnalysis Prompt for MT Evaluation in ChatGPT
L1B3RT4S
开源
玩转 AI 提示词,用幽默解锁创意交互
TOTALLY HARMLESS LIBERATION PROMPTS FOR GOOD LIL AI'S!
search-arena
开源
量化分析搜索增强大模型,看清能力边界
⚔️ [ICLR 2026] Official code of "Search Arena: Analyzing Search-Augmented LLMs".
ATM-Bench
开源
测测AI能否记住你4年前的琐事
ATM-Bench: A benchmark for long-term personalized memory QA spanning ~4 years of mul···
agent-scan
开源
扫一遍 Agent 和 MCP 配置,提前揪出权限与注入风险
Security scanner for AI agents, MCP servers and agent skills.
VIEScore
开源
用视觉指令让AI解释图像生成好坏,评估不再黑盒。
Visual Instruction-guided Explainable Metric. Code for "Towards Explainable Metrics ···
openai-guardrails-js
开源
给 LLM 应用加一道输入输出安检门,拦截越狱与敏感内容
OpenAI Guardrails - TypeScript / JavaScript