Proceedings

Swift: Compiled Inference for Probabilistic Programming Languages

Download BibTeX Cite

Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence. Pages 3637-3644.

Abstract

A probabilistic program defines a probability measure over its semantic structures. One common goal of probabilistic programming languages (PPLs) is to compute posterior probabilities for arbitrary models and queries, given observed evidence, using a generic inference engine. Most PPL inference engines — even the compiled ones — incur significant runtime interpretation overhead, especially for contingent and open-universe models. This paper describes Swift, a compiler for the BLOG PPL. Swift-generated code incorporates optimizations that eliminate interpretation overhead, maintain dynamic dependencies efficiently, and handle memory management for possible worlds of varying sizes. Experiments comparing Swift with other PPL engines on avariety of inference problems demonstrate speedups ranging from 12x to326x.

  1. [Agrawal and Horgan, 1990] Hiralal Agrawal and Joseph R Hor- gan. Dynamic program slicing. In ACM SIGPLAN Notices, volume 25, pages 246-256. ACM, 1990.
  2. [Arora et al., 2010] Nimar S. Arora, Rodrigo de Salvo Braz, Erik B. Sudderth, and Stuart J. Russell. Gibbs sampling in open-universe stochastic languages. In UAI, pages 30-39. AUAI Press, 2010.
  3. [Chaganty et al., 2013] Arun Chaganty, Aditya Nori, and Sriram Rajamani. Efficiently sampling probabilistic programs via pro- gram analysis. In AISTATS, pages 153-160, 2013.
  4. [Cytron et al., 1989] Ron Cytron, Jeanne Ferrante, Barry K Rosen, Mark N Wegman, and F Kenneth Zadeck. An effi- cient method of computing static single assignment form. In Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 25-35. ACM, 1989.
  5. [Goodman et al., 2008] Noah D. Goodman, Vikash K. Mans- inghka, Daniel M. Roy, Keith Bonawitz, and Joshua B. Tenen- baum. Church: A language for generative models. In UAI, pages 220-229, 2008.
  6. [Herbrich et al., 2007] Ralf Herbrich, Tom Minka, and Thore Graepel. Trueskill(tm): A bayesian skill rating system. In Advances in Neural Information Processing Systems 20, pages 569-576. MIT Press, January 2007.
  7. [Homan and Gelman, 2014] Matthew D Homan and Andrew Gelman. The no-u-turn sampler: Adaptively setting path lengths in hamiltonian monte carlo. The Journal of Machine Learning Research, 15(1):1593-1623, 2014.
  8. [Hur et al., 2014] Chung-Kil Hur, Aditya V. Nori, Sriram K. Ra- jamani, and Selva Samuel. Slicing probabilistic programs. In Proceedings of the 35th ACM SIGPLAN Conference on Pro- gramming Language Design and Implementation, PLDI '14, pages 133-144, New York, NY, USA, 2014. ACM.
  9. [Kazemi and Poole, 2016] Seyed Mehran Kazemi and David Poole. Knowledge compilation for lifted probabilistic infer- ence: Compiling to a low-level language. 2016.
  10. [Kucukelbir et al., 2015] Alp Kucukelbir, Rajesh Ranganath, An- drew Gelman, and David Blei. Automatic variational inference in Stan. In NIPS, pages 568-576, 2015.
  11. [LeCun et al., 1998] Yann LeCun, Léon Bottou, Yoshua Bengio, and Patrick Haffner. Gradient-based learning applied to doc- ument recognition. Proceedings of the IEEE, 86(11):2278- 2324, 1998.
  12. [Li et al., 2013] Lei Li, Bharath Ramsundar, and Stuart Russell. Dynamic scaled sampling for deterministic constraints. In AIS- TATS, pages 397-405, 2013.
  13. [Lunn et al., 2000] David J. Lunn, Andrew Thomas, Nicky Best, and David Spiegelhalter. WinBUGS -a Bayesian modelling framework: Concepts, structure, and extensibility. Statistics and Computing, 10(4):325-337, October 2000.
  14. [Mansinghka et al., 2013] Vikash K. Mansinghka, Tejas D. Kulkarni, Yura N. Perov, and Joshua B. Tenenbaum. Approx- imate Bayesian image interpretation using generative proba- bilistic graphics programs. In NIPS, pages 1520-1528, 2013.
  15. [McAllester et al., 2008] David McAllester, Brian Milch, and Noah D Goodman. Random-world semantics and syntactic in- dependence for expressive languages. Technical report, 2008.
  16. [Milch and Russell, 2006] Brian Milch and Stuart J. Russell. General-purpose MCMC inference over relational structures. In UAI. AUAI Press, 2006.
  17. [Milch et al., 2005a] Brian Milch, Bhaskara Marthi, Stuart Rus- sell, David Sontag, Daniel L. Ong, and Andrey Kolobov. BLOG: Probabilistic models with unknown objects. In IJCAI, pages 1352-1359, 2005. IJCAI
  18. [Milch et al., 2005b] Brian Milch, Bhaskara Marthi, David Son- tag, Stuart Russell, Daniel L. Ong, and Andrey Kolobov. Ap- proximate inference for infinite contingent Bayesian networks. In Tenth International Workshop on Artificial Intelligence and Statistics, Barbados, 2005.
  19. [Minka et al., 2014] T. Minka, J.M. Winn, J.P. Guiver, S. Web- ster, Y. Zaykov, B. Yangel, A. Spengler, and J. Bronskill. In- fer.NET 2.6, 2014.
  20. [Nori et al., 2014] Aditya V Nori, Chung-Kil Hur, Sriram K Ra- jamani, and Selva Samuel. R2: An efficient MCMC sampler for probabilistic programs. In AAAI Conference on Artificial Intelligence, 2014.
  21. [Pfeffer, 2001] Avi Pfeffer. IBAL: A probabilistic rational pro- gramming language. In In Proc. 17th IJCAI, pages 733-740. IJCAI
  22. [Pfeffer, 2009] Avi Pfeffer. Figaro: An object-oriented proba- bilistic programming language. Charles River Analytics Tech- nical Report, 2009.
  23. [Plummer, 2003] Martyn Plummer. JAGS: A program for anal- ysis of Bayesian graphical models using Gibbs sampling. In Proceedings of the 3rd International Workshop on Distributed Statistical Computing, volume 124, page 125. Vienna, 2003.
  24. [Ritchie et al., 2016] Daniel Ritchie, Andreas Stuhlmüller, and Noah D. Goodman. C3: Lightweight incrementalized MCMC for probabilistic programs using continuations and callsite caching. In AISTATS 2016, 2016.
  25. [Sanderson, 2010] Conrad Sanderson. Armadillo: An open source c++ linear algebra library for fast prototyping and com- putationally intensive experiments. 2010.
  26. [Shah et al., 2016] Rohin Shah, Emina Torlak, and Rastislav Bodik. SIMPL: A DSL for automatic specialization of infer- ence algorithms. arXiv preprint arXiv:1604.04729, 2016.
  27. [Stan Development Team, 2014] Stan Development Team. Stan Modeling Language Users Guide and Reference Manual, Ver- sion 2.5.0, 2014.
  28. [Tipping and Bishop, 1999] Michael E. Tipping and Chris M. Bishop. Probabilistic principal component analysis. Journal of the Royal Statistical Society, Series B, 61:611-622, 1999.
  29. [Tristan et al., 2014] Jean-Baptiste Tristan, Daniel Huang, Joseph Tassarotti, Adam C Pocock, Stephen Green, and Guy L Steele. Augur: Data-parallel probabilistic modeling. In NIPS, pages 2600-2608. 2014.
  30. [Wingate et al., 2011] David Wingate, Andreas Stuhlmueller, and Noah D Goodman. Lightweight implementations of proba- bilistic programming languages via transformational compila- tion. In International Conference on Artificial Intelligence and Statistics, pages 770-778, 2011.
  31. [Wood et al., 2014] Frank Wood, Jan Willem van de Meent, and Vikash Mansinghka. A new approach to probabilistic program- ming inference. In Proceedings of the 17th International con- ference on Artificial Intelligence and Statistics, pages 2-46, 2014.
  32. [Wu et al., 2014] Yi Wu, Lei Li, and Stuart J. Russell. BFiT: From possible-world semantics to random-evaluation seman- tics in open universe. In Neural Information Processing Sys- tems, Probabilistic Programming workshop, 2014.
  33. [Yang et al., 2014] Lingfeng Yang, Pat Hanrahan, and Noah D. Goodman. Generating efficient MCMC kernels from proba- bilistic programs. In AISTATS, pages 1068-1076, 2014.

References were extracted automatically from the PDF and may contain errors.

Welcome Future Conferences AI Journal Division IJCAI Proceedings About IJCAI IJCAI Awards