five

NAPS: Natural Program Synthesis Dataset

收藏
arXiv2018-07-06 更新2024-06-21 收录
下载链接:
https://near.ai/research/naps/
下载链接
链接失效反馈
官方服务:
资源简介:
NAPS数据集是由NEAR研究机构创建,专注于程序合成领域,包含人类编写的问题描述和解决方案。数据集通过众包收集问题描述,从编程竞赛中提取程序解决方案,并附带输入/输出示例。该数据集适用于处理真实用户生成数据,旨在解决程序合成任务中的复杂性问题,为模型训练和数据增强提供丰富的资源。

The NAPS dataset was created by the NEAR research institute, focusing on the domain of program synthesis and containing human-written problem descriptions and program solutions. The dataset collects problem descriptions via crowdsourcing, extracts program solutions from programming contests, and is accompanied by input/output examples. This dataset is suitable for processing real user-generated data, aiming to address the complexity issues in program synthesis tasks, and provides abundant resources for model training and data augmentation.
提供机构:
NEAR
创建时间:
2018-07-06
搜集汇总
数据集介绍
main_image_url
构建方式
在程序合成领域,构建高质量的数据集对于推动自然语言到代码的转换研究至关重要。NAPS数据集通过整合真实编程竞赛中的解决方案与人工撰写的自然语言问题描述,实现了数据来源的多元化。其构建过程首先从在线编程平台收集Java语言编写的解决方案,随后将这些代码转换为统一的中间表示语言UAST,以消除编程语言和库依赖的差异。问题描述部分则通过众包平台邀请竞赛社区的参与者,依据UAST表示的程序结构,以命令式语句撰写高层次的问题陈述,同时为程序中的内部代码块提供局部描述,从而形成结构化的训练样本。
使用方法
研究者在利用NAPS数据集时,通常将其划分为训练集、验证集和测试集,以评估模型从自然语言描述生成可执行程序的能力。数据集中的输入输出示例可分为两组:一组用于训练过程中的搜索或作为模型输入的一部分,另一组则用于最终的性能评估。基于序列到序列或序列到树的神经网络架构,模型可学习将问题描述映射到UAST表示的程序结构。在解码阶段,通过束搜索或持久化树结构生成候选程序,并利用输入输出示例进行验证,最终以通过测试的比例作为准确率指标,为程序合成技术的改进提供实证基础。
背景与挑战
背景概述
程序合成作为人工智能领域的经典课题,旨在根据用户需求自动生成可执行代码。随着神经网络技术的复兴,基于自然语言的程序合成研究逐渐成为热点,然而早期数据集多局限于特定领域或采用合成数据,缺乏真实场景下的复杂性与多样性。在此背景下,NEAR研究机构的Maksym Zavershynskyi等人于2018年推出了NAPS(自然程序合成数据集),该数据集通过众包方式收集了编程竞赛中人类编写的问题描述与解决方案,并转换为统一的UAST中间语言表示,涵盖了包含变量与控制流的真实编程任务,为领域提供了首个面向通用程序合成的基准资源。
当前挑战
NAPS数据集面临的挑战主要体现在两个方面:在领域问题层面,程序合成任务需处理从自然语言到复杂程序结构的映射,涉及长距离依赖、语义歧义与逻辑一致性等难题,现有模型在数据集上仅达到8.8%的准确率,反映出语义理解与代码生成间的巨大鸿沟;在构建过程中,众包收集的问题描述存在个人写作风格差异大、用词冗余度不一等现象,虽通过合成语句进行数据增强,但模型仍对文本冗余度敏感,且需克服跨编程语言的统一表示、程序结构规范化以及测试用例覆盖度平衡等工程挑战。
常用场景
经典使用场景
在程序合成领域,NAPS数据集为从自然语言描述生成可执行代码的研究提供了关键基准。该数据集通过众包方式收集了真实编程竞赛中的问题陈述与解决方案,并转换为统一的中间表示语言UAST,使得模型能够处理包含变量、控制流等复杂编程概念的通用任务。其经典使用场景在于训练和评估序列到序列或序列到树模型,以探索如何将非结构化的人类语言指令映射为结构化的程序逻辑,从而推动神经程序合成技术的发展。
解决学术问题
NAPS数据集主要解决了程序合成研究中真实数据稀缺和领域局限性的问题。以往的数据集多依赖于合成数据或局限于特定领域(如字符串转换或简单SQL查询),难以反映现实世界中复杂、多样的编程需求。NAPS通过提供人类编写的自然语言问题描述与对应的竞赛级解决方案,使研究者能够开发更具泛化能力的模型,应对包含循环、条件分支及数据结构操作的通用程序生成任务,为评估模型在真实场景下的性能提供了可靠标准。
实际应用
在实际应用中,NAPS数据集为智能编程辅助工具和教育平台的开发奠定了基础。例如,基于该数据集训练的模型可用于自动生成代码片段,帮助开发者快速实现常见算法或减少重复性编码工作。在教育领域,它能够支持编程学习系统,根据学生用自然语言描述的问题自动提供参考解决方案,从而提升教学效率。此外,该数据集也有助于构建更智能的代码补全或错误检测系统,推动软件工程自动化的发展。
数据集最近研究
最新研究方向
在程序合成领域,NAPS数据集作为首个基于真实用户生成问题与解决方案的综合性资源,正推动着自然语言到程序转换的前沿探索。当前研究聚焦于提升模型对复杂控制流和变量操作的理解能力,利用序列到树等神经架构处理程序的结构化特性。伴随大语言模型的兴起,该数据集被广泛用于微调与评估生成式AI在代码合成任务中的泛化性能,尤其在处理竞赛级编程问题的长程依赖与抽象推理方面展现出关键价值。其影响在于为构建更可靠、可解释的智能编程助手奠定了数据基础,促进了程序合成与软件工程的交叉融合。
相关研究论文
  • 1
    NAPS: Natural Program Synthesis DatasetNEAR · 2018年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作