Statically and Dynamically Delayed Sampling for Typed Probabilistic Programming Languages
Probabilistic programming languages (PPLs) make it possible to separate the concerns between probabilistic models and Bayesian inference algorithms. However, to make such inference efficient is technically very challenging, both in terms of execution time performance and inference accuracy. One successful optimization approach is the previously published work on dynamically delayed sampling. This runtime method makes use of analytical relations between random variables to reduce inference variance; however, tracking these relations introduces runtime overhead. Furthermore, implementing the dynamic approach in a statically typed language introduces type problems because delaying the sampling of random variables changes their types. Our work advances the state-of-the-art in two aspects. Firstly, to reduce the runtime overhead, we develop a compile-time version of delayed sampling. By incorporating optimization procedures during compilation, we eliminate the need for runtime relation tracking and consequent overhead. However, the compile-time version may not always be effective due to the program’s possible dynamic behavior, such as stochastic branches, or the complexity of handling recursion. Secondly, we introduce constructs to implement dynamically delayed sampling in a statically typed universal PPL. Dynamically delayed sampling in statically typed languages is a viable optimization for complex Bayesian models, whereas simple models ought to be statically optimized. We evaluate both statically and dynamically delayed sampling on real-world examples, such as latent Dirichlet allocation and phylogenetic models, and implement the methods in a statically typed PPL, Miking CorePPL.
Mon 21 OctDisplayed time zone: Pacific Time (US & Canada) change
09:00 - 10:30 | Empirical Studies and Experience ReportsSLE at IBR East Chair(s): Benoit Combemale University of Rennes, Inria, CNRS, IRISA | ||
09:00 30mTalk | Trading Runtime for Energy Efficiency SLE Simão Cunha University of Minho, Luís Silva University of Minho, João Saraiva University of Minho, João Paulo Fernandes LIACC, Universidade do Porto, Porto, Portugal DOI | ||
09:30 30mTalk | Cloud Programming Languages and Infrastructure From Code: An Empirical Study SLE DOI | ||
10:00 30mTalk | Statically and Dynamically Delayed Sampling for Typed Probabilistic Programming Languages SLE Gizem Caylak KTH Royal Institute of Technology, Daniel Lundén Oracle, Viktor Senderov Institut de Biologie de l'École Normale Supérieure, David Broman KTH Royal Institute of Technology DOI |