  Scientists and engineers employ stochastic numerical simulators to model
empirically observed phenomena. In contrast to purely statistical models,
simulators express scientific principles that provide powerful inductive
biases, improve generalization to new data or scenarios and allow for fewer,
more interpretable and domain-relevant parameters. Despite these advantages,
tuning a simulator's parameters so that its outputs match data is challenging.
Simulation-based inference (SBI) seeks to identify parameter sets that a) are
compatible with prior knowledge and b) match empirical observations.
Importantly, SBI does not seek to recover a single 'best' data-compatible
parameter set, but rather to identify all high probability regions of parameter
space that explain observed data, and thereby to quantify parameter
uncertainty. In Bayesian terminology, SBI aims to retrieve the posterior
distribution over the parameters of interest. In contrast to conventional
Bayesian inference, SBI is also applicable when one can run model simulations,
but no formula or algorithm exists for evaluating the probability of data given
parameters, i.e. the likelihood. We present $\texttt{sbi}$, a PyTorch-based
package that implements SBI algorithms based on neural networks. $\texttt{sbi}$
facilitates inference on black-box simulators for practising scientists and
engineers by providing a unified interface to state-of-the-art algorithms
together with documentation and tutorials.
