skip to main content
10.1145/3437984.3458835acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article

Vate: Runtime Adaptable Probabilistic Programming for Java

Published:26 April 2021Publication History

ABSTRACT

Inspired by earlier work on Augur, Vate is a probabilistic programming language for the construction of JVM based probabilistic models with an Object-Oriented interface. As a compiled language it is able to examine the dependency graph of the model to produce optimised code that can be dynamically targeted to different platforms. Using Gibbs Sampling, Metropolis-Hastings and variable marginalisation it can handle a range of model types and is able to efficiently infer values, estimate probabilities, and execute models.

References

  1. Eli Bingham, Jonathan P. Chen, Martin Jankowiak, Fritz Obermeyer, Neeraj Pradhan, Theofanis Karaletsos, Rohit Singh, Paul Szerlip, Paul Horsfall, and Noah D. Goodman. 2019. Pyro: Deep Universal Probabilistic Programming. J. Mach. Learn. Res. 20, 1 (Jan. 2019), 973--978.Google ScholarGoogle Scholar
  2. Bob Carpenter, Andrew Gelman, Matthew D Hoffman, Daniel Lee, Ben Goodrich, Michael Betancourt, Marcus Brubaker, Jiqiang Guo, Peter Li, and Allen Riddell. 2017. Stan: A probabilistic programming language. Journal of statistical software 76, 1 (2017).Google ScholarGoogle ScholarCross RefCross Ref
  3. Stuart Geman and Donald Geman. 1984. Stochastic Relaxation, Gibbs Distributions, and the Bayesian Restoration of Images. IEEE Trans. Pattern Anal. Mach. Intell. 6, 6 (Nov. 1984), 721--741. https://doi.org/10.1109/TPAMI.1984.4767596Google ScholarGoogle Scholar
  4. Noah D. Goodman. 2013. The Principles and Practice of Probabilistic Programming. In Proceedings of the 40th Annual ACM SIGPLANSIGACT Symposium on Principles of Programming Languages (Rome, Italy) (POPL '13). Association for Computing Machinery, New York, NY, USA, 399--402. https://doi.org/10.1145/2429069.2429117Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Noah D. Goodman, Vikash K. Mansinghka, Daniel Roy, Keith Bonawitz, and Joshua B. Tenenbaum. 2008. Church: A Language for Generative Models. In Proceedings of the Twenty-Fourth Conference on Uncertainty in Artificial Intelligence (Helsinki, Finland) (UAI'08). AUAI Press, Arlington, Virginia, USA, 220--229.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Maria I. Gorinova, Andrew D. Gordon, and Charles Sutton. 2019. Probabilistic Programming with Densities in SlicStan: Efficient, Flexible, and Deterministic. Proc. ACM Program. Lang. 3, POPL, Article 35 (Jan. 2019), 30 pages. https://doi.org/10.1145/3290348Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Robert J. B. Goudie, Rebecca M. Turner, Daniela De Angelis, and Andrew Thomas. 2020. MultiBUGS: A Parallel Implementation of the BUGS Modeling Framework for Faster Bayesian Inference. Journal of Statistical Software 95, 7 (2020). https://doi.org/10.18637/jss.v095.i07Google ScholarGoogle ScholarCross RefCross Ref
  8. Tim Harris and Stefan Kaestle. 2015. Callisto-RTS: Fine-Grain Parallel Loops. In 2015 USENIX Annual Technical Conference (USENIX ATC 15). USENIX Association, Santa Clara, CA, 45--56. https://www.usenix.org/conference/atc15/technical-session/presentation/harrisGoogle ScholarGoogle Scholar
  9. W. K. Hastings. 1970. Monte Carlo Sampling Methods Using Markov Chains and Their Applications. Biometrika 57, 1 (1970), 97--109. http://www.jstor.org/stable/2334940Google ScholarGoogle ScholarCross RefCross Ref
  10. Doug Lea. 2000. A Java Fork/Join Framework. In Proceedings of the ACM 2000 Conference on Java Grande (San Francisco, California, USA) (JAVA '00). Association for Computing Machinery, New York, NY, USA, 36--43. https://doi.org/10.1145/337449.337465Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Lawrence M. Murray and Thomas B. Schön. 2020. Automated learning with a probabilistic programming language: Birch. arXiv:1810.01539 [stat.ML]Google ScholarGoogle Scholar
  12. Martyn Plummer. 2003. JAGS: A program for analysis of Bayesian graphical models using Gibbs sampling.Google ScholarGoogle Scholar
  13. John Salvatier, Thomas V. Wiecki, and Christopher Fonnesbeck. 2016. Probabilistic programming in Python using PyMC3. PeerJ Computer Science 2 (apr 2016), e55. https://doi.org/10.7717/peerj-cs.55Google ScholarGoogle Scholar
  14. Nazanin Tehrani, Nimar S. Arora, Yucen Lily Li, Kinjal Divesh Shah, David Noursi, Michael Tingley, Narjes Torabi, Sepehr Masouleh, Eric Lippert, and Erik Meijer. 2020. Bean Machine: A Declarative Probabilistic Programming Language For Efficient Programmable Inference. In Proceedings of the 10th International Conference on Probabilistic Graphical Models (Proceedings of Machine Learning Research, Vol. 138), Manfred Jaeger and Thomas Dyhre Nielsen (Eds.). PMLR, 485--496. http://proceedings.mlr.press/v138/tehrani20a.htmlGoogle ScholarGoogle Scholar
  15. Andrew Thomas, David J Spiegelhalter, and WR Gilks. 1992. BUGS: A program to perform Bayesian inference using Gibbs sampling. Bayesian statistics 4 (1992), 837--842.Google ScholarGoogle Scholar
  16. David Tolpin, Jan Willem van de Meent, Hongseok Yang, and Frank Wood. 2016. Design and Implementation of Probabilistic Programming Language Anglican. arXiv preprint arXiv:1608.05263 (2016).Google ScholarGoogle Scholar
  17. Dustin Tran, Alp Kucukelbir, Adji B. Dieng, Maja Rudolph, Dawen Liang, and David M. Blei. 2016. Edward: A library for probabilistic modeling, inference, and criticism. arXiv preprint arXiv:1610.09787 (2016).Google ScholarGoogle Scholar
  18. Jean-Baptiste Tristan, Daniel Huang, Joseph Tassarotti, Adam C Pocock, Stephen Green, and Guy L Steele. 2014. Augur: Data-Parallel Probabilistic Modeling. In Advances in Neural Information Processing Systems, Z. Ghahramani, M. Welling, C. Cortes, N. Lawrence, and K. Q. Weinberger (Eds.), Vol. 27. Curran Associates, Inc., 2600--2608. https://proceedings.neurips.cc/paper/2014/file/cf9a242b70f45317ffd281241fa66502-Paper.pdfGoogle ScholarGoogle Scholar
  19. John Winn and Tom Minka. 2009. Probabilistic Programming with Infer.NET. https://www.microsoft.com/en-us/research/publication/probabilistic-programming-infer-net/Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    EuroMLSys '21: Proceedings of the 1st Workshop on Machine Learning and Systems
    April 2021
    130 pages
    ISBN:9781450382984
    DOI:10.1145/3437984

    Copyright © 2021 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 26 April 2021

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    EuroMLSys '21 Paper Acceptance Rate18of26submissions,69%Overall Acceptance Rate18of26submissions,69%
  • Article Metrics

    • Downloads (Last 12 months)8
    • Downloads (Last 6 weeks)1

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader