Deployable probabilistic programming

06/20/2019
by   David Tolpin, et al.
0

We propose design guidelines for a probabilistic programming facility suitable for deployment as a part of a production software system. As a reference implementation, we introduce Infergo, a probabilistic programming facility for Go, a modern programming language of choice for server-side software development. We argue that a similar probabilistic programming facility can be added to most modern general-purpose programming languages. Probabilistic programming enables automatic tuning of program parameters and algorithmic decision making through probabilistic inference based on the data. To facilitate addition of probabilistic programming capabilities to other programming languages, we share implementation choices and techniques employed in development of Infergo. We illustrate applicability of Infergo to various use cases on case studies, and evaluate Infergo's performance on several benchmarks, comparing Infergo to dedicated inference-centric probabilistic programming frameworks.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/17/2018

Deep Probabilistic Programming Languages: A Qualitative Study

Deep probabilistic programming languages try to combine the advantages o...
research
11/15/2018

Effect Handling for Composable Program Transformations in Edward2

Algebraic effects and handlers have emerged in the programming languages...
research
10/16/2020

It was never about the language: paradigm impact on software design decisions

Programming languages development has intensified in recent years. New o...
research
06/02/2013

Declarative Modeling and Bayesian Inference of Dark Matter Halos

Probabilistic programming allows specification of probabilistic models i...
research
12/25/2017

General-Purpose Visual Language and Information System with Case-Studies in Developing Business Applications

Learning computer programming has been always challenging. Since the six...
research
05/01/2019

Next-Paradigm Programming Languages: What Will They Look Like and What Changes Will They Bring?

The dream of programming language design is to bring about orders-of-mag...
research
08/03/2020

GPP, the Generic Preprocessor

In computer science, a preprocessor (or macro processor) is a tool that ...

Please sign up or login with your details

Forgot password? Click here to reset