Hi everyone,
I wanted to share that the ONNX Probabilistic Programming Working Group has recently been formed and invite participation from the Julia probabilistic programming community—particularly developers and users of Turing.jl, RxInfer.jl, DynamicPPL, Bijectors.jl, and related packages.
The goal of this working group is to bring probabilistic modeling and Bayesian inference into the ONNX ecosystem as first-class capabilities, similar to how ONNX already supports portable neural network models.
We are working toward defining a standardized operator domain and runtime semantics that allow probabilistic models to be exported, executed, and optimized across frameworks and hardware.
Areas we are exploring
Some of the areas the working group is currently focusing on include:
- Probability distributions and log-density operators
- Bijectors and constrained parameter transformations
- Reproducible stateless, splittable RNG semantics
- Special mathematical functions required for probabilistic inference
- Inference algorithms such as Laplace, Pathfinder, INLA, HMC, NUTS, and SMC
- Export pathways for probabilistic programming frameworks
Frameworks we are looking to support
The working group is interested in supporting a range of probabilistic programming systems, including:
- Stan
- PyMC
- Pyro
- NumPyro
- TensorFlow Probability
- JAX-based probabilistic systems
- BayesFlow
- Julia probabilistic programming frameworks including Turing.jl and RxInfer.jl
The goal is to make probabilistic models portable across frameworks and hardware backends using ONNX as an intermediate representation, while preserving the semantics required for probabilistic inference.
Why input from the Julia community matters
The Julia ecosystem has developed some of the most interesting probabilistic programming infrastructure in recent years. In particular:
- Turing.jl / DynamicPPL for flexible Bayesian modeling and inference
- RxInfer.jl for reactive message-passing and variational inference
- Bijectors.jl and Distributions.jl for composable probabilistic building blocks
We would really value perspectives from the Julia community on how these abstractions should be represented in a portable IR.
Getting involved
If you’re interested in participating, contributing ideas, or providing feedback from the Julia ecosystem perspective, feel free to reach out to:
- Andreas Fehlner https://www.linkedin.com/in/andreas-fehlner-60499971/
- Adam Pocock https://www.linkedin.com/in/craigacp/
- Brian Parbhu https://www.linkedin.com/in/brian-parbhu-99891133/
You are also welcome to attend the working group meetings:
Fridays @ 12 PM EST, every two weeks
Working group repository: