stripe/rainier
Bayesian inference in Scala.
What it solves
Rainier provides a high-performance Scala API for Bayesian inference using Markov Chain Monte Carlo (MCMC). It allows users to build generative models with continuous parameters to infer posterior distributions from observed data, which can then be used for making predictions and decisions.
How it works
Rainier uses a static, TensorFlow-style compute graph with auto-differentiation and fast CPU-based execution. It is implemented in pure Scala and produces optimized, unboxed, JIT-friendly JVM bytecode for numerical calculations. Inference is performed using variants of the Hamiltonian Monte Carlo (HMC) sampler, similar to tools like Stan and PyMC3.
Who it’s for
Developers and data scientists working within the JVM ecosystem (such as those using Spark or Hadoop clusters) who need a high-performance Bayesian inference library for models where the data fits in a single machine's RAM.
Highlights
- High-performance CPU execution with optimized JVM bytecode.
- Pure Scala implementation with minimal external dependencies and no JNI libraries.
- Static compute graph with auto-differentiation.
- Aggressive precomputation of data to speed up execution.
- Easy deployment to Spark or Hadoop clusters.
Related
- Project
- Project
- Project
- Project