About Gen.Jl
Gen is an open source stack for generative modeling and probabilistic inference. It provides a modeling language for writing generative models, inference models, variational families and proposal distributions in ordinary code, together with an inference library of building blocks for assembling algorithms tailored to a particular model.
The aim is to automate the mathematics and the low level implementation that probabilistic inference usually demands, while leaving algorithm design with the user. Gen supports hybrid algorithms that combine neural networks, variational inference, sequential Monte Carlo samplers and Markov chain Monte Carlo, so a fast but brittle neural approach can be paired with a slower model based one that stays accurate on data outside the training distribution. Models and inference programs can have dynamic computation graphs, and support for custom reversible jump and involutive MCMC makes inference practical in models whose structure is itself stochastic. Parts of a model can be migrated to specialized modeling languages that compile to faster code, or hand written where performance demands it. The API reaches well past automatic differentiation to the other operations model based inference requires, so new algorithms can be implemented without extending a compiler.
Gen is free and open source. There is no pricing page, no plans and no commercial tier. The Julia implementation is installed through the Julia package manager by adding the Gen package from the package mode of the REPL.
Gen was created at the MIT Probabilistic Computing Project and is maintained by a core research and engineering team alongside open source contributors. The Julia implementation is the mature one, and the maintainers state that work to port the architecture to other languages is in progress.