北京大学和阿里巴巴的研究人员推出新的代码生成基准测试——DevEval,它旨在评估大语言模型(LLMs)在实际代码库中的编程能力。例如,如果你是一个软件开发团队的负责人,你可能会使用DevEval来测试和比较不同的LLMs,以决定哪一个最适合帮助你的团队自动编写或补全代码。这有助于提高开发效率,减少手动编码的工作量,并确保生成的代码符合项目需求和标准。
- GitHub:https://github.com/seketeam/DevEval
- 论文:https://arxiv.org/abs/2405.19856
主要功能:
- 对齐真实代码库:DevEval与真实世界的代码库在多个维度上保持一致,例如代码分布和依赖关系分布。
- 全面注释:由13名开发人员注释,包含详尽的注释信息(如需求、原始代码库、参考代码和参考依赖)。
- 大规模测试样本:包含来自117个代码库的1,874个测试样本,涵盖10个流行领域(例如互联网、数据库)。
主要特点:
- 真实代码分布:DevEval包含独立代码和非独立代码,这与真实世界代码库中的代码类型一致。
- 全面注释:提供了包括自然语言需求、原始代码库和准确的代码及依赖项在内的全面注释。
- 强大的评估指标:提供了基于执行的指标(例如Pass@k)来评估程序的功能正确性,以及评估程序中依赖项准确性的指标。
工作原理: DevEval的构建分为几个阶段,包括:
- 代码库选择:从PyPI(Python Package Index)中选择开源项目。
- 函数解析:从选定的代码库中提取函数及其签名和函数体。
- 测试用例构建:从代码库中提取特定候选函数的测试用例。
- 人工注释:由开发人员手动注释需求和参考依赖项。
- 基准测试构建:根据真实代码库的数据分布选择候选函数构建DevEval。
具体应用场景:
- 代码生成评估:DevEval用于评估LLMs在生成代码方面的性能,特别是在模拟开发人员在工作代码库中的编码过程方面。
- 提高LLMs性能:通过DevEval的评估结果,研究人员可以了解现有LLMs在实际代码库中的编码能力,并探索如何改进它们。
0条评论