Skip to content

shohei81/awsome-PPL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Awesome PPL Awesome

A curated list of Probabilistic Programming Languages (PPLs), inference libraries, and learning resources.

Probabilistic programming integrates probabilistic models and code into a unified paradigm.
Instead of coding “how” to compute, you specify what your model is, and the PPL system automatically performs inference — from Bayesian statistical models to deep probabilistic programs.


Contents


Python

  • PyMC – Declarative, graph-based PPL for applied Bayesian statistics. Supports NUTS, ADVI, SMC. Tutorial: PyMC Examples
  • Pyro – Universal (generative) PPL built on PyTorch. Strong in deep probabilistic modeling, VI, and HMC/NUTS.
    Tutorial: Pyro Tutorials
  • NumPyro – JAX-based Pyro, offering major speedups via JIT compilation.
    Tutorial: NumPyro Tutorials
  • TensorFlow Probability – Library of probabilistic building blocks in TensorFlow/JAX. Supports HMC, VI, and optimizers.
    Tutorial: TFP Examples
  • Stan (via CmdStanPy/PyStan) – Declarative, static-graph language with gold-standard NUTS implementation.
    Tutorial: Stan User’s Guide
  • Bean Machine – Meta’s research PPL for programmable inference using PyTorch.
    Tutorial: Bean Machine Tutorials
  • Edward2 – A lightweight, low-level probabilistic programming library built on TensorFlow, JAX, or NumPy, emphasizing flexibility via a single abstraction (“random variable”) and tracing-based model manipulation :contentReference[oaicite:0]{index=0}.
    Tutorial: Edward Tutorials :contentReference[oaicite:1]{index=1}
  • GenJAX – JAX-based implementation of Gen with programmable variational inference.
    Tutorial: GenJAX Documentation
  • BlackJAX – Sampling algorithms for JAX (HMC, NUTS, Riemannian HMC, SMC) designed for composability with other JAX-based PPLs.
    Tutorial: BlackJAX Examples

Julia

R

Scala

  • Figaro – Expressive Scala PPL with broad algorithm support (MCMC, SMC, exact inference).
    Tutorial: Figaro Guide
  • Rainier – High-performance, static-graph Scala PPL inspired by Stan/PyMC.
    Tutorial: Rainier Examples

JavaScript

  • WebPPL – Universal PPL for the web. Runs in-browser or Node.js, popular in cognitive science.
    Tutorial: WebPPL Web Book

Logic & Specialized


Contributing

Contributions are welcome! Please ensure:

  • Each entry has a link, short description, and follows the existing format.
  • Include an official tutorial link when available.
  • Keep descriptions objective and concise.

Last updated: 2025-08-14

About

Curated list of Probabilistic Programming Languages (PPLs), inference libraries, and learning resources.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors