Skip to content

ReactiveBayes/ReactiveMP.jl

Repository files navigation

Stable Dev Build Status Coverage Zenodo

Overview

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).

Installation

Install ReactiveMP through the Julia package manager:

] add ReactiveMP

Optionally, use ] test ReactiveMP to validate the installation by running the test suite.

Documentation

For more information about ReactiveMP.jl please refer to the documentation.

Examples and tutorials

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.

Ecosystem

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 layer
  • GraphPPL.jl - model and constraints specification package
  • ExponentialFamily.jl - package for exponential family distributions
  • Rocket.jl - reactive extensions package for Julia

References

License

MIT License Copyright (c) 2021-2024 BIASlab, 2024-present ReactiveBayes