
Gen: General-purpose probabilistic programming model with programmable inference - Vaslo
https://dl.acm.org/citation.cfm?id=3314221.3314642
======
dang
[https://news.ycombinator.com/item?id=20301352](https://news.ycombinator.com/item?id=20301352)

[https://news.ycombinator.com/item?id=20302158](https://news.ycombinator.com/item?id=20302158)

------
ajb
OT (kind of): Do any of these recent Probabalistic Languages support utility
maximisation? The only one I've found so far is IBAL
([http://hopl.info/showlanguage.prx?exp=7766&language=IBAL](http://hopl.info/showlanguage.prx?exp=7766&language=IBAL))
which seems to have died.

------
byt143
This really showcases Julia's power. This is a DSL built on top of Julia,
written in pure Julia. So, a Julia package ;)
[https://github.com/probcomp/Gen](https://github.com/probcomp/Gen)

------
Vaslo
Would this language be comparable to a package like JAGS?

~~~
ChrisRackauckas
JAGS defined the optimizers you're allowed to use for you. Its MCMC algorithm
is what you get. For simple problems, that works, but in many complex cases
you might want have to tweak things to make them work. For example, you may
want to make it explore the space more easily at first, and then fix to a few
discrete variables to find the max of some variables, then jiggle all a little
bit in that area. The authors of Gen were really keen about this ability to
tweak when I talked to them, and it's a core capability of Gen. They showed
cases which wouldn't converge in other systems because they were lacking this
ability to take user input. This is probably the biggest change from previous
iterations like JAGS, Stan, PyMC3, Turing.jl, etc.

And then the dynamic compiler mode uses AD to work with Julia packages, so you
can easily set it up to do Bayesian inference on neural (Flux.jl) partial
differential equations with high order adaptive implicit integrators with
DifferentialEquations.jl, which is why I am starting to use this library :).
At the same time, there is also a static compiled sublanguage of Gen which is
extremely fast (but cannot use arbitrary Julia packages of course).

