Gen is a new probabilistic programming platform that aims to make it possible to do real-time inference in generative models by combining of model-based search, data-driven neural network inference, and state-of-the-art Monte Carlo techniques. Gen is thus a multi-paradigm platform for probabilistic artificial intelligence research that aims to be efficient and expressive enough for general-purpose use.
Gen integrates two underlying technical innovations, each of which addresses a limitation of earlier probabilistic programming platforms:
Gen provides an extensible meta-programming framework for defining modeling components and inference strategies that can then be freely combined by user-specified Gen programs. Gen can thus make it easier to express complex combinations of neural, symbolic, and statistical models, and perform inference using hybrids of neural, Monte Carlo, gradient search, and combinatorial algorithms.
Gen performs static analysis to generate fast code for manipulating runtime state, using a static computation graph. As a result, on a first benchmark (to be presented at MAPL 2018), Gen is as fast as Stan and Edward/TensorFlow, and roughly ~7500x faster than Venture.