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.
Probabilistic programming is sometimes referred to as “modeling for hackers”, and has recently 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 domain like scientific computing involve both a high-level language for users and a high-performance language for developers to implement algorithms. This establishes a kind of 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 either lower performance or a restricted class of available models and inference algorithms.
It doesn’t have to be this way. The Julia language supports Python-level coding with C-level performance. In Julia, Julia’s own code is “first-class”: code 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.
This is the approach taken in Soss, a small and extensible Julia library that provides a way to represent and manipulate probabilistic models. In this talk, we’ll discuss the need and for Soss, some of its concepts at a high level, and finally some recent advancements and upcoming opportunities.
Prerequisite knowledgeData science methods common in Python or R
What you'll learn
Dr. 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.
His work in probabilistic programming goes back to 2010, when he began leading development of the Haskell-based language Passage. Dr. Scherrer then joined Galois to serve as technical lead for language evaluation in DARPA’s PPAML program, after which he moved to Seattle and joined Metis.
Dr. Scherrer’s blog discusses a variety of topics related to data science, with a particular focus on Bayesian modeling.
Leave a Comment or Question
Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?
Join the conversation here (requires login)
For conference registration information and customer service
For more information on community discounts and trade opportunities with O’Reilly conferences
For information on exhibiting or sponsoring a conference
View a complete list of Strata Data Conference contacts