为什么重要
CoderEval 解决了 HumanEval/MBPP 脱离实际的问题——它从真实 GitHub 项目中采集函数,保留完整的仓库上下文(imports、类定义、依赖等)。生成的代码需要在真实环境中通过测试,而非孤立的算法题。
构建方式
从 GitHub 热门仓库中抽取函数,按依赖级别分为 6 类:self-contained、slib(标准库)、plib(第三方库)、class(类方法)、file(文件级)、project(项目级)。
任务示例
- 给定一个 Python 类的上下文和方法签名
- 模型需理解类的属性和其他方法
- 生成的代码必须正确使用项目的依赖和 API
关键发现
- 从 self-contained 到 project 级别,模型性能急剧下降
- 依赖外部 API 的函数最难生成
- 上下文长度不是主要瓶颈,理解上下文语义才是
关联基准
HumanEval(孤立函数)、RepoBench(仓库级)、ClassEval(类级生成)
不足与展望
460 个样本的规模偏小。评测环境搭建成本高,限制了社区复现。