A JAX-powered probabilistic programming library focused on performant sampling methods for Bayesian inference on CPU, GPU, and TPU.
MCX is a probabilistic programming library that enables developers to express and compile probabilistic programs for performant Bayesian inference. It focuses on sampling methods, transforming model definitions into JIT-compiled functions using JAX to run efficiently on CPU, GPU, or TPU. The library aims to provide high-performance inference tools, particularly for sequential inference and Bayesian deep learning.
Data scientists, machine learning researchers, and statisticians who need efficient Bayesian inference with support for GPU acceleration and modular probabilistic modeling.
Developers choose MCX for its JAX-powered compilation, which enables transparent execution on modern hardware, its focus on sampling methods, and its interactive sampling capabilities that allow real-time monitoring and debugging of inference processes.
Express & compile probabilistic programs for performant inference on CPU & GPU. Powered by JAX.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Models are JIT-compiled with JAX, enabling transparent execution on CPU, GPU, or TPU for high-speed inference, as highlighted in the README's focus on leveraging modern hardware.
Provides a generator runtime for real-time monitoring and dynamic control of sampling, allowing users to interrupt inference or debug on-the-fly, which is unique among PPLs.
Uses NumPy-like syntax for expressive, reusable model definitions, making it easy to build and share probabilistic programs, as demonstrated in the linear regression example.
Sampling functions support batching for parallel computation, enabling efficient handling of large datasets and vectorized operations, as noted in the key features.
The project is at its infancy with an updated roadmap for v0.1, leading to frequent API changes and potential breaking issues, as warned in the README's 'Current API' section.
Interactive sampling has significantly lower performance than batch mode, requiring compromises between real-time monitoring and speed, as explicitly stated in the README.
As a new library, it lacks the extensive tooling, community support, and comprehensive documentation of established alternatives like PyMC3 or Pyro, relying on sparse docs and GitHub issues.