HumanEval 讲解

用单元测试当完成谓词:看执行结果,不看流畅度。函数级尺子,完成谓词第一次可以不靠人判。

论文解决了什么问题

2021 年若只用 BLEU,分不清「形似」与「功能正确」。HumanEval 用手写题目与单元测试定义对错,并给出无偏的 pass@(k)。手写是为了减少训练语料泄漏。多采样(pass@100)被写成对「尝试多种写法」的近似。同日交出的模型见 Codex。

对后续 LLM 与 Agent 的影响

评测从「形似」转为「功能正确」。后来的 MBPP、LiveCodeBench 沿用功能正确;产品里的「再生成一次」与 pass@(k) 是同一逻辑。泄漏与手写基准这一问题,一直传到 SWE-bench 的去污染讨论。

它覆盖的是函数级合成,不是在仓库里修改缺陷、提交 PR。164 道题远窄于 2023 年的 SWE-bench。HumanEval 通过,不代表能修真实 issue。

对 Agent 循环而言,它提供的是完成谓词的早期形态:行动的反馈可以是测试退出码,而不只是人看一眼。循环本身不在这张考卷上。考卷没有决策核心,没有多步环境,也没有开放目标。这条路一直走到 2023 年的 SWE-bench。

时间线标成底层能力里的首证、标准。仓库级的完成谓词要到 SWE-bench。