English

Effect Handling for Composable Program Transformations in Edward2

Programming Languages 2018-11-16 v1 Machine Learning Computation

Abstract

Algebraic effects and handlers have emerged in the programming languages community as a convenient, modular abstraction for controlling computational effects. They have found several applications including concurrent programming, meta programming, and more recently, probabilistic programming, as part of Pyro's Poutines library. We investigate the use of effect handlers as a lightweight abstraction for implementing probabilistic programming languages (PPLs). We interpret the existing design of Edward2 as an accidental implementation of an effect-handling mechanism, and extend that design to support nested, composable transformations. We demonstrate that this enables straightforward implementation of sophisticated model transformations and inference algorithms.

Keywords

Cite

@article{arxiv.1811.06150,
  title  = {Effect Handling for Composable Program Transformations in Edward2},
  author = {Dave Moore and Maria I. Gorinova},
  journal= {arXiv preprint arXiv:1811.06150},
  year   = {2018}
}