Predicts programming languages from Stack Overflow questions and snippets.
problem Incorrectly tagging programming languages in Stack Overflow questions.
method Combines NLP features from titles, bodies, and code snippets for prediction.
result Combined features classifier achieves 91.1% accuracy.
We develop a technique for generalising from data in which models are samplers represented as program text. We establish encouraging empirical results that suggest that Markov chain Monte Carlo probabilistic programming inference techniques coupled with higher-order probabilistic programming languages are now sufficien…
SCC identifies 21 programming languages with 75% accuracy.
problem Classifying code snippets among 21 programming languages.
method Multinomial Naive Bayes classifier trained on Stack Overflow posts.
result SCC achieves 75% accuracy, significantly higher than PLI.
The task of translating between programming languages differs from the challenge of translating natural languages in that programming languages are designed with a far more rigid set of structural and grammatical rules. Previous work has used a tree-to-tree encoder/decoder model to take advantage of the inherent tree s…
Deployable probabilistic programming for Go and other languages.
problem Adding probabilistic programming to mainstream languages.
method Design guidelines and Infergo implementation for Go.
result Infergo demonstrates performance and applicability in various use cases.
Automates API mapping across languages with minimal manual effort.
problem Manual effort required to identify parallel program corpora and API mappings.
method Combines domain adaptation and code embedding with GANs to align vector spaces of APIs.
result Automatically identifies cross-language API mappings with less prior knowledge.
A new CNN-based code generator outperforms RNNs by 5%.
problem Capturing long sequences in code generation using RNNs.
method Grammar-based structural CNN with tree-based and pre-order convolution modules.
result Significantly outperforms previous state-of-the-art methods by 5 percentage points.
Forward inference techniques such as sequential Monte Carlo and particle Markov chain Monte Carlo for probabilistic programming can be implemented in any programming language by creative use of standardized operating system functionality including processes, forking, mutexes, and shared memory. Exploiting this we have …
Birch automates probabilistic modeling using a Turing-complete language.
problem Automating the matching of probabilistic models with inference methods.
method Formally describes models as programs, revealing structure and form dynamically.
result Probabilistic programming languages can tailor inference methods based on model structure and form.
Graduate-level introduction to probabilistic programming.
problem Designing and building probabilistic programming systems.
method First-order and higher-order probabilistic programming languages, inference algorithms, and gradient-based maximum likelihood estimation.
result Efficient inference methods and neural network parameterization.
Self-taught optimizer improves code generation using language models.
problem Improving code generation using language models.
method Recursive self-improvement of a scaffolding program that generates code.
result Improved scaffolding program generates programs with significantly better performance.
SLM models code syntax as trees to generate any programming language code.
problem Generating any piece of code in a given language without restrictions.
method Structural language modeling (SLM) decomposes code into ASTs and estimates probabilities over nodes.
result SLM model generates arbitrary code in any language, outperforming previous methods.
Structured prediction is used in areas such as computer vision and natural language processing to predict structured outputs such as segmentations or parse trees. In these settings, prediction is performed by MAP inference or, equivalently, by solving an integer linear program. Because of the complex scoring functions …
DiffTaichi enables fast, differentiable physical simulations with shorter code.
problem Building efficient differentiable physical simulators.
method Differentiable programming language (DiffTaichi) that generates gradients using source code transformations and a light-weight tape.
result Differentiable physical simulators written in DiffTaichi are faster and more concise than existing methods.
New method for efficient probabilistic inference using masked language modeling.
problem Efficient posterior inference in probabilistic programs with many hyper-parameters.
method Formulate inference as masked language modeling, train a neural network to unmask random values.
result Foundation posterior for zero-shot inference and fine-tuning across a range of programs.
With the recent success of embeddings in natural language processing, research has been conducted into applying similar methods to code analysis. Most works attempt to process the code directly or use a syntactic tree representation, treating it like sentences written in a natural language. However, none of the existin…
PATOIS synthesizes code from natural language using learned code idioms.
problem Synthesizing general-purpose source code from natural language specifications is challenging.
method PATOIS uses a neural synthesizer that interleaves high-level and low-level reasoning, incorporating learned code idioms from a corpus.
result Using learned code idioms improves the synthesizer's accuracy on semantic parsing datasets.
Seq2Seq models perform well in generating If-Then programs from natural language.
problem Creating If-Then programs for business process automation without technical expertise.
method Modeling If-Then programs as a sequence learning task using Seq2Seq approaches.
result Seq2Seq models can effectively generate If-Then programs from natural language.
TreeCaps improves code comprehension for software developers.
problem Processing code efficiently for software developers.
method Tree-based capsule networks for capturing code syntactical structures and dependencies.
result TreeCaps outperforms other approaches in classifying program functionalities.
Hamiltonian Monte Carlo (HMC) is arguably the dominant statistical inference algorithm used in most popular "first-order differentiable" Probabilistic Programming Languages (PPLs). However, the fact that HMC uses derivative information causes complications when the target distribution is non-differentiable with respect…
SlicStan improves Stan's usability and efficiency.
problem Stan's block syntax sacrifices usability for scalability.
method Formalized Stan, introduced SlicStan with compositional syntax and flexible functions.
result SlicStan facilitates better code reuse and abstraction.
Julia accelerates machine learning in various fields with balance of efficiency and simplicity.
problem Efficiency and simplicity in machine learning algorithms.
method Developed and applied Julia language in machine learning.
result Julia balances efficiency and simplicity for machine learning.
New methodology controls synthetic data bias for neural program synthesis.
problem Deep networks generalize poorly to certain data distributions when trained on synthetic examples.
method Proposes a new methodology to control and evaluate the bias of synthetic data distributions over programs and specifications.
result Training deep networks on controlled synthetic data distributions leads to improved cross-distribution generalization performance.
Stan models are compiled to generative languages and extended with new features.
problem Lack of direct support for variational inference and deep models in Stan.
method Comprehensive compilation scheme to convert Stan models to generative languages, and extension of Stan with new features.
result NumPyro backend yields a 2.3x speedup compared to Stan in geometric mean over 26 benchmarks.
SAPS synthesizes code from natural language specifications.
problem Efficiently translating complex NL specifications into executable code.
method Structure-aware neural network using abstract syntax trees and LSTM.
result SAPS produces correct programs in over 92% of cases.
Typilus predicts types for Python programs using neural networks.
problem Type inference in dynamically typed languages is challenging.
method Graph neural network model that predicts types by probabilistically reasoning over program structure, names, and patterns.
result Typilus can predict types for 70% of all annotatable symbols and type checks 95% of the predicted types.
We introduce a method for using deep neural networks to amortize the cost of inference in models from the family induced by universal probabilistic programming languages, establishing a framework that combines the strengths of probabilistic programming and deep learning methods. We call what we do "compilation of infer…
Myia compiler optimizes ML models with efficient AD for array programming.
problem Efficient automatic differentiation for array programming in ML.
method Introduces a new graph-based IR that supports function calls, higher-order functions, and recursion.
result Myia compiler enables efficient AD using source transformation without a tape, supporting higher-order derivatives.
Neural machine translation used to convert CUDA to OpenCL.
problem Translating CUDA to OpenCL programs.
method Training input set generation, pre/post processing, case study.
result Improved accuracy in translating CUDA to OpenCL.
Solves Merton's investment-consumption problem with certainty equivalent approach.
problem Maximizing CRRA utility of consumption over time and investment mix.
method Identifies a certainty equivalent problem for the Merton problem, reformulates it as an SOCP, and applies it to model predictive control.
result The certainty equivalent problem can be solved as an SOCP, facilitating model predictive control.
It is time-consuming and error-prone to implement inference procedures for each new probabilistic model. Probabilistic programming addresses this problem by allowing a user to specify the model and having a compiler automatically generate an inference procedure for it. For this approach to be practical, it is important…
We introduce and demonstrate a new approach to inference in expressive probabilistic programming languages based on particle Markov chain Monte Carlo. Our approach is simple to implement and easy to parallelize. It applies to Turing-complete probabilistic programming languages and supports accurate inference in models …
Probabilistic programming languages represent complex data with intermingled models in a few lines of code. Efficient inference algorithms in probabilistic programming languages make possible to build unified frameworks to compute interesting probabilities of various large, real-world problems. When the structure of mo…
Framework synthesizes programs for simulating complex models and estimating parameters.
problem Parameter estimation for complex models requires manual encoding of fixed model structures.
method Combines LLMs for program synthesis with neural simulation-based inference.
result Identifies plausible model families from open-ended prompts with high accuracy.
Databases are widespread, yet extracting relevant data can be difficult. Without substantial domain knowledge, multivariate search queries often return sparse or uninformative results. This paper introduces an approach for searching structured data based on probabilistic programming and nonparametric Bayes. Users speci…
Our goal is to learn a semantic parser that maps natural language utterances into executable programs when only indirect supervision is available: examples are labeled with the correct execution result, but not the program itself. Consequently, we must search the space of programs for those that output the correct resu…
We build deep RL agents that execute declarative programs expressed in formal language. The agents learn to ground the terms in this language in their environment, and can generalize their behavior at test time to execute new programs that refer to objects that were not referenced during training. The agents develop di…
Challenge evaluates semantic code search using annotated corpus.
problem Evaluating relevant code from natural language queries.
method Release of CodeSearchNet Corpus and expert annotations.
result 99 queries with 4k relevance annotations for evaluation.
TF-Coder simplifies tensor manipulation programming in TensorFlow.
problem Difficulty in programming with TensorFlow due to steep learning curve.
method Bottom-up weighted enumerative search with value-based pruning and type/value filtering.
result Solves 63 out of 70 real-world tasks within 5 minutes.
Learning a natural language interface for database tables is a challenging task that involves deep language understanding and multi-step reasoning. The task is often approached by mapping natural language queries to logical forms or programs that provide the desired response when executed on the database. To our knowle…
NumPyro accelerates probabilistic programming with JAX transformations.
problem Efficiently handling probabilistic models with hardware acceleration.
method Composable effects and program transformations in JAX.
result Iterative NUTS formulation JIT compiled for speed.
Convolutional neural network summarizes code comments across multiple languages.
problem Insufficient or missing comments in source code.
method Language-agnostic encoder-decoder model with open vocabulary.
result Comparable results to state-of-the-art on single-language data; first results on multi-language data.
Julia package for Gaussian processes offers fast, flexible, and scalable tools.
problem Modeling complex data sources in various sciences and industries.
method Utilizes Julia's computational benefits for fast, flexible, and user-friendly Gaussian processes.
result Fast, scalable, and user-friendly Gaussian processes package for Julia.
NP-HMC extends HMC for nonparametric models in probabilistic programming.
problem Inference for nonparametric models in probabilistic programming.
method Introduces NP-HMC, a generalization of HMC for nonparametric models using tree representable functions.
result Empirically shows significant performance improvements over existing approaches.
Unified model learns concepts across domains like left and right.
problem Limited generalization of language concepts in inference-only models.
method Logic-Enhanced Foundation Model (LEFT) with a differentiable, domain-independent program executor.
result LEFT flexibly learns and reasons with concepts across 2D images, 3D scenes, human motions, and robotic manipulation.
Neural networks generalize on simple data generated by a programming language.
problem Generalization of neural networks on low complexity data.
method Minimum description length (MDL) approach for feedforward neural networks.
result MDL feedforward neural networks generalize with high probability on simple data.
The ability to generate natural language sequences from source code snippets has a variety of applications such as code summarization, documentation, and retrieval. Sequence-to-sequence (seq2seq) models, adopted from neural machine translation (NMT), have achieved state-of-the-art performance on these tasks by treating…
Develops LF-PPL for non-differentiable models with automatic boundary checks.
problem Handling non-differentiable models in probabilistic programming.
method Introduces LF-PPL with automatic boundary checks and a formalism ensuring measure zero discontinuities.
result Demonstrates efficient inference for non-differentiable models using DHMC.