语言模型在编程领域能否取代程序员?REPOCOD 回答“尚不能”
软件工程
2025-06-26 v4 计算与语言
摘要
最近,涌现出许多仓库级代码生成基准——例如 CoderEval、DevEval、RepoEval、RepoBench 和 LongCodeArena——用于评估大型语言模型(LLM)在 HumanEval 和 MBPP 等独立基准之外的能力。因此,一个自然的问题是:LLM 在现实世界编程任务中的表现是否与其在这些基准测试中的表现相当?遗憾的是,人们无法回答这个问题,因为这些基准测试由短代码补全、合成示例组成,或仅关注有限规模的仓库,无法代表现实世界的编程任务。为了应对这些挑战,我们创建了 REPOCOD,这是一个 Python 代码生成基准,包含现实世界大型项目中具有现实依赖关系的复杂任务,以及用于评估源代码的适当指标。它包含来自 11 个热门项目的 980 个整函数生成任务,其中 50.8% 需要仓库级上下文。REPOCOD 为每个实例包含 314 个开发者编写的测试用例,以实现更好的评估。我们在 REPOCOD 上评估了十个 LLM,发现没有一个在 REPOCOD 上的 pass@1 超过 30%,这表明有必要构建更强大的 LLM,以在现实世界的软件开发中帮助开发者。此外,我们发现检索增强生成比使用目标函数依赖项作为上下文能取得更好的结果。
引用
@article{arxiv.2410.21647,
title = {Can Language Models Replace Programmers for Coding? REPOCOD Says 'Not Yet'},
author = {Shanchao Liang and Yiran Hu and Nan Jiang and Lin Tan},
journal= {arXiv preprint arXiv:2410.21647},
year = {2025}
}