北京大学李戈教授团队与阿里巴巴大淘宝团队的研究者,共同完成了为淘系前端生成业务代码的模型,这是首个在工业开发环境中被采用的代码生成系统。

本工作已被计算机软件工程顶会 ESEC/FSE 2022 Industry Track 接收,并且已经在阿里巴巴的 BizCook 平台应用。据我们所知,阿里前端智能化小组的核心团队 F(x)Team,以及他们开发的 imgcook.com 和 BizCook 设计生产一体化业务交付系统,是第一个在工业开发环境中被采用的领域代码生成系统。已经在阿里巴巴大淘宝技术营销和策略前台技术团队落地,并应用在阿里巴巴大促业务平台方舟的大促产品化项目中,极大提升了业务交付效率。

论文地址:

https://arxiv.org/abs/2208.10091

本文提出的模型主要尝试解决根据需求文档和设计草稿生成代码。

对于整个 JS 表达式生成任务,只依赖较小的高质量训练集显然不能得到较好的效果,因此我们需要从任务、模型架构等方面做文章,让其尽可能在小的数据集上获得比较好的效果,并能泛化到更加广泛的业务场景中。

为此,本文从两方面优化模型的构建与训练过程。首先是采用任务增强的方式,利用额外的任务,要求模型能学会利用常见的变量名进行代码生成。其次是采用更加精巧的模型架构,利用代码天然分层的语法树结构,以及 JavaScript 特定的抽象语法描述,进行更高效的建模与生成。