Rxinfer: Automatic Bayesian Inference Through Reactive Message Passing
biaslab.github.io
biaslab.github.io
I’d hazard to guess that if this package fits incrementally without simulation that either it doesn’t aim for a global optimum or that it places substantial limits on the form models can take.
RxInfer tries to be as efficient as possible in running inference, but it does indeed places limits on the form of the models it can run inference for. The team has long-term plans and solutions under research, which should expand the set of available models substantially. Message passing has a long history, it is not only belief propagation on simple models, but also nowadays the variational inference is possible with message passing on sophisticated hierarchical models.
The methods listed in this project (EM algorithm, VI) tend not to provide this as well but usually produce something that looks like a good posterior mean (global optimum under mean square loss) in my experience.
I am also really interested to see if CHEES HMC (https://proceedings.mlr.press/v130/hoffman21a.html) makes it as a viable in-the-wild inference technique since it gets around the nastiness of writing NUTS as a recursive algorithm on hardware (GPU / TPU) generally not friendly to that type of control flow.
What's the equivalent in python?
It includes a really mature compiler that generates very efficient message passing and variational inference, with support for online inference, which is the main focus on Rxinfer.
You can call Infer.NET from Python in a number of ways, despite it is not a CPython library.
You might start with Stan for which Python bindings are available if I recall correctly.