# Soss - Examples/tutorials

**URL:** <https://discourse.julialang.org/t/soss-examples-tutorials/45461>\
**Category:** General Usage\
**Tags:** tutorials\
**Created:** [August 24, 2020, 5:18pm UTC](https://discourse.julialang.org/t/soss-examples-tutorials/45461 "2020-08-24T17:18:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![franco](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/franco/32/16905_2.png) [@franco](https://discourse.julialang.org/u/franco)\
**Post date:** [August 24, 2020, 5:18pm UTC](https://discourse.julialang.org/t/soss-examples-tutorials/45461/1 "2020-08-24T17:18:40Z")

</div>

I am moving a graduate course I teach on statistics from frequentist to Bayesian and from Python to Julia. I mostly work with Python in my day job and have only implemented some basic Bayesian models with PyMC3.

I was looking into Turing since it’s the most similar to PyMC3 but Soss features caught my eye, mainly that you can construct a model without reference to the sampling algorithm or target variables which you perform inference with/on in that model. This separation of model, data, and algorithm seem like a very good idea pedagogically.

There doesn’t seem to be much documentation or examples of Soss. Am I missing something? If the full extent of the documentation is [this](https://cscherrer.github.io/Soss.jl/stable/) then maybe I could help out by building some examples and contributing to documentation.

- I’m pretty new to both Bayesian stats and Julia so how viable would this be?
- What are the main channels of communication to contribute to Soss?

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [August 24, 2020, 5:22pm UTC](https://discourse.julialang.org/t/soss-examples-tutorials/45461/2 "2020-08-24T17:22:10Z")

</div>

@cscherrer will be able to advise!

---

<div class="post-metadata">

**Author:** ![cscherrer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cscherrer/32/7631_2.png) [@cscherrer](https://discourse.julialang.org/u/cscherrer)\
**Post date:** [August 24, 2020, 5:46pm UTC](https://discourse.julialang.org/t/soss-examples-tutorials/45461/3 "2020-08-24T17:46:50Z")

</div>

Thanks for the heads-up @nilshg!

Hi @franco, it’s great to hear you’re interested in Soss! Yes, the biggest challenge we’ve had is that there was only a brief period when I was able to work on Soss full-time. There have been lots of other contributors, but of course they all have other things going on as well. I’d really appreciate any docs you can add, and I’d be happy to help with any snags you hit along the way.

Some general things about Soss:

- The “models as functions” approach is very powerful
- Code generation has a huge potential potential for speed, but we’re not there yet. Currently we’re mostly focusing on expressiveness and making it easy to use.
- Generally I think it’s a great choice pedagogically, but
- Error messages are currently not great, and sometimes just awful (also a codegen thing) OTOH
- It’s always easy to ask Soss for the generated code/ Running this “by hand” usually helps expose any problem
- So far we’ve focused on DynamicHMC (because it fits Stan-like models and was ready to go at the time)
- We need to connect more inference methods. In principle this shouldn’t be too hard
- Our current push is on [SossMLJ](https://github.com/cscherrer/SossMLJ.jl), which will let us easily use a Soss model in the MLJ framework. @dilumaluthge is helping a lot with this and knows the guts of MLJ better than I do. I feel like we’re getting close to having this working well.

As far as communication channels, there’s

- The [Probabilistic Programming topic on Discourse](https://discourse.julialang.org/c/domain/probprog/)
- The Soss Github issues
- The soss.jl stream on [Zulip](https://julialang.zulipchat.com)
- The Julia slack, though I prefer to avoid that for any discussions worth keeping for later reference
