# PyVBMC: Efficient Bayesian inference in Python

arXiv: https://arxiv.org/abs/2303.09519 · HTML: https://mlsanity.com/paper/2303.09519/

## Key facts

- Cited by 7 papers in the map (data through 14 Oct 2026).
- Builds on 8 of its 22 references that are in the map.
- First posted on arXiv 16 Mar 2023.

## Builds on (most cited first, 8 of 8)

- [Sampling for Inference in Probabilistic Models with Fast Bayesian Quadrature](https://mlsanity.com/paper/1411.0439/) (2014)
- [Emulation of physical processes with Emukit](https://mlsanity.com/paper/2110.13293/) (2021)
- [Variational Bayesian Monte Carlo with Noisy Likelihoods](https://mlsanity.com/paper/2006.08655/) (2020)
- [Variational Bayesian Monte Carlo](https://mlsanity.com/paper/1810.05558/) (2018)
- [Parallel Gaussian process surrogate Bayesian inference with noisy likelihood evaluations](https://mlsanity.com/paper/1905.01252/) (2019)
- [Adaptive Gaussian process approximation for Bayesian inference with expensive likelihood functions](https://mlsanity.com/paper/1703.09930/) (2017)
- [Fast and robust Bayesian Inference using Gaussian Processes with GPry](https://mlsanity.com/paper/2211.02045/) (2022)
- [Computing Bayes: Bayesian Computation from 1763 to the 21st Century](https://mlsanity.com/paper/2004.06425/) (2020)

## Built on by (most cited first, 7 of 7)

- [Efficient Autoregressive Inference for Transformer Probabilistic Models](https://mlsanity.com/paper/2510.09477/) (2025)
- [PyBADS: Fast and robust black-box optimization in Python](https://mlsanity.com/paper/2306.15576/) (2023)
- [PriorGuide: Test-Time Prior Adaptation for Simulation-Based Inference](https://mlsanity.com/paper/2510.13763/) (2025)
- [Normalizing Flow Regression for Bayesian Inference with Offline Likelihood Evaluations](https://mlsanity.com/paper/2504.11554/) (2025)
- [Parallelized Acquisition for Active Learning using Monte Carlo Sampling](https://mlsanity.com/paper/2305.19267/) (2023)
- [LINFA: a Python library for variational inference with normalizing flow and annealing](https://mlsanity.com/paper/2307.04675/) (2023)
- [Measuring the right thing: justifying metrics in AI impact assessments](https://mlsanity.com/paper/2504.05007/) (2025)

## Abstract (arXiv)

PyVBMC is a Python implementation of the Variational Bayesian Monte Carlo (VBMC) algorithm for posterior and model inference for black-box computational models (Acerbi, 2018, 2020). VBMC is an approximate inference method designed for efficient parameter estimation and model assessment when model evaluations are mildly-to-very expensive (e.g., a second or more) and/or noisy. Specifically, VBMC computes: - a flexible (non-Gaussian) approximate posterior distribution of the model parameters, from which statistics and posterior samples can be easily extracted; - an approximation of the model evidence or marginal likelihood, a metric used for Bayesian model selection. PyVBMC can be applied to any computational or statistical model with up to roughly 10-15 continuous parameters, with the only requirement that the user can provide a Python function that computes the target log likelihood of the model, or an approximation thereof (e.g., an estimate of the likelihood obtained via simulation or Monte Carlo methods). PyVBMC is particularly effective when the model takes more than about a second per evaluation, with dramatic speed-ups of 1-2 orders of magnitude when compared to traditional approximate inference methods. Extensive benchmarks on both artificial test problems and a large number of real models from the computational sciences, particularly computational and cognitive neuroscience, show that VBMC generally - and often vastly - outperforms alternative methods for sample-efficient Bayesian inference, and is applicable to both exact and simulator-based models (Acerbi, 2018, 2019, 2020). PyVBMC brings this state-of-the-art inference algorithm to Python, along with an easy-to-use Pythonic interface for running the algorithm and manipulating and visualizing its results.
