We are excited to announce the release of RxInfer 2.0, which is a Julia package for fast and scalable Bayesian inference in probabilistic models. RxInfer
unites previously released packages ReactiveMP
, GraphPPL
, and Rocket
in a single userfriendly ecosystem that aims to execute efficient Bayesian inference in realtime.GraphPPL
is a package for userfriendly model and inference constraints specification. ReactiveMP
exports a highperformant, reactive message passingbased Bayesian inference engine for the specified model. The reactive extensions package Rocket
supports running Bayesian inference on streaming data sets in realtime.
In general, RxInfer
executes inference faster than samplingbased Bayesian inference methods since it exploits local conjugate pairings in the graph representation of a probabilistic model. For instance, RxInfer
significantly outperforms Juliaâ€™s stateoftheart inference package Turing
on a set of conjugate statespace models. Turing
, on the other hand, may be able to execute inference for a less constrained set of models. However, the ReactiveMP
inference engine has evolved significantly over the last year and is capable of running inference for many nonconjugate models as well. It is also possible to include nonlinear dependencies between variables and use various builtin approximation methods, such as Statistical Linearization, Unscented transform and Conjugatecomputation Variational Inference (CVI).
In short, RxInfer
provides:

A convenient userfriendly language for specification of model and inference constraints:
 The
@model
macro resembles closely the same macro in other popular PPL languages, likeTuring
.  The
@constraints
macro specifies constraints on the variational family of distributions that should be used during the optimization procedure.  The
@meta
macro specifies approximation methods for different parts of the probabilistic model graph
 The

Inference for static large datasets with millions of observations on a standard (win/mac/linux) laptop.

Realtime inference for streaming data sets with potentially an unlimited number of observations

A unified framework for different Bayesian inference algorithms, including:
 SumProduct
 MeanField & Structured Variational Inference
 Expectation Maximization
 Expectation Propagation

Hybrid Bayesian inference algorithms across different parts of the probabilistic modelâ€™s graph
 It is possible to use, for example, the SumProduct rule in one part of the model and VMP in another part of the model

RxInfer
is easily extendable with custom novel factor nodes and message update equations 
Supports automatic differentiation of the entire inference procedure for global parameters tuning

Bethe Free Energy (approximation to the Bayesian model evidence) evaluation

And much more!
Check the Getting started section to get started. The documentation has a lot of example and tutorials.
Links:
 RxInfer website: RxInfer.jl
 RxInfer GitHub: GitHub  biaslab/RxInfer.jl: Julia package for automated Bayesian inference on a factor graph with reactive message passing
 RxInfer Documentation: Home Â· RxInfer.jl
 ReactiveMP.jl: GitHub  biaslab/ReactiveMP.jl: Highperformance reactive messagepassing based Bayesian inference engine
 GraphPPL.jl: GitHub  biaslab/GraphPPL.jl: DSL for probabilistic models specification and probabilistic programming.
 Rocket.jl: GitHub  biaslab/Rocket.jl: Functional reactive programming extensions library for Julia