blackjax-devs/blackjax
BlackJAX is a Bayesian Inference library designed for ease of use, speed and modularity.
What it solves
BlackJAX provides a modular library of samplers for Bayesian inference that are decoupled from probabilistic programming languages (PPLs). It solves the problem of sampling algorithms being too monolithic or locked into specific modeling frameworks, allowing users to perform sampling on CPUs, GPUs, or TPUs without needing a full PPL.
How it works
The library is built around a general transition kernel pattern where stateless functions take a current state and return a new state and information about the transition. This consistent API allows users to easily compose, exchange, and build complex sampling algorithms from elementary building blocks like integrators, proposals, and momentum generators.
Who it’s for
- Researchers and developers building new sampling algorithms.
- PPL developers who need robust, performant sampler implementations.
- Users who have a log-probability density function (logpdf) and simply need a sampler to generate samples.
- Those who want to leverage hardware acceleration (GPU/TPU) for sampling.
Highlights
- Hardware Acceleration: Works on CPU, GPU, and TPU via JAX.
- Composable Design: Uses a modular architecture of transition kernels to allow for easy customization and the creation of new algorithms.
- PPL Agnostic: Integrates with any PPL that can provide a JAX-compatible log-probability density function.
- Research-Ready: Exposes low-level building blocks to accelerate the development and testing of new inference schemes.
Related
- Project
- Project
- Project
- Project
- Project