English

Simple, Distributed, and Accelerated Probabilistic Programming

Machine Learning 2018-11-30 v2 Machine Learning Programming Languages

Abstract

We describe a simple, low-level approach for embedding probabilistic programming in a deep learning ecosystem. In particular, we distill probabilistic programming down to a single abstraction---the random variable. Our lightweight implementation in TensorFlow enables numerous applications: a model-parallel variational auto-encoder (VAE) with 2nd-generation tensor processing units (TPUv2s); a data-parallel autoregressive model (Image Transformer) with TPUv2s; and multi-GPU No-U-Turn Sampler (NUTS). For both a state-of-the-art VAE on 64x64 ImageNet and Image Transformer on 256x256 CelebA-HQ, our approach achieves an optimal linear speedup from 1 to 256 TPUv2 chips. With NUTS, we see a 100x speedup on GPUs over Stan and 37x over PyMC3.

Keywords

Cite

@article{arxiv.1811.02091,
  title  = {Simple, Distributed, and Accelerated Probabilistic Programming},
  author = {Dustin Tran and Matthew Hoffman and Dave Moore and Christopher Suter and Srinivas Vasudevan and Alexey Radul and Matthew Johnson and Rif A. Saurous},
  journal= {arXiv preprint arXiv:1811.02091},
  year   = {2018}
}

Comments

Appears in Neural Information Processing Systems, 2018. Code available at http://bit.ly/2JpFipt

R2 v1 2026-06-23T05:05:24.298Z