Features

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.

Differentiable

Supports automatic differentiation packages for parameter tuning.

Hello RxInfer!

RxInfer.jl is a Julia package that aims to automate inference in your probabilistic models. Specify your model, call the inference function, and the package takes care of the rest. Take a look how simple it is to specify a linear state space model and to run inference in it!

Get started now

    
         
@model function SSM(n, x0, A, B, Q, P) 
 
 	 # x is a sequence of hidden states 
 	 x = randomvar(n) 
 
 	 # y is a sequence of clamped observations 
 	 y = datavar(Vector{Float64}, n) 
 
 	 # `~` expression creates a probabilistic relationship
 	 # between random variables
 	 x_prior ~ MvNormal(μ = mean(x0), Σ = cov(x0)) 
 	 x_prev = x_prior 
 
 	 # Build the state-space model 
 	 for i in 1:n 
 		   x[i] ~ MvNormal(μ = A * x_prev, Σ = Q) 
 		   y[i] ~ MvNormal(μ = B * x[i], Σ = P) 
 		   x_prev = x[i] 
 	 end 
 end 
 
 observations = load_dataset() 
 
 result = infer(
 	model = SSM(length(observations), x0, A, B, Q, P), 
 	data  = (y = observations,)
 ) 
    

RxInfer is fast

RxInfer exploits the modularity of factor graphs to perform fast message passing-based probabilistic inference that scales linearly with the size of your model. We generally outperform state-of-the-art sampling-based packages by several orders of magnitude. The efficiency of RxInfer makes it easier to process streaming data sources in real time.

Check out some examples

Solve complex problems

Track hidden states of a dynamic system 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 and collision avoidance

Stay in control, prevent collisions, and streamline routes effortlessly with RxInfer. Streamline your navigation experience and enhance safety.

Reactive reasoning and decision making with Active Inference framework

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.

Watch our talk!

RxInfer has been presented on the JuliaCon 2023, the biggest conference of Julia developers. Check out our video!

Watch our presentation on JuliaCon

Community videos

Intro to RxInfer by Doggo.jl

Variational inference with RxInfer by Doggo.jl

Active Inference Symposium