Welcome to RxInfer.jl - a powerful Julia package for fast and flexible Bayesian inference. By combining message passing algorithms with model's graph structure, RxInfer makes probabilistic programming both efficient and accessible. Whether you're working on machine learning, signal processing, or complex statistical models, RxInfer provides the tools you need to solve real-world inference problems.
Why RxInfer?
Discover the power of reactive Bayesian inference
User Friendly
Clean specification of probabilistic models and inference constraints.
Streaming Datasets
Reactive message passing-based inference for streaming datasets.
Hybrid Models
Support for hybrid models combining discrete and continuous latent variables.
Scalable
Scalability for large models with millions of parameters and observations.
Extensible
Designed to be extended with custom operations.
Community Driven
Join our vibrant community of developers and researchers.
Hello World with RxInfer
Probabilistic programming made simple
RxInfer makes it easy to specify both generative models and variational constraints using familiar mathematical notation. The flexible design lets you control exactly how inference should be performed.
Generative Models
Define probabilistic models with intuitive syntax
Variational Constraints
Customize inference with flexible constraints
Graphical Models
Let RxInfer choose the best inference procedure
1using RxInfer
2
3@model function generative_model(y)
4 μ ~ Normal(mean = 0.0, variance = 1.0)
5 τ ~ Gamma(shape = 1.0, rate = 1.0)
6 y .~ Normal(mean = μ, precision = τ)
7end
8
9@constraints function mean_field()
10 q(μ, τ) = q(μ)q(τ)
11end
12
13result = infer(
14 model = generative_model(),
15 data = load_dataset(),
16 constraints = mean_field(),
17 iterations = 10
18)
Explore more interactive examples and discover the full potential of reactive Bayesian inference.
View ExamplesRxInfer is Fast
Optimized for performance and scalability
Below is a benchmark comparison between RxInfer's message passing algorithm and Hamiltonian Monte Carlo (HMC) on a linear dynamical system. The benchmark measures time to convergence for inferring the posterior distribution. As shown, on this problem RxInfer's optimized message passing achieves over 300x faster inference results compared to traditional HMC sampling.
Smaller time is better
View benchmark detailsLightning Fast
Optimized message passing
Real-time Processing
Process data with minimal latency
Resource Efficient
Optimized CPU utilization
Solve Complex Problems
See RxInfer in action with real-world applications
Track Hidden States in Real-time
Unveil real-time insights into dynamic systems with our software's prowess in tracking hidden states. By providing continuous monitoring and analysis, our tool empowers you to gain a deeper understanding of complex processes, enabling informed decision-making and proactive responses.
Smart Navigation & Collision Avoidance
Stay in control, prevent collisions, and streamline routes effortlessly with RxInfer. Streamline your navigation experience and enhance safety.
Reactive Reasoning with Active Inference
Enhance your decision-making process with the Active Inference framework. Designed to help you analyze incoming information in real-time, this tool enables you to make well-informed choices and adapt to changing situations effectively.
Discover more examples and see how RxInfer can help solve your inference problems.
Explore More ExamplesWatch JuliaCon Talk
Deep dive into RxInfer's architecture and capabilities
Learn about the core concepts behind RxInfer, its implementation, and how it enables reactive probabilistic programming with message passing-based inference. This talk from JuliaCon 2023 covers the fundamental principles and demonstrates real-world applications.
Community Videos
Join our growing community and explore more videos from Julia developers. Share your own experiences and connect with fellow RxInfer users!
Fast Bayesian Inference with RxInfer.jl
Intro to RxInfer by Doggo.jl
Variational inference with RxInfer
Active Inference Symposium
Stable Ecosystem
Unleash the power of Bayesian inference with our robust ecosystem of Julia packages
If you like what we're doing, consider giving us a star! ⭐️
Rocket.jl
Enables reactive programming in Julia for processing of asynchronous data streams.
ReactiveMP.jl
Efficient, easily extensible and schedule-free reactive message passing-based inference engine.
GraphPPL.jl
Powerful, user-friendly, graph-based specification of both model and inference constraints.
ExponentialFamily.jl
A package that implements the rich family of probability distributions.
BayesBase.jl
A package that serves as an umbrella, defining methods essential for Bayesian statistics.
Julia Ecosystem
RxInfer is built upon the incredible Julia ecosystem - its powerful packages for statistics and scientific computing make RxInfer possible.
Explore Julia PackagesThanks to Our Supporters
We're grateful to these amazing organizations for their continued support and contributions
Let's stay in touch!
Here are some of the ways you can follow us: