Soss: Lightweight probabilistic programming in Julia
Who is this presentation for?
- Practicing data scientists, graduate students, researchers, and anyone interested in Julia or Bayesian modeling
Level
Description
Probabilistic programming is sometimes referred to as modeling for hackers, and has been picking up steam with a flurry of releases including Stan, PyMC3, Edward, Pyro, and TensorFlow Probability. As these and similar systems have improved in performance and usability, they have unfortunately also become more complex and difficult to contribute to. This is related to a more general phenomenon of the two-language problem, in which performance-critical domains like scientific computing involve both a high-level language for users and a high-performance language for developers to implement algorithms. This establishes a wall between the two groups and has a harmful effect on performance, productivity, and pedagogy. In probabilistic programming, this effect is even stronger, and it’s increasingly common to see three languages: one for writing models, a second for data manipulation, model assessment, etc., and a third for implementation of inference algorithms.
Solving this three-language problem usually means accepting lower performance or a restricted class of available models and inference algorithms, but it doesn’t have to be this way. Chad Scherrer examines the need for Soss, which is a small and extensible Julia library that provides a way to represent and manipulate probabilistic models, some of Soss’s concepts at a high level, and some recent advancements and upcoming opportunities. The Julia language supports Python-level coding with C-level performance. In Julia, Julia’s own code is “first-class”—code that can be pulled apart and manipulated as a data structure. This leads to an approach for high-level representation of models with transformations and optimizations specific to a given model or inference family, which is the approach taken in Soss.
Prerequisite knowledge
- Familiarity with data science methods common in Python or R
What you'll learn
- Understand how probabilistic programming gives a simple and powerful way to work with probabilistic models, the Julia language has strong support for developing technical libraries and applications, and Soss greatly simplifies model manipulations and can help both beginners and experts to be more efficient
Chad Scherrer
Metis
Chad Scherrer is a senior data scientist with Metis, where he trains burgeoning data scientists. In addition to data science education, he has a passion for technology transfer, especially in the area of probabilistic programming. Previously, at the beginning of his work in probabilistic programming, he began leading the development of the Haskell-based language Passage, then joined Galois as technical lead for language evaluation in DARPA’s PPAML program, after which he moved to Seattle and joined Metis. His blog discusses a variety of topics related to data science, with a particular focus on Bayesian modeling.
Presented by
Elite Sponsors
Strategic Sponsors
Zettabyte Sponsors
Contributing Sponsors
Exabyte Sponsors
Content Sponsor
Impact Sponsors
Supporting Sponsor
Non Profit
Contact us
confreg@oreilly.com
For conference registration information and customer service
partners@oreilly.com
For more information on community discounts and trade opportunities with O’Reilly conferences
strataconf@oreilly.com
For information on exhibiting or sponsoring a conference
pr@oreilly.com
For media/analyst press inquires