New software for sample-efficient Bayesian inference (PyVBMC)

Hi all, posting this as I think it might be of interest to (some) PyMC users and developers.

  • My group just released a new Python package (PyVBMC) for sample-efficient Bayesian inference, i.e. inference with a small number of likelihood evaluations: PyVBMC docs
  • The method runs out of the box, and we included extensive documentations and tutorials for easy accessibility: Examples — PyVBMC
  • We have a tl;dr preprint: [2303.09519] PyVBMC: Efficient Bayesian inference in Python
  • Relevant papers were published at NeurIPS in 2018 and 2020
  • More details on a Twitter or Mastodon thread
  • We are very interested in building interfaces between our method and other probabilistic programming languages, or methods for model visualization (e.g., ArviZ); in fact we already have one in the works for PyMC, pending some adjustments (see here).

Please get in touch in this thread, on Twitter or via email (luigi.acerbi@helsinki.fi) if you have any questions or comments!
Thanks again for your time, and apologies for the spam.

5 Likes

That looks great, thank you for sharing!

Sounds to me like that might be a good fit for low dimensional models with ODEs or so in it. (cc @michaelosthege )

1 Like

Thanks for your interest!

Indeed, PyVBMC would be very useful for estimating parameters of models that include intensive numerical computations inside (like ODEs) - so the likelihood is available, but at least somewhat computationally expensive to evaluate. (PyVBMC also deals with cases where the log-likelihood can be estimated stochastically, e.g. via Monte Carlo estimators of the log-likelihood.)

In practice, we find significant gains in wall-clock time when each likelihood evaluation takes at least a fraction of a second. Things become really interesting when the likelihood evaluation cost is above several seconds per likelihood evaluation, then you can get speedups of 1-2 orders of magnitude.