Abstract: 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.
0 Replies
Loading