ReactiveMP.jl is a Julia package that provides an efficient reactive message passing based Bayesian inference engine on a factor graph. The package is a part of the bigger and user-friendly ecosystem for automatic Bayesian inference called RxInfer. While ReactiveMP.jl exports only the inference engine, RxInfer provides convenient tools for model and inference constraints specification as well as routines for running efficient inference both for static and dynamic datasets.
ReactiveMP.jl is designed for advanced users who need fine-grained control over message passing, custom factor nodes, and custom update rules. It does not create a specific message passing schedule in advance, but rather reacts on changes in the data source (hence reactive in the name of the package).
Install ReactiveMP through the Julia package manager:
] add ReactiveMPOptionally, use ] test ReactiveMP to validate the installation by running the test suite.
For more information about ReactiveMP.jl please refer to the documentation.
The ReactiveMP.jl package is intended for advanced users with a deep understanding of message passing principles. Accessible tutorials and examples are available in the RxInfer documentation.
The RxInfer framework consists of four core packages developed by ReactiveBayes:
ReactiveMP.jl- the underlying message passing-based inference engine (this package)RxInfer.jl- user-friendly modeling and inference layerGraphPPL.jl- model and constraints specification packageExponentialFamily.jl- package for exponential family distributionsRocket.jl- reactive extensions package for Julia
- A Julia package for reactive variational Bayesian inference - a reference paper for the
ReactiveMP.jlpackage. - Reactive Probabilistic Programming for Scalable Bayesian Inference - a PhD dissertation outlining core ideas and principles behind ReactiveMP (link2, link3).
- Variational Message Passing and Local Constraint Manipulation in Factor Graphs - describes theoretical aspects of the underlying Bayesian inference method.
- Reactive Message Passing for Scalable Bayesian Inference - describes implementation aspects of the Bayesian inference engine and performs benchmarks and accuracy comparison on various models.
MIT License Copyright (c) 2021-2024 BIASlab, 2024-present ReactiveBayes