Fork me on GitHub

Metaprob's sister language Gen is getting some attention on Hacker News. Peaked last night at #2. Metaprob is a probabilistic programming language embedded in Clojure.

❤️ 12
Daniel Slutsky14:06:25

Cool. @U050CT4HR could you explain in which sense they are sisters?


A couple ways: 1. They both come out of the MIT Probabilistic Computing Project 2. They both allow for programmable inference


That second one is one of the main things that differentiates Metaprob from most other PPLs (including Anglican) in my view.

Daniel Slutsky16:06:46

Thanks @U050CT4HR. That second one (and its uses) is indeed one of those things that I haven't grokked yet.


It's basically a performance concern, and in this domain performance ~= accuracy.


Custom inference algorithms can make a problem that's intractable using off-the-shelf inference algorithms tractable.

Daniel Slutsky18:06:08

Thanks. I wonder how this differs from Anglican's approach, where different inference algorithms are, in a sense, different 'virtual machines', each defining a specific way to run the inference code (each defining specific semantics to the inference code). Looking forward to learn more about Metaprob.


That's interesting I hadn't thought of the inference algorithms as virtual machines.


The other reason why I prefer Metaprob to Anglican is that Anglican probabilistic programs aren't really written in Clojure, they're written in the subset (extension?) of Clojure that Anglican is capable of CPSing.


You can't just throw any Clojure in there and expect it to work.


Playing fast and loose with terminology here.


Just trying to give you a gist.

Daniel Slutsky07:06:43

Thanks @U050CT4HR. Yes, this makes sense. The credit to the 'virtual machines' notion is this short paper of Tolpin et al. about Anglican: