Demonstration
A Visual and Interactive IDE for Probabilistic Programming
Sameer Singh · Luke Hewitt · Tim Rocktäschel · Sebastian Riedel
Level 2, room 230B
Probabilistic programming languages (PPLs) such as Church have recently gained interest due to their expressiveness and ease-of-use. These languages support models that can be arbitrary composed and abstracted, and close the gap between traditional programming and probabilistic modeling. However debugging machine learning is still quite hard; it is difficult to identify whether a wrong prediction is due to inaccurate modeling, bug in the data representation, or the wrong choice of the approximate inference algorithm. Corresponding to the IDEs for traditional programming languages, there is a significant need for tools for probabilistic programming that enable the user to quickly create, debug, and iterate on complex models and inference.
In this demonstration, we present a first step towards integrated developing, debugging and visualization for PPLs. The proposed IDE is based on the read-eval-print loop (REPL) to allow quick iterations on writing and debugging, and consists of the following elements: (1) Editor (read): Users define the model and inference in a declarative, math-like language (with operators such as argmax) using a syntax highlighted code editor. (2) Build Automation (eval): Our underlying compilation engine transforms this declarative definition into factor graphs, and replaces the operators with efficient and/or approximate versions (such as Gibbs sampling, variational inference, gradient-based approaches, etc.) to generate low-level inference or learning code. (3) Debugging/Visualization (print): Our tool presents the underlying factor graph as an interactive UI element that supports clicking, drag and drop, hover, etc. to explore the structure and the potentials of the model. We visualize the results of inference in a graphical manner that adapts to the type of the result (bar charts for simple distributions, shaded maps for matrix-like objects, circles/arrows for NLP data types, etc.). For further fine-grained debugging, we can also surface intermediate results from inference, for example, visualizing the messages in belief propagation for each edge in the factor graph.
The combination of concise definition of the model and the inference, underlying compilation to factor graphs, and efficient implementation of operators using approximate inference enables users to write a variety of models, explore a number of different inference algorithms, and tackle tasks from a range of domains using an easy-to-use, platform independent (browser-based) interface.
Live content is unavailable. Log in and register to view live content