多模态程序推断:预训练语言模型与基于组件合成的融合
人工智能
2021-09-08 v1 编程语言
摘要
多模态程序合成指的是从不同形式给出的规范(例如自然语言与示例的组合)合成程序(代码)的任务。示例提供了精确但不完整的规范,而自然语言提供了模糊但更‘完整’的任务描述。机器学习预训练模型(PTMs)擅长处理模糊的自然语言,但难以生成语法和语义精确的代码。程序合成技术可以生成正确的代码,通常甚至能从不完整但精确的规范(如示例)中生成,但它们无法处理自然语言的模糊性。我们提出了一种将PTMs与基于组件的合成(CBS)相结合的方法:PTMs用于从任务的自然语言描述生成候选程序,然后用于引导CBS过程以找到匹配基于示例的精确规范的程序。我们使用该组合方法为两个编程领域实例化多模态合成系统:正则表达式领域和CSS选择器领域。我们的评估证明了我们的领域无关方法相比最先进的专用系统的有效性,以及我们的方法在不同编程领域提供来自自然语言和示例的多模态程序合成的通用性。
引用
@article{arxiv.2109.02445,
title = {Multi-modal Program Inference: a Marriage of Pre-trainedLanguage Models and Component-based Synthesis},
author = {Kia Rahmani and Mohammad Raza and Sumit Gulwani and Vu Le and Daniel Morris and Arjun Radhakrishna and Gustavo Soares and Ashish Tiwari},
journal= {arXiv preprint arXiv:2109.02445},
year = {2021}
}
备注
To be published in OOPSLA 2021