Abstract: Advanced probabilistic programming languages (PPLs) using hybrid particle filtering combine symbolic exact
inference and Monte Carlo methods to improve inference performance. These systems use heuristics to
partition random variables within the program into variables that are encoded symbolically and variables
that are encoded with sampled values, and the heuristics are not necessarily aligned with the developer’s
performance evaluation metrics. In this work, we present inference plans, a programming interface that enables
developers to control the partitioning of random variables during hybrid particle filtering. We further present
Siren, a new PPL that enables developers to use annotations to specify inference plans the inference system
must implement. To assist developers with statically reasoning about whether an inference plan can be
implemented, we present an abstract-interpretation-based static analysis for Siren for determining inference
plan satisfiability. We prove the analysis is sound with respect to Siren’s semantics. Our evaluation applies
inference plans to three different hybrid particle filtering algorithms on a suite of benchmarks. It shows that
the control provided by inference plans enables speed ups of 1.76x on average and up to 206x to reach a
target accuracy, compared to the inference plans implemented by default heuristics; the results also show that
inference plans improve accuracy by 1.83x on average and up to 595x with less or equal runtime, compared
to the default inference plans. We further show that our static analysis is precise in practice, identifying all
satisfiable inference plans in 27 out of the 33 benchmark-algorithm evaluation settings.
Loading