RxInferServer – Remote Bayesian Inference from Python via Julia
What is RxInfer? https://reactivebayes.github.io/RxInfer.jl/
RxInfer.jl is a Julia package designed for reactive message passing and probabilistic programming. It facilitates real-time Bayesian inference in complex models, supporting both exact and variational inference algorithms.
Key Features: - Remote Model Execution: Call RxInfer models hosted on RxInferServer directly from Python. - OpenAPI Specification: RxInferServer exposes an OpenAPI interface, allowing for seamless integration and client generation. - Julia Interoperability: With minor modifications, RxInferServer can execute arbitrary Julia code, not limited to RxInfer models.
Example Notebook: State-Space Model Example https://lazydynamics.github.io/RxInferClient.py/examples/state-space-model/
Server Documentation https://server.rxinfer.com
Python SDK Repository https://github.com/lazydynamics/RxInferClient.py
We welcome feedback from the developer community, especially those interested in integrating Bayesian inference into Python workflows or exploring cross-language model execution.
I'm also curious to know if, once a reasonable way to model a problem with RxInfer is found, can better results (either speeding up evaluation or reducing approximation error) be obtained by throwing more hardware at it (CPU, ram, GPU etc)? Or in practice does inference speed tend not to be a practical bottleneck, and if the bottleneck is that approximation error is too high then the remedy is reformulating the problem / switching to another method (i.e. requires R&D) / gathering more data to better constrain model fits.
For example, in our portfolio we have a comparison with NumPyro on Bayesian linear regression: https://examples.rxinfer.com/categories/basic_examples/bayes.... While this isn’t a real-time signal processing use case, it still shows that RxInfer can match the quality of NumPyro’s results—at a fraction of the computational cost