Repository navigation
PyVBMC 1.5 makes inference faster and slightly more accurate, corrects the algorithm against the original MATLAB VBMC, and adds S-VBMC, Torch, JAX and PyMC integration, and posterior exports. Install or upgrade with
pip install --upgrade pyvbmcThe changelog lists the changes since PyVBMC 1.0.4. Before running an existing script with 1.5, read its Upgrading from 1.0.4 list, which says what can stop a script or change what it returns. Among other points, PyVBMC 1.5 needs Python 3.10 or later, SciPy 1.15 or later and gpyreg 1.4.0 or later, and no longer installs pytest and plotly; its results differ from those of 1.0.4, also with a fixed seed; and an option name that PyVBMC does not know, or a value it cannot use, raises an error.
What's new
- Faster, slightly more accurate inference and lower memory use, with numerical improvements and more compact run histories: on our benchmark suite a run takes on average 3.7 times less time than with PyVBMC 1.0.4 on noiseless targets and 2.2 times less on noisy ones, and the typical error of the estimates of the model evidence and of the posterior is about 10% smaller. Optional performance calibration tunes PyVBMC for your machine.
- Corrections and safeguards, with corrections to the algorithm, most of them from a systematic comparison with the original MATLAB VBMC; a check that keeps the final boost from replacing a good posterior with a much worse one; and clear errors for option values that earlier versions ignored or misread.
- Stacking Variational Bayesian Monte Carlo (S-VBMC) is included in PyVBMC to combine posteriors from independent runs (Silvestrin et al., 2025; usage).
- Explicit random seed control for reproducing individual runs; see the reproducibility guide.
- Torch and JAX model integration through small user-written wrappers, with optional batch evaluation of the initial points; see the model integration guide.
- Direct PyMC model support, with automatic setup and posterior samples exported under the model's variable names; see the PyMC integration guide.
- Posterior exports to Torch and ArviZ for further analysis; see the export guide.
- More practical guidance, with tips when a run starts, a PyVBMC FAQ, and a coding-agent skill that points agents to the relevant documentation.
Watch a three-minute film that explains how PyVBMC works. The full documentation is at https://acerbilab.org/pyvbmc/.
Benchmark runs
The attached archives hold benchmark runs made to validate this release, on 2026-10-02, with the 1.5 code at commit ff3ed01 and gpyreg 1.4.0:
population_after.public.tar.gz.000: 2400 VBMC runs, 24 configurations of the benchmark suite at 100 seeds each, with each run's trace and posterior arrays.pools.public.tar.gz.000: 2930 VBMC runs in 8 conditions (five targets, with and without noise), from which S-VBMC stacks were drawn.
Each archive is one gzipped tar file (tar -xzf pools.public.tar.gz.000), and the matching .sha256 file holds its SHA-256. The campaign record describes the runs and what the archives hold.