A design proposal for Gen: Probabilistic programming with fast custom inference via code generation. Cusumano-Towner, M. F. & Mansinghka, V. K. In MAPL 2018: Workshop on Machine Learning and Programming Languages (co-located with PLDI 2018), pages 52–57, 2018.
A design proposal for Gen: Probabilistic programming with fast custom inference via code generation [link]Link  abstract   bibtex   
Probabilistic programming languages have the potential to make probabilistic modeling and inference easier to use in practice, but only if inference is sufficiently fast and accurate for real applications. Thus far, this has only been possible for domain-specific languages that focus on a restricted class of models and inference algorithms. This paper proposes a design for a probabilistic programming language called Gen, embedded in Julia, that aims to be sufficiently expressive and performant for general-purpose use. The language provides constructs for automatically generating optimized implementations of custom inference tactics based on static analysis of the target probabilistic model. This paper informally describes a language design for Gen, and shows that Gen is more expressive than Stan, a widely used language for hierarchical Bayesian modeling. A first benchmark shows that a prototype implementation of Gen can be as fast as Stan, only ∼1.4x slower than a hand-coded sampler in Julia, and ∼7,500x faster than Venture, one of the only other probabilistic languages with support for custom inference.
@inproceedings{towner2018design,
title                 = {A design proposal for {Gen:} Probabilistic programming with fast custom inference via code generation},
author                = {Cusumano-Towner, Marco F. and Mansinghka, Vikash K.},
booktitle             = {MAPL 2018: Workshop on Machine Learning and Programming Languages (co-located with PLDI 2018)},
year                  = 2018,
pages                 = {52--57},
url_link              = {https://dl.acm.org/citation.cfm?id=3211350},
abstract              = {Probabilistic programming languages have the potential to make probabilistic modeling and inference easier to use in practice, but only if inference is sufficiently fast and accurate for real applications. Thus far, this has only been possible for domain-specific languages that focus on a restricted class of models and inference algorithms. This paper proposes a design for a probabilistic programming language called Gen, embedded in Julia, that aims to be sufficiently expressive and performant for general-purpose use. The language provides constructs for automatically generating optimized implementations of custom inference tactics based on static analysis of the target probabilistic model. This paper informally describes a language design for Gen, and shows that Gen is more expressive than Stan, a widely used language for hierarchical Bayesian modeling. A first benchmark shows that a prototype implementation of Gen can be as fast as Stan, only ∼1.4x slower than a hand-coded sampler in Julia, and ∼7,500x faster than Venture, one of the only other probabilistic languages with support for custom inference.}
}

Downloads: 0