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.
CITATION STYLE
Cusumano-Towner, M. M., & Mansinghka, V. K. K. V. (2018). A design proposal for Gen: Probabilistic programming with fast custom inference via code generation. In MAPL 2018 - Proceedings of the 2nd ACM SIGPLAN International Workshop on Machine Learning and Programming Languages, co-located with PLDI 2018 (pp. 52–57). Association for Computing Machinery, Inc. https://doi.org/10.1145/3211346.3211350
Mendeley helps you to discover research relevant for your work.