Gen is a new, massively parallel probabilistic programming platform designed for solving real-world modeling and inference problems using state-of-the-art Monte Carlo and deep learning techniques. Gen is being developed in collaboration with Google and Intel. Gen has been used to infer the probable goals of people and vehicles from observations of their motion, and to infer a multivariate probability model for the contents of a sparsely observed database.
Gen integrates three underlying technical innovations, each of which addresses a limitation of earlier probabilistic programming platforms. First, Gen provides an extensible meta-programming framework for combining inference strategies, enabling users to build Monte Carlo algorithms that use variational and/or neural proposals and complex MCMC rejuvenation kernels. Second, Gen implements an extension to the Metropolis-Hastings algorithm that allows users to use “likelihood-free’’ proposal distributions; this enables users to write complex proposals that are themselves based on Gen programs. Third, Gen implements a new algorithm for measuring the accuracy of approximate inference algorithms, called AIDE, that enables users to objectively compare the time-accuracy tradeoffs of a broad class of sequential Monte Carlo and variational strategies.