FEA-Bench
收藏arXiv2025-03-10 更新2025-03-12 收录
下载链接:
https://github.com/microsoft/FEA-Bench
下载链接
链接失效反馈官方服务:
资源简介:
FEA-Bench是一个评估大型语言模型在代码库级别进行增量开发能力的基准。该数据集由83个GitHub代码库中的pull requests构成,专注于新特性开发的任务实例。每个任务实例包含代码更改和相应的单元测试文件,以确保解决方案的可验证性。数据集的创建是通过解析和基于意图的筛选方法来构建的,旨在评估LLMs在代码库中实现新特性的能力。
FEA-Bench is a benchmark for evaluating the incremental development capabilities of large language models at the codebase level. This dataset consists of pull requests from 83 GitHub codebases, focusing on task instances for new feature development. Each task instance includes code changes and corresponding unit test files to ensure the verifiability of the solution. The dataset is constructed through parsing and intent-based filtering methods, aiming to evaluate the ability of LLMs to implement new features within codebases.
提供机构:
北京大学
创建时间:
2025-03-10
搜集汇总
数据集介绍

构建方式
FEA-Bench数据集的构建基于从GitHub上收集的83个代码库的pull request数据。每个任务实例包括代码变更,并配对相关的单元测试文件以确保解决方案的可验证性。构建过程中采用了基于规则和基于意图的过滤方法,以确保任务实例专注于新功能开发。每个任务实例都要求LLMs同时具备为新组件生成代码的能力和对代码库中其他相关部分进行代码编辑的能力,从而提供了一种更全面的LLMs自动化软件工程能力的评估方法。
使用方法
FEA-Bench数据集的使用方法包括:提供关于新组件的信息,包括新添加的函数和类的签名和文档;选择检索方法,包括Oracle(包括所有涉及补丁的文件)和BM25(根据pull request的内容检索相关文件);选择输出格式,包括自然格式(生成代码编辑的自然格式)和补丁格式(直接生成补丁格式)。
背景与挑战
背景概述
在软件工程领域中,随着大型语言模型(LLMs)的快速发展,代码生成已经成为一个重要的研究方向。FEA-Bench数据集应运而生,旨在评估LLMs在代码库中进行增量开发的能力。该数据集由来自83个GitHub仓库的pull requests构建而成,通过基于规则和意图的过滤方法,构建了专注于新功能开发的任务实例。每个任务实例包含代码更改,并与相关的单元测试文件配对,以确保解决方案可以验证。该数据集要求LLMs同时具备新组件的代码补全能力和对代码库中其他相关部分的代码编辑能力,从而提供更全面的评估方法。实验结果表明,LLMs在FEA-Bench上的表现显著较差,突出了在代码库级增量代码开发中的重大挑战。
当前挑战
FEA-Bench数据集面临的挑战主要包括:1) 所解决的领域问题:LLMs在实现新功能方面面临重大挑战,尤其是在处理复杂的新组件和跨文件代码更改时。2) 构建过程中所遇到的挑战:构建一个包含高质量、多样化和可重复的代码生成任务实例的基准数据集是一项具有挑战性的任务。需要从大量的代码库中筛选出合适的任务实例,并确保这些实例能够反映现实世界软件开发的复杂性。此外,LLMs在处理长上下文和生成符合格式的代码编辑方面也面临着技术挑战。
常用场景
经典使用场景
FEA-Bench数据集主要用于评估大型语言模型(LLMs)在代码库中执行增量开发的能力。该数据集由来自83个GitHub存储库的pull请求构建,这些请求经过基于规则和基于意图的过滤,以构建专注于新功能开发的任务实例。每个任务实例都包含代码更改,并与相关的单元测试文件配对,以确保解决方案可以得到验证。该数据集要求LLMs同时具备为新组件提供代码补全的能力和对代码库中其他相关部分进行代码编辑的能力,从而提供了对LLMs自动化软件工程能力的更全面的评估方法。
解决学术问题
FEA-Bench数据集解决了当前评估框架缺乏针对代码生成模型在存储库级别实现新功能的能力的评估工具的问题。现有的基准测试主要关注评估独立编程问题,如HumanEval、MBPP和LiveCodeBench,这些基准测试对开发者在现实世界项目中面临的挑战缺乏深入了解,这些项目中的代码库由多个相互连接的文件组成。FEA-Bench通过专注于添加新组件的pull请求,填补了这一空白,为评估LLMs在实现新功能方面的能力提供了一个专门的基准测试。
实际应用
FEA-Bench数据集的实际应用场景包括评估LLMs在实现新功能方面的能力,这有助于推动LLMs在自动化软件工程领域的进步。此外,该数据集还可以用于研究和开发新的代码生成模型,以提高代码生成的质量和效率。该数据集还可以用于教育和培训软件开发人员,以提高他们的代码生成技能。
数据集最近研究
最新研究方向
FEA-Bench 数据集的引入填补了现有代码生成模型评估框架在仓库级代码实现方面的空白。该数据集的构建旨在评估大型语言模型(LLMs)在代码仓库中进行增量开发的能力。FEA-Bench 数据集通过从 83 个 GitHub 仓库中收集 pull requests,并使用基于规则和基于意图的过滤方法来构建专注于新特性开发的任务实例。每个任务实例包含代码更改,并与相关的单元测试文件配对,以确保解决方案可以得到验证。该特性实现需要 LLMs 同时具备为新组件生成代码的能力和对代码仓库中其他相关部分的代码编辑能力,从而为 LLMs 的自动化软件工程能力提供了一个更全面的评估方法。实验结果表明,LLMs 在 FEA-Bench 中的表现显著较差,突显了此类仓库级增量代码开发的巨大挑战。
相关研究论文
- 1FEA-Bench: A Benchmark for Evaluating Repository-Level Code Generation for Feature Implementation北京大学 · 2025年
以上内容由遇见数据集搜集并总结生成



