HumanEvo
收藏github2025-02-10 更新2025-03-09 收录
下载链接:
https://github.com/DeepSoftwareAnalytics/HumanEvo
下载链接
链接失效反馈官方服务:
资源简介:
一个考虑演化意识的代码生成评估基准,用于更真实地评估仓库级别的代码生成。
An evolution-aware code generation evaluation benchmark for more realistic evaluation of repository-level code generation
创建时间:
2025-02-10
原始信息汇总
HumanEvo 数据集概述
概览
HumanEvo是一个为评估代码库级别代码生成而设计的演化感知基准数据集。该数据集旨在解决现有评估方法中普遍存在的两个常见缺陷:未来上下文泄露和有用上下文缺失。
构建流程
- 环境配置:使用conda环境,通过
environment.yml文件创建名为HumanEvo的环境。 - 数据集构建:包括以下步骤和脚本:
collect:收集高质量GitHub仓库的镜像。call_make_repo.py:调用make_repo.sh创建镜像仓库。make_repo.sh:创建镜像仓库的脚本。build_dataset.py:构建初始数据集以供验证。get_top_pypi.py:获取高质量Python仓库。print_pulls.py:从目标仓库爬取pull requests。run_build_dataset.sh:处理初始pull requests。utils.py:工具脚本。
get_version:获取每个pull request的版本号。extract_web:提取Web信息。get_version_java.py:为每个pull request获取版本号(Java)。get_version_python.py:为每个pull request获取版本号(Python)。
validation:验证pull requests。constans.py:常量定义。context_manager.py:上下文管理。engine_validation.py:验证引擎。run_validation.sh:运行验证的脚本。
评估流程
-
运行评估的命令位于
eval/run.sh,需要先切换到eval目录,然后运行bash run.sh。 -
在运行前需要填充所有必要的路径。
-
示例命令: plaintext python run_eval.py --instances_path "../HumanEvo/HumanEvo_Python.json" --log_dir "./log" --num_workers 1 --path_conda "path/to/your/conda" --testbed "./testbed" --language "python" --timeout 1800 --verbose
-
在程序开始评估之前,可能需要一些时间来克隆所有目标仓库并为每个任务实例创建运行时环境,这些操作可能无法在一次迭代中完成。
搜集汇总
数据集介绍

构建方式
针对现有代码库级别代码生成评估方法中存在的两个普遍缺陷,本研究构建了HumanEvo数据集。该数据集的构建流程包括选取高质量GitHub仓库、创建镜像仓库、爬取目标仓库的Pull Request(PR)、构建初始数据集、获取每个PR的版本号以及验证PR质量。具体而言,通过执行一系列脚本,包括创建镜像仓库的call_make_repo.py,爬取PR的print_pulls.py,构建初始数据集的build_dataset.py,获取版本号的get_version_python.py,以及运行验证脚本的run_validation.sh,确保所获取的PR既高质量又被项目测试框架覆盖。
使用方法
使用HumanEvo数据集进行评估时,用户需先配置环境,克隆仓库并创建conda环境。之后,执行构建数据集的脚本,按照指定步骤爬取PR,获取版本号,并进行验证。评估阶段,用户需运行eval目录下的run.sh脚本,正确填写所需路径。程序开始前,将克隆目标仓库并创建运行时环境,此过程可能需要耐心等待。评估脚本提供了多个参数,包括实例路径、日志目录、工作线程数、conda路径、测试床路径、编程语言和超时时间等,以适应不同的评估需求。
背景与挑战
背景概述
HumanEvo数据集的构建旨在解决当前代码生成评价方法中存在的两个普遍缺陷,即未来上下文泄露和有用上下文缺失的问题。该数据集由ICSE 2025会议论文中提出,其构建工作始于对现有评价方法的深刻洞察,由相关研究人员精心设计,以期为大型语言模型(LLMs)提供一个更加真实的评估场景。HumanEvo通过模拟更加真实的代码库生成环境,对代码生成系统的性能进行更为准确的评估,从而对软件开发领域的智能化评价标准产生了重要影响。
当前挑战
在构建HumanEvo数据集的过程中,研究者面临了多方面的挑战。首先,如何精确地识别和避免未来上下文泄露与有用上下文缺失是数据集构建的核心难题。其次,构建过程中涉及到的数据收集、版本提取、以及评估验证等步骤均需要高度精确的自动化脚本和算法支持,这对研究人员的编程能力和数据处理能力提出了较高要求。此外,数据集的实用性和评估结果的可靠性还需通过复杂的测试框架和实际的项目测试来进行验证,这些步骤的复杂性无疑增加了构建过程的难度。
常用场景
经典使用场景
针对现有代码库级别代码生成评估方法中普遍存在的未来上下文泄露和有用上下文缺失问题,HumanEvo数据集提供了一个更为现实的评估场景。该数据集通过构建包含高质量GitHub仓库镜像的版本控制环境,收集和构建针对拉取请求(PR)的初始数据集,进而为大型语言模型(LLM)提供精准的评估标准。
解决学术问题
HumanEvo数据集解决了在代码生成评估中未来上下文泄露和有用上下文缺失两大常见问题。这不仅提高了评估的真实性和有效性,也促进了代码生成技术的进步,对提升软件开发效率和软件质量监控具有重要意义。
实际应用
在实际应用中,HumanEvo数据集可被用于评估和改进代码生成工具的性能,帮助开发者更好地理解和管理代码库的演化过程,从而提高软件开发的速度和代码的质量。
数据集最近研究
最新研究方向
HumanEvo数据集的构建旨在解决现有代码库级别代码生成评估方法中存在的两个普遍缺陷:未来上下文泄露和有用上下文缺失。该研究通过提供一个更加真实的评估场景,推动大型语言模型在代码生成领域的应用研究。HumanEvo通过模拟真实的代码库演化过程,为代码生成模型提供了更加精确和全面的评估标准,有助于推动该领域向更加实用和高效的方向发展。
以上内容由遇见数据集搜集并总结生成



