Amortizing Pragmatic Program Synthesis with Rankings
- URL: http://arxiv.org/abs/2309.03225v1
- Date: Fri, 1 Sep 2023 20:12:01 GMT
- Title: Amortizing Pragmatic Program Synthesis with Rankings
- Authors: Yewen Pu, Saujas Vaduguru, Priyan Vaithilingam, Elena Glassman, Daniel
Fried
- Abstract summary: In program synthesis, an intelligent system takes in a set of user-generated examples and returns a program that is logically consistent with these examples.
The usage of Rational Speech Acts (RSA) framework has been successful in building emphpragmatic program synthesizers.
This work presents a novel method of amortizing the RSA algorithm by leveraging a emphglobal pragmatic ranking -- a single, total ordering of all the hypotheses.
- Score: 19.070549715732483
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: In program synthesis, an intelligent system takes in a set of user-generated
examples and returns a program that is logically consistent with these
examples. The usage of Rational Speech Acts (RSA) framework has been successful
in building \emph{pragmatic} program synthesizers that return programs which --
in addition to being logically consistent -- account for the fact that a user
chooses their examples informatively. However, the computational burden of
running the RSA algorithm has restricted the application of pragmatic program
synthesis to domains with a small number of possible programs. This work
presents a novel method of amortizing the RSA algorithm by leveraging a
\emph{global pragmatic ranking} -- a single, total ordering of all the
hypotheses. We prove that for a pragmatic synthesizer that uses a single
demonstration, our global ranking method exactly replicates RSA's ranked
responses. We further empirically show that global rankings effectively
approximate the full pragmatic synthesizer in an online, multi-demonstration
setting. Experiments on two program synthesis domains using our pragmatic
ranking method resulted in orders of magnitudes of speed ups compared to the
RSA synthesizer, while outperforming the standard, non-pragmatic synthesizer.
Related papers
- Amortizing Pragmatic Program Synthesis with Rankings [17.775664476910247]
The usage of Rational Speech Acts (RSA) framework has been successful in building emphpragmatic program synthesizers.
We present a general method of amortizing the slow, exact RSA synthesizer.
arXiv Detail & Related papers (2024-06-01T22:55:33Z) - Generating Pragmatic Examples to Train Neural Program Synthesizers [20.819451354452085]
A good synthesizer must choose the intended program from the many that are consistent with the given set of examples.
We propose a novel way to amortize this search with neural networks.
arXiv Detail & Related papers (2023-11-09T20:53:00Z) - ExeDec: Execution Decomposition for Compositional Generalization in Neural Program Synthesis [54.18659323181771]
We characterize several different forms of compositional generalization that are desirable in program synthesis.
We propose ExeDec, a novel decomposition-based strategy that predicts execution subgoals to solve problems step-by-step informed by program execution at each step.
arXiv Detail & Related papers (2023-07-26T01:07:52Z) - A Divide-Align-Conquer Strategy for Program Synthesis [5.7426444823028335]
We show that compositional segmentation can be applied in the programming by examples setting to divide the search for large programs across multiple smaller program synthesis problems.
A structural alignment of the constituent parts in the input and output leads to pairwise correspondences used to guide the program search.
arXiv Detail & Related papers (2023-01-08T19:10:55Z) - Efficient Pragmatic Program Synthesis with Informative Specifications [13.234975857626752]
We show that it is possible to build a program synthesizer that is both pragmatic and efficient by approximating the joint distribution of programs with a product of independent factors.
We find that the synthesizer assuming a factored approximation performs better than a synthesizer assuming an exact joint distribution when evaluated on natural human inputs.
arXiv Detail & Related papers (2022-04-05T21:25:58Z) - Latent Execution for Neural Program Synthesis Beyond Domain-Specific
Languages [97.58968222942173]
We take the first step to synthesize C programs from input-output examples.
In particular, we propose La Synth, which learns the latent representation to approximate the execution of partially generated programs.
We show that training on these synthesized programs further improves the prediction performance for both Karel and C program synthesis.
arXiv Detail & Related papers (2021-06-29T02:21:32Z) - Representing Partial Programs with Blended Abstract Semantics [62.20775388513027]
We introduce a technique for representing partially written programs in a program synthesis engine.
We learn an approximate execution model implemented as a modular neural network.
We show that these hybrid neuro-symbolic representations enable execution-guided synthesizers to use more powerful language constructs.
arXiv Detail & Related papers (2020-12-23T20:40:18Z) - Process Discovery for Structured Program Synthesis [70.29027202357385]
A core task in process mining is process discovery which aims to learn an accurate process model from event log data.
In this paper, we propose to use (block-) structured programs directly as target process models.
We develop a novel bottom-up agglomerative approach to the discovery of such structured program process models.
arXiv Detail & Related papers (2020-08-13T10:33:10Z) - BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided Exploration [72.88493072196094]
We present a new synthesis approach that leverages learning to guide a bottom-up search over programs.
In particular, we train a model to prioritize compositions of intermediate values during search conditioned on a set of input-output examples.
We show that the combination of learning and bottom-up search is remarkably effective, even with simple supervised learning approaches.
arXiv Detail & Related papers (2020-07-28T17:46:18Z) - Synthesize, Execute and Debug: Learning to Repair for Neural Program
Synthesis [81.54148730967394]
We propose SED, a neural program generation framework that incorporates synthesis, execution, and debug stages.
SED first produces initial programs using the neural program synthesizer component, then utilizes a neural program debugger to iteratively repair the generated programs.
On Karel, a challenging input-output program synthesis benchmark, SED reduces the error rate of the neural program synthesizer itself by a considerable margin, and outperforms the standard beam search for decoding.
arXiv Detail & Related papers (2020-07-16T04:15:47Z) - Program Synthesis with Pragmatic Communication [28.24612900419843]
This work introduces a new inductive bias derived by modeling the program synthesis task as rational communication.
A user study finds that end-user participants communicate more effectively with the pragmatic program synthesizer over a non-pragmatic one.
arXiv Detail & Related papers (2020-07-09T20:55:44Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.