loubnabnl/humaneval_infilling
收藏Hugging Face2022-10-21 更新2024-03-04 收录
下载链接:
https://hf-mirror.com/datasets/loubnabnl/humaneval_infilling
下载链接
链接失效反馈官方服务:
资源简介:
HumanEval-Infilling是一个用于填充任务的基准数据集,源自用于评估代码生成模型的HumanEval基准。数据集包含四个子集:HumanEval-MultiLineInfilling、HumanEval-SingleLineInfilling、HumanEval-RandomSpanInfilling和HumanEval-RandomSpanInfillingLight,分别包含1033、5815、1640和164个任务。数据集的结构包括任务ID、入口点、提示、后缀、规范解决方案和测试等特征。数据集的创建和语言处理由专家完成,语言为代码,许可证为MIT,且为单语言数据集。
提供机构:
loubnabnl
原始信息汇总
HumanEval-Infilling 数据集概述
数据集描述
- 语言: 代码
- 许可证: MIT
- 多语言性: 单语
- 来源: 原始
- 任务类别: 文本到文本生成
- 标签: 代码生成
数据集总结
HumanEval-Infilling 是一个用于填充任务的基准,源自 HumanEval 基准,用于评估代码生成模型。
数据集结构
加载数据集时需要指定子集。默认加载 HumanEval-SingleLineInfilling。
python from datasets import load_dataset ds = load_dataset("humaneval_infilling", "HumanEval-RandomSpanInfilling")
DatasetDict({ test: Dataset({ features: [task_id, entry_point, prompt, suffix, canonical_solution, test], num_rows: 1640 }) })
子集
数据集包含4个子集:
- HumanEval-MultiLineInfilling
- HumanEval-SingleLineInfilling
- HumanEval-RandomSpanInfilling
- HumanEval-RandomSpanInfillingLight
各子集的行数分别为:
- 1033
- 5815
- 1640
- 164
引用
@article{bavarian2022efficient, title={Efficient Training of Language Models to Fill in the Middle}, author={Bavarian, Mohammad and Jun, Heewoo and Tezak, Nikolas and Schulman, John and McLeavey, Christine and Tworek, Jerry and Chen, Mark}, journal={arXiv preprint arXiv:2207.14255}, year={2022} }
搜集汇总
数据集介绍

构建方式
HumanEval-Infilling数据集源于OpenAI提出的代码补全基准测试,基于经典的HumanEval数据集构建而成。其构建过程通过从原始HumanEval的完整代码片段中移除特定部分,形成需要模型进行中间填充的任务。具体而言,数据集设计了四种不同的填充子集:单行填充、多行填充、随机跨度填充及其轻量版本,分别模拟不同粒度的代码缺失场景。每个样本包含任务标识、函数入口点、前缀提示、后缀上下文、标准解法及测试用例,共计1640至5815个测试样本,旨在系统评估模型在代码中间填充任务上的泛化能力。
使用方法
使用该数据集时,需通过HuggingFace的datasets库按子集名称加载,例如指定'HumanEval-RandomSpanInfilling'即可获取对应测试集。加载后的数据集包含'task_id'、'entry_point'、'prompt'、'suffix'、'canonical_solution'和'test'等字段,其中'prompt'与'suffix'分别代表缺失部分前后的代码上下文。用户可将这些字段输入待评估的模型,生成填充结果,随后利用'canonical_solution'和'test'字段执行功能性验证。建议研究者根据目标场景选择合适的子集,并参考原始论文中的评估流程以保证结果可比性。
背景与挑战
背景概述
在代码生成领域,大型语言模型已展现出卓越的代码补全能力,然而,对于代码中间缺失部分的填充任务,即infilling任务,其评估基准相对匮乏。针对这一研究空白,OpenAI团队于2022年提出了HumanEval-Infilling数据集,由Mohammad Bavarian、Heewoo Jun等研究人员共同创建,并发表于arXiv预印本《Efficient Training of Language Models to Fill in the Middle》。该数据集从经典的HumanEval基准衍生而来,旨在系统性地评估模型在单行、多行及随机跨度填充等场景下的代码生成性能,为代码智能领域的研究提供了标准化的测试平台,推动了填充式代码生成技术的发展。
当前挑战
HumanEval-Infilling所解决的领域核心挑战在于代码中间填充任务的不确定性与复杂性,模型需在给定上下文中准确预测缺失的代码片段,这对语义理解与结构连贯性提出了更高要求。在构建过程中,数据集面临多重技术难题:首先,如何从HumanEval的完整代码样本中合理设计缺失片段的位置与长度,以模拟真实编程场景;其次,需确保填充任务的多样性,通过单行、多行及随机跨度等不同子集覆盖广泛的使用模式;此外,还需平衡任务难度与评估效率,例如RandomSpanInfillingLight版本通过精简任务数量降低计算开销,同时保持评估的有效性。
常用场景
经典使用场景
HumanEval-Infilling数据集专为评估代码填充(infilling)任务而生,其核心应用场景在于检验语言模型在给定上下文缺失片段时,能否精准生成符合语法与逻辑的代码中间部分。该数据集衍生自经典的HumanEval基准,通过构造单行、多行及随机跨度等多种填充形式,模拟了开发者日常编码中补全函数体、修复中间逻辑或插入缺失语句的真实需求。研究者常利用该数据集衡量模型对代码结构深层次理解的能力,尤其关注其在处理不完整代码段时的生成质量与语义一致性。
解决学术问题
该数据集有效解决了代码生成领域长期存在的评估瓶颈:传统基准多聚焦于从头生成完整函数,而忽视了代码中间填充这一更贴近实际编程场景的任务。HumanEval-Infilling通过系统性地设计填充子集,为学界提供了量化模型在上下文感知与局部生成方面性能的标准化工具。它揭示了现有模型在处理非前缀式代码补全时的不足,推动了因果与双向注意力机制在代码语言模型中的优化研究,其影响体现在后续工作广泛采用该基准作为模型填充能力的核心验证指标。
实际应用
在实际开发中,HumanEval-Infilling所模拟的场景直接映射到集成开发环境(IDE)的智能代码补全功能,尤其是当开发者需要修改函数中间逻辑或插入缺失的代码块时。该数据集引导的模型优化成果已被应用于代码助手工具,显著提升了自动补全的上下文适应性,减少了开发者在复杂重构场景下的人工干预。此外,它还为代码审查和错误修复系统提供了技术支撑,使模型能够更准确地推断被遮挡或缺失的代码片段,进而增强软件工程的自动化水平。
数据集最近研究
最新研究方向
在大规模代码生成模型迅猛发展的背景下,HumanEval-Infilling作为一项专为代码补全任务设计的基准测试,正引领着填充式代码生成的前沿探索。该数据集衍生自经典的HumanEval基准,通过引入单行、多行及随机跨度填充等多样化子集,精准评估模型在代码中间位置进行智能补全的能力。近期研究聚焦于利用自回归语言模型的填充训练策略,如因果掩码与双向上下文的融合,以提升模型对代码结构完整性与语义连贯性的理解。这一方向与当前AI辅助编程工具(如GitHub Copilot)的热点事件紧密相连,推动了从简单续写到复杂代码块填充的技术跃迁。HumanEval-Infilling的发布不仅为评估代码生成模型的填充性能提供了标准化平台,还深刻影响了低资源语言与跨任务泛化研究,其意义在于加速了编程自动化与开发者生产力的革命性提升。
以上内容由遇见数据集搜集并总结生成



