遇见数据集

RepoPeftBench

收藏
arXiv2026-06-05 更新2026-06-08 收录
数据链接:
官方服务:

资源简介:

RepoPeftBench是由滑铁卢大学研究团队构建的面向代码语言模型的仓库级参数高效微调基准数据集,包含604个高质量Python代码仓库。该数据集涵盖约40万条训练任务和12万条测试任务,数据来源于GitHub上采用pytest或unittest框架的活跃项目,并通过时间截点划分了512个分布内仓库和92个分布外仓库以支持时序评估。数据集的创建过程包括严格的仓库筛选、断言任务提取以及基于提交历史的动态轨迹构建,旨在系统评估模型在代码库理解与演化适应方面的能力,解决传统方法在软件持续迭代中面临的上下文窗口受限与适配器过时等核心挑战。

RepoPeftBench is a repository-level parameter-efficient fine-tuning (PEFT) benchmark dataset for code language models, constructed by the research team from the University of Waterloo. It includes 604 high-quality Python code repositories, encompassing approximately 400,000 training tasks and 120,000 test tasks. The dataset's data is sourced from active GitHub projects adopting the pytest or unittest testing frameworks, and it splits the repositories into 512 in-distribution and 92 out-of-distribution repositories based on timestamps to support temporal evaluation. The construction process involves strict repository screening, assertion task extraction, and dynamic trajectory construction based on commit histories. This benchmark is designed to systematically evaluate a model's capabilities in codebase comprehension and evolutionary adaptation, addressing core challenges faced by traditional methods during continuous software iteration, such as limited context window size and outdated adapters.

提供机构:
滑铁卢大学
创建时间:
2026-06-05
搜集汇总
数据集介绍
RepoPeftBench 数据集图片
构建方式
RepoPeftBench的构建以GitHub上604个Python仓库为核心,经过严格的筛选流程:仓库需使用pytest或unittest测试框架、具备宽松许可证并保持近期活跃,依据时间截止点(2025-04-01)划分为512个分布内仓库(需至少300星)和92个时间上分布外仓库。每个仓库既提取最终快照也收集完整提交历史。数据集设计了静态和演化两个评测轨道:静态轨从单次快照中抽取39,612个训练任务和11,636个测试任务,涵盖断言补全任务;演化轨则重放仓库提交历史,从代码差异中提炼215,129个训练任务和86,793个测试任务,每个提交最多保留8个任务以防止偏倚。任务源自五类断言(bare assert、self.assert*、pytest.raises等),输入拼接导入语句、封装类和辅助方法直至断言切割点,输出为断言期望值,从而为存储库级参数高效微调提供全面基准。
特点
RepoPeftBench的显著特点在于其双轨设计:静态轨对应单一快照、适用于稳定代码库的理解,而演化轨则通过按提交演进的断言任务反映持续开发的动态性。数据集包含跨仓库与仓库内两种切分方式,跨仓库切分将103个仓库完全保留用于验证和测试,衡量模型对未见代码库的泛化能力,仓库内切分则允许单仓库微调的上界对照。此外,时间分布外测试集(92个截止日期后创建的仓库)挑战模型对新类型仓库上下文的适应能力。断言补全任务本身具备仓库级特质:同一仓库的所有实例共享相同的非测试源代码作为条件上下文,且任务由真实测试套件大规模挖掘而得,保持了与真实开发场景的高度一致性。
使用方法
RepoPeftBench专为评估代码语言模型的参数高效微调方法而设计,支持两种使用范式:在静态轨中,研究人员可将整个仓库的源代码编码为稠密嵌入,通过超网络生成仓库专属的LoRA适配器以实现零推理标记开销的注入;在演化轨中,模型需要接收按提交顺序排列的代码差异序列,借助循环神经网络(如GRU)随时间步更新隐藏状态,从而为持续演进中的代码库提供持续的适配器更新。基准测试提供了明确的跨仓库和仓库内数据分割,研究者可利用预定义的训练/验证/测试集对比不同方法的精确匹配率、编辑相似度和CodeBLEU分数。此外,完整仓库信息的发布允许方法摄入整个代码库,从而实现对全量文件作为条件的全面评估。
背景与挑战
背景概述
RepoPeftBench由滑铁卢大学研究团队于2026年提出,旨在解决代码语言模型在仓库级上下文理解与软件演化中的适配难题。现有方法依赖检索增强生成或逐仓库微调,面临推理时令牌开销大、难以应对代码库持续更新的困境。RepoPeftBench构建了包含604个Python仓库的大规模基准,覆盖静态快照和演化追踪两种场景,包含超过31万条断言补全任务。该数据集首次系统评估参数高效微调方法在跨仓库泛化和时序分布漂移下的表现,为代码智能体在真实开发环境中的自适应部署提供了关键评测平台。
当前挑战
RepoPeftBench面临的核心挑战在于解决代码语言模型对仓库级知识的高效注入与动态更新问题。首先,传统RAG或依赖分析将上下文拼接为长输入,导致推理代价高昂且受限于窗口容量;而逐仓库微调在代码库频繁演进时需重新训练,无法实时追踪提交变更。其次,数据集构建需从公开仓库中挖掘断言补全任务,在保证任务语义复杂性的同时,处理仓库间差异和时序漂移——例如演化追踪需将60万次提交映射为流式适配轨迹,这对模型的持续学习和遗忘机制构成严峻考验。
常用场景
经典使用场景
RepoPeftBench,作为面向代码语言模型的仓储级参数高效微调基准,其核心使用场景聚焦于评估模型在完整代码仓库语境下的断言补全能力。研究者可利用该基准,在604个Python仓库构成的静态与演化双轨测试集上,系统度量模型对仓库级知识的掌握程度,具体通过精确匹配、编辑相似度及CodeBLEU等指标,考察模型在跨仓库与仓库内两种划分下的泛化性能。这一设计使RepoPeftBench成为检验参数化知识注入方法——如通过超网络生成的LoRA适配器——能否替代传统长输入上下文注入策略的理想试验场。
实际应用
在实际工程场景中,RepoPeftBench所支撑的方法论可直接赋能现代AI编程助手的仓储级智能升级。例如,开发者无需每查询一次便承担巨额上下文开销,亦无需为每个仓库独立微调大模型,而是借助超网络生成的LoRA适配器实现零额外令牌开销的仓库知识注入。此机制尤其适用于持续演进的活跃代码库——模型可根据每次提交的代码差异流式更新适配器,从而在单元测试断言补全、缺陷定位、重构建议等任务中提供持续精准的辅助。
衍生相关工作
RepoPeftBench的发布催生了一系列卓有影响的相关研究工作。以Code2LoRA为代表的方法论框架率先提出了静态与动态双轨适配生成范式,其后续变体如Text2LoRA与Doc2LoRA虽聚焦于短文本场景,但在全模块投影覆盖与仓库级编码器对齐方面深受RepoPeftBench的启发。此外,该基准所提供的标准化评测流程直接推动了Per-repo LoRA、Single LoRA等基线方法的对比研究,并促使学界重新审视传统检索增强方法与参数化注入方法在仓库级理解任务上的根本性差异。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务