English

Amortizing Pragmatic Program Synthesis with Rankings

Programming Languages 2024-07-18 v2 Artificial Intelligence

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.

Keywords

Cite

@article{arxiv.2309.03225,
  title  = {Amortizing Pragmatic Program Synthesis with Rankings},
  author = {Yewen Pu and Saujas Vaduguru and Priyan Vaithilingam and Elena Glassman and Daniel Fried},
  journal= {arXiv preprint arXiv:2309.03225},
  year   = {2024}
}

Comments

I accidentally submitted a new version of this (arXiv:2407.02499) instead of replacing this one, so I'll take this one out as it is out-dated

R2 v1 2026-06-28T12:14:35.237Z