The Future of Pyro

The Future of Pyro

It’s been almost three years since we released the alpha version of Pyro in November 2017. And what a ride it’s been! We’ve been thrilled to see our user and contributor base continue to grow, with discussions on our active forum helping us prioritize new features. We’re delighted to have had a number of contributors join the core development team. We never cease to be amazed by the diversity of Pyro applications that our creative user base comes up with (e.g. causal inference, optimal experimental design, and item response models). We’re also really excited about the development of NumPyro, which was released in May 2019, and which has expanded the Pyro ecosystem from PyTorch to Jax. So what’s next for Pyro?

More Focus on Scientific Applications

We’ve been especially excited by some of the applications of Pyro to different domains of science (e.g. protein folding, gravitational lensing, spatial transcriptomics, and single cell RNA sequencing). Indeed this has gotten us so excited that part of the core development team (Fritz Obermeyer, Eli Bingham, and Martin Jankowiak) have joined the Broad Institute so that they can focus on applications to biology full time. In this context a direction we’re especially attracted to is the formulation of domain specific probabilistic programming languages targeted towards particular domains. These domain specific PPLs are designed to give users special modeling constructs appropriate to the domain at hand together with custom inference algorithms that can leverage model specific structure. Prototypes of this approach can be found in contrib.epidemiology and contrib.forecast.

Future Development Goals

While our development plans will adapt as we identify different ways to make Pyro more powerful and easier to use, especially for scientists and machine learning researchers, some of the directions we’re excited about include:

  • Adding new inference algorithms that support existing models
  • Make it easier to implement new inference algorithms for restricted model classes
  • Integrating Pyro more closely with Funsor
  • Building domain specific probabilistic programming languages for particular (especially scientific) domains
  • Improving support for distributed computing
  • Revamping our transforms and normalizing flows library
  • Improving support for predictive, causal and counterfactual inference
  • As always, more examples and more tutorials

We look forward to future Pyro releases and welcome feedback from the community. Likewise we’d like to reiterate how grateful we are for all the great community additions to Pyro. Please don’t hesitate to reach out if you are interested in contributing to Pyro, whether to the core package or to examples and documentation.