通过任务增强融入领域知识的前端面JavaScript代码生成
软件工程
2022-08-24 v2 人工智能
摘要
代码生成旨在从自然语言描述自动生成代码片段。一般而言,主流代码生成方法依赖大量成对训练数据,包括自然语言描述与代码。然而,在一些特定领域场景中,构建如此大规模的代码生成成对语料是困难的,因为没有直接可用的配对数据,且需要大量精力手动编写代码描述以构建高质量训练数据集。由于训练数据有限,生成模型无法被充分训练且容易过拟合,导致模型在真实场景中的表现不尽如人意。为此,本文提出一种任务增强方法,通过辅助任务将领域知识融入代码生成模型,并提出Subtoken-TranX模型,通过扩展原始TranX模型以支持子词级别的代码生成。为验证所提方法,我们收集了一个真实世界的代码生成数据集并在其上开展实验。实验结果表明,子词级TranX模型在我们的数据集上优于原始TranX模型与Transformer模型,且借助我们的任务增强方法,Subtoken-TranX的精确匹配准确率显著提升了12.75%。模型在若干代码类别上的性能已满足工业系统应用要求。我们提出的方法已被阿里巴巴的BizCook平台采用。据我们所知,这是首个在工业开发环境中被采用的领域代码生成系统。
引用
@article{arxiv.2208.10091,
title = {Incorporating Domain Knowledge through Task Augmentation for Front-End JavaScript Code Generation},
author = {Sijie Shen and Xiang Zhu and Yihong Dong and Qizhi Guo and Yankun Zhen and Ge Li},
journal= {arXiv preprint arXiv:2208.10091},
year = {2022}
}
备注
This paper has been accepted at ESEC/FSE 2022 Industry Track