4 ms·
Bean Machine – A Declarative Probabilistic Programming Language
- muterad_murilax 6y agoIs it a Mean Bean Machine?
- Igelau 6y agoIt's lean, mean, green bean machine like you've never seen. Clean to a sheen she's a queen on the screen if you know what I mean. Hare Krishna tambourine.
- Tarq0n 6y agoI'd love to hear some things that are unique to this PPL compared to the somewhat crowded space of Pyro/Stan/Edward/PyMC3/Turing.jl/Tensorflow probability.
- rscho 6y agoI second that. What's special about this language?
- frakt0x90 6y agoThe paper for the language is here https://pgm2020.cs.aau.dk/wp-content/uploads/2020/09/tehrani20.pdf https://pgm2020.cs.aau.dk/wp-content/uploads/2020/09/tehrani... and the benefits over other PPLs are listed at a high level in the abstract.
- fritzo 6y agoI like the Bean Machine's declarative syntax because it makes it easy to implement interesting inference algorithms that treat different parts of a model independently. The syntax makes it easy to work around Python's lack of copyable coroutines, which e.g. has made it difficult to implement block Gibbs algorithms in Pyro. OTOH from a modeling perspective I find it easier to read monolithic straight-line models (as in STAN or Pyro) than to read declarative collections of functions (as in Bean Machine).
- amitport 6y agoBTW pypy has copyable coroutines. https://doc.pypy.org/en/latest/stackless.html https://doc.pypy.org/en/latest/stackless.html
- usgroup 6y agoCan you say more about what’s interesting here versus JAGS for example? JAGS is fully declarative, mature and useful. It has benefits (like being able to work out how best to sample automatically) but it also has huge amounts of expressiveness drawbacks . Stan inherits the BUGS/JAGS syntax but extends it and adopts an imperative language.
- marmaduke 6y agoIt seems the innovation here is that the dependency structure of the model is explicit which allows the algorithms to do interesting things like block updates, beneficial for correlated variables. They also have Newtonian Monte Carlo, an exotic, new technique. Oddly though, Stan is still faster in their own benchmarks, despite their statements. In other words, while Bean Machine has a lower wall time, Stan produces more effective samples per second than Bean Machine (and this, not wall time alone, is the important metric).