Large pre-trained language models have been used to generate code,providing a flexible interface for synthesizing programs from natural language specifications. However, they often violate syntactic and semantic rules of their output language, limiting their practical usability. In this paper, we propose Synchromesh: a framework for substantially improving the reliability of pre-trained models for code generation. Synchromesh comprises two components. First, it retrieves few-shot examples from a training bank using Target Similarity Tuning (TST), a novel method for semantic example selection. TST learns to recognize utterances that describe similar target programs despite differences in surface natural language features. Then, Synchromesh feeds the examples to a pre-trained language model and samples programs using Constrained Semantic Decoding (CSD): a general framework for constraining the output to a set of valid programs in the target language. CSD leverages constraints on partial outputs to sample complete correct programs, and needs neither re-training nor fine-tuning of the language model. We evaluate our methods by synthesizing code from natural language descriptions using GPT-3 and Codex in three real-world languages: SQL queries, Vega-Lite visualizations and SMCalFlow programs. These domains showcase rich constraints that CSD is able to enforce, including syntax, scope, typing rules, and contextual logic. We observe substantial complementary gains from CSD and TST in prediction accuracy and in effectively preventing run-time errors.


翻译:使用经过培训的大型语言模型来生成代码,为来自自然语言规格的合成程序提供了灵活的界面,为合成自然语言规格的程序提供了一个灵活的界面。 但是,它们往往违反其输出语言的合成和语义规则,限制了其实际使用性。 在本文中,我们提议Synchromesh:一个大幅提高经过培训的代码生成模式可靠性的框架。 同步chromesh由两个部分组成。 首先,它从一个培训银行中检索了几个例子,它使用了目标相似性图例(TST),这是一个用于选择语义错误的新方法。 TST学会学会学会学会了识别描述类似目标程序的语句,尽管表面自然语言特征存在差异。 然后,Synchromesh将这些实例输入到一个经过事先培训的语言模型和样本程序之中,使用Constraced Semantict de(CSDM) :这些将输出限制到一套目标语言的有效程序。 CSCSCSD对部分产出进行抽查,不需要再训练或微调语言模型。 我们通过从自然语言的逻辑规则(包括Svidual-L)的Svidual-rial Stilal Stalalal rial rial criviewal ridustration ridustration ridustral) riducal cal rical cal rical creal crical ripal prewal pral pral pral pressal pressal) pral press 和SUcal amtionalmationalmationalmation 3,我们用Sideal 和SBal 和SDL 3 和SDL creal-SDL 3 ex 范围,我们用SBal 和SBal 和SDal 和SVDal 3 和SDal 3 和SVDal-al-al-SBal-SDal-al-SBal-SBal-SBal-SBal-SBal-SBal-SBal-SBal-SDML Cal-SDMDRal-SBal-SBal-SBal-SD

0
下载
关闭预览

相关内容

基于预训练语言模型的文本生成
专知会员服务
28+阅读 · 2022年1月28日
Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
强化学习最新教程,17页pdf
专知会员服务
174+阅读 · 2019年10月11日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
ACM MM 2022 Call for Papers
CCF多媒体专委会
5+阅读 · 2022年3月29日
RoBERTa中文预训练模型:RoBERTa for Chinese
PaperWeekly
57+阅读 · 2019年9月16日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
基于PyTorch/TorchText的自然语言处理库
专知
28+阅读 · 2019年4月22日
Unsupervised Learning via Meta-Learning
CreateAMind
42+阅读 · 2019年1月3日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
16+阅读 · 2018年12月24日
disentangled-representation-papers
CreateAMind
26+阅读 · 2018年9月12日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
1+阅读 · 2011年12月31日
国家自然科学基金
6+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Arxiv
21+阅读 · 2019年8月21日
VIP会员
相关资讯
相关基金
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
1+阅读 · 2011年12月31日
国家自然科学基金
6+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Top
微信扫码咨询专知VIP会员