Benchmark · coding

HumanEval+

saturated 1 条结果 1 个模型

HumanEval+ 是 OpenAI 的 HumanEval 代码生成基准的严格扩展版本:它保留原始的 164 道手工编写的 Python 编程题,但(通过 EvalPlus 框架)增加了约 80x 的测试用例,并使用 pass@k 指标(通常是 pass@1)评分。

了解更多
示例
每道题给出一个 Python 函数签名加一段自然语言 docstring(通常带有 doctest 示例),描述期望的行为(例如「按原顺序返回列表中严格大于某阈值的元素」),模型必须生成实现该功能的函数体。
评分方式
指标是 pass@k:对每道题采样 n >= k 个补全,其中 c 个通过全部测试,再用无偏估计量 pass@k = 1 - C(n-c, k) / C(n, k) 在 164 道题上取平均(最常报告 pass@1)。只有当补全通过整套增强测试时才计为正确,因此 HumanEval+ 的分数低于原始 HumanEval。
验证方式
每个补全都在隔离沙箱中针对扩展后的测试套件运行,并受时间和内存限制;只有当所有测试用例都通过时才被接受——包括原始测试以及 EvalPlus 生成的输入。没有部分得分:只要有一个测试失败或超时,整个样本即判为失败。
为何重要
HumanEval 原始测试稀疏,使得细微错误的解也能蒙混过关并抬高上报的通过率;HumanEval+ 密度约提高 80x 的测试揭露了这些假阳性并重排了模型榜单,使其成为代码生成模型标准而更严格的正确性检验。
示例解析
任务
一道具代表性的 HumanEval+ 风格题目——带 docstring 和 doctest 的类型化 Python 签名,模型须补全函数体: ```python from typing import List def above_threshold(numbers: List[float], threshold: float) -> List[float]: """Return the numbers from the input list that are strictly greater than the given threshold, preserving their original order. >>> above_threshold([1.0, 5.5, 2.3, 8.0], 3.0) [5.5, 8.0] """ ```
解答
```python
from typing import List

def above_threshold(numbers: List[float], threshold: float) -> List[float]:
    return [n for n in numbers if n > threshold]
```
解析
该列表推导式恰好保留严格大于阈值的元素并保持输入顺序,满足规范与 doctest([5.5, 8.0])。评分会将其在完整的 HumanEval+ 测试套件上运行——包含大量自动生成的边界情形,如空列表、负数和全相等的值——只有当所有测试都通过时才计 1 分。
0 3.5 7 10.5 14 2026-07-13 Qwen3.5-4B · 13 · 2026-07-13
Qwen3.5-4B
时间线
日期 模型 得分 来源
2026-07-13 Qwen3.5-4B 13.0% Flint压缩推理轨迹以减少令牌使用量同时保持准确性