9 research outputs found
CrossBeam: Learning to Search in Bottom-Up Program Synthesis
Many approaches to program synthesis perform a search within an enormous
space of programs to find one that satisfies a given specification. Prior works
have used neural models to guide combinatorial search algorithms, but such
approaches still explore a huge portion of the search space and quickly become
intractable as the size of the desired program increases. To tame the search
space blowup, we propose training a neural model to learn a hands-on search
policy for bottom-up synthesis, instead of relying on a combinatorial search
algorithm. Our approach, called CrossBeam, uses the neural model to choose how
to combine previously-explored programs into new programs, taking into account
the search history and partial program executions. Motivated by work in
structured prediction on learning to search, CrossBeam is trained on-policy
using data extracted from its own bottom-up searches on training tasks. We
evaluate CrossBeam in two very different domains, string manipulation and logic
programming. We observe that CrossBeam learns to search efficiently, exploring
much smaller portions of the program space compared to the state-of-the-art.Comment: Published at ICLR 202
LambdaBeam: Neural Program Search with Higher-Order Functions and Lambdas
Search is an important technique in program synthesis that allows for
adaptive strategies such as focusing on particular search directions based on
execution results. Several prior works have demonstrated that neural models are
effective at guiding program synthesis searches. However, a common drawback of
those approaches is the inability to handle iterative loops, higher-order
functions, or lambda functions, thus limiting prior neural searches from
synthesizing longer and more general programs. We address this gap by designing
a search algorithm called LambdaBeam that can construct arbitrary lambda
functions that compose operations within a given DSL. We create semantic vector
representations of the execution behavior of the lambda functions and train a
neural policy network to choose which lambdas to construct during search, and
pass them as arguments to higher-order functions to perform looping
computations. Our experiments show that LambdaBeam outperforms neural,
symbolic, and LLM-based techniques in an integer list manipulation domain
Compositional Generalization and Decomposition in Neural Program Synthesis
When writing programs, people have the ability to tackle a new complex task
by decomposing it into smaller and more familiar subtasks. While it is
difficult to measure whether neural program synthesis methods have similar
capabilities, what we can measure is whether they compositionally generalize,
that is, whether a model that has been trained on the simpler subtasks is
subsequently able to solve more complex tasks. In this paper, we focus on
measuring the ability of learned program synthesizers to compositionally
generalize. We first characterize several different axes along which program
synthesis methods would be desired to generalize, e.g., length generalization,
or the ability to combine known subroutines in new ways that do not occur in
the training data. Based on this characterization, we introduce a benchmark
suite of tasks to assess these abilities based on two popular existing
datasets, SCAN and RobustFill. Finally, we make first attempts to improve the
compositional generalization ability of Transformer models along these axes
through novel attention mechanisms that draw inspiration from a human-like
decomposition strategy. Empirically, we find our modified Transformer models
generally perform better than natural baselines, but the tasks remain
challenging.Comment: Published at the Deep Learning for Code (DL4C) Workshop at ICLR 202
BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided Exploration
Program synthesis is challenging largely because of the difficulty of search
in a large space of programs. Human programmers routinely tackle the task of
writing complex programs by writing sub-programs and then analyzing their
intermediate results to compose them in appropriate ways. Motivated by this
intuition, 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 given set of
input-output examples. This is a powerful combination because of several
emergent properties. First, in bottom-up search, intermediate programs can be
executed, providing semantic information to the neural network. Second, given
the concrete values from those executions, we can exploit rich features based
on recent work on property signatures. Finally, bottom-up search allows the
system substantial flexibility in what order to generate the solution, allowing
the synthesizer to build up a program from multiple smaller sub-programs.
Overall, our empirical evaluation finds that the combination of learning and
bottom-up search is remarkably effective, even with simple supervised learning
approaches. We demonstrate the effectiveness of our technique on two datasets,
one from the SyGuS competition and one of our own creation
PaLM: Scaling Language Modeling with Pathways
Large language models have been shown to achieve remarkable performance
across a variety of natural language tasks using few-shot learning, which
drastically reduces the number of task-specific training examples needed to
adapt the model to a particular application. To further our understanding of
the impact of scale on few-shot learning, we trained a 540-billion parameter,
densely activated, Transformer language model, which we call Pathways Language
Model PaLM. We trained PaLM on 6144 TPU v4 chips using Pathways, a new ML
system which enables highly efficient training across multiple TPU Pods. We
demonstrate continued benefits of scaling by achieving state-of-the-art
few-shot learning results on hundreds of language understanding and generation
benchmarks. On a number of these tasks, PaLM 540B achieves breakthrough
performance, outperforming the finetuned state-of-the-art on a suite of
multi-step reasoning tasks, and outperforming average human performance on the
recently released BIG-bench benchmark. A significant number of BIG-bench tasks
showed discontinuous improvements from model scale, meaning that performance
steeply increased as we scaled to our largest model. PaLM also has strong
capabilities in multilingual tasks and source code generation, which we
demonstrate on a wide array of benchmarks. We additionally provide a
comprehensive analysis on bias and toxicity, and study the extent of training
data memorization with respect to model scale. Finally, we discuss the ethical
considerations related to large language models and discuss potential
mitigation strategies