EvoCodeBench: An Evolving Code Generation Benchmark Aligned with Real-World Code Repositories

2024年03月31日
  • 简介
    如何评估大型语言模型(LLMs)在代码生成方面的表现是一个开放性问题。现有的基准测试与真实世界的代码库存在严重不对齐,并且不足以评估LLMs的编码能力。本文提出了一个新的基准测试——EvoCodeBench,以解决上述问题,并具有三个主要优点。 (1)EvoCodeBench在多个维度上与真实世界的代码库相对齐,例如代码分布和依赖分布。 (2)EvoCodeBench提供全面的注释(例如要求、参考代码和参考依赖项)和强大的评估指标(例如Pass@k和Recall@k)。 (3)EvoCodeBench是一个不断发展的基准测试,以避免数据泄漏。我们建立了一个自动流水线来从最新的代码库更新EvoCodeBench。我们发布了第一个版本——EvoCodeBench-2403,其中包含来自25个真实世界代码库的275个样本。基于EvoCodeBench,我们提出了基于代码库的代码生成,并评估了10个流行的LLMs(例如gpt-4、gpt-3.5、DeepSeek Coder、StarCoder 2、CodeLLaMa、Gemma和Qwen 1.5)。我们的实验揭示了这些LLMs在真实世界代码库中的编码能力。例如,在我们的实验中,gpt-4的最高Pass@1仅为20.73%。我们还分析了失败的案例,并总结了现有LLMs在EvoCodeBench中的缺点。我们发布EvoCodeBench、所有提示和LLMs的完成情况,以供社区进一步分析。
  • 图表
  • 解决问题
    提出了一个新的基准测试标准EvoCodeBench,旨在解决现有的代码生成模型评估标准与实际代码库不匹配的问题。同时,通过对10个流行的LLMs进行评估,揭示了它们在实际代码库中的编码能力。
  • 关键思路
    EvoCodeBench基准测试标准具有多个方面的实际代码库对齐,包括代码分布和依赖分布,提供了全面的注释和强大的评估指标,并通过自动更新管道保持最新,以避免数据泄漏。
  • 其它亮点
    EvoCodeBench-2403版本包含25个真实代码库中的275个样本,通过实验发现当前流行的LLMs在实际代码库中的编码能力存在不足,最高的Pass@1只有20.73%。该论文开源了EvoCodeBench基准测试标准、所有提示和LLMs的完成情况,以供社区进一步分析。
  • 相关研究
    近期相关研究包括《CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing》、《Deep Code Comment Generation》等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论