A JAX-based probabilistic programming framework using nested sampling for fast Bayesian inference and evidence computation.
JAXNS is a probabilistic programming framework implemented in JAX that uses nested sampling for Bayesian inference. It allows users to define probabilistic models and compute Bayesian evidence, posterior samples, and perform model selection with high performance due to JAX's JIT compilation to XLA. The framework solves the problem of slow traditional nested sampling methods by leveraging hardware acceleration and advanced algorithms like Phantom-Powered Nested Sampling.
Researchers, data scientists, and developers working in Bayesian statistics, probabilistic machine learning, or scientific computing who need efficient nested sampling for model comparison and parameter inference.
Developers choose JAXNS for its speed (orders of magnitude faster than PolyChord, MultiNEST, and dynesty), flexibility in model definition, and ability to handle complex, multi-modal posteriors with gradient-based optimisation and evidence maximisation.
Probabilistic Programming and Nested sampling in 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.
Compiles the entire nested sampling algorithm to XLA primitives via JIT, achieving orders of magnitude speedup over traditional packages like PolyChord and MultiNEST, as cited in the README's speed test comparison.
Supports TensorFlow Probability distributions for priors, allows both discrete and continuous variables, and enables complex constraints, making it versatile for probabilistic programming, as shown in the example prior model.
Implements Phantom-Powered sampling for improved efficiency and handles multi-modal, degenerate posteriors effectively, with features highlighted in the key sections and linked papers.
Includes tools like EvidenceMaximisation to optimize model parameters for maximizing Bayesian evidence, facilitating model selection directly within the framework, demonstrated in the example output.
Requires deep familiarity with JAX and static programming constraints; while @jaxify_likelihood helps, the framework is tightly coupled to JAX, posing a steep learning curve for users outside this ecosystem.
The extensive change log shows regular updates with major version jumps (e.g., 2.6.x releases), indicating potential backward compatibility issues and instability for production use.
Compared to established PPLs like PyMC or Stan, JAXNS has a smaller community, fewer third-party tools, and documentation that, while available on ReadTheDocs, may lack depth for advanced or niche use cases.