一句话:提出 Multi PPL,使精确离散推断与重要性采样两种概率编程语言可靠互操作,并证明推断算法可靠性。
概率编程语言往往针对特定类型的概率程序而设计,导致程序员必须预先选择单一语言,无法对异构程序混合使用不同推断方法。为建立可靠互操作基础,本文提出 Multi PPL:一种概率多语言,使基于高性能精确离散推断的语言与基于近似重要性采样的语言能够相互调用与组合。作者给出 Multi PPL 的语法与语义,证明其推断算法的可靠性,并通过实证表明,该语言能对复杂异构概率程序执行推断,同时灵活利用两种语言各自的优势与局限。
There are many different probabilistic programming languages that are specialized to specific kinds of probabilistic programs. From a usability and scalability perspective, this is undesirable: today, probabilistic programmers are forced up-front to decide which language they want to use and cannot mix-and-match different languages for handling heterogeneous programs. To rectify this, we seek a foundation for sound interoperability for probabilistic programming languages: just as today’s Python programmers can resort to low-level C programming for performance, we argue that probabilistic programmers should be able to freely mix different languages for meeting the demands of heterogeneous probabilistic programming environments. As a first step towards this goal, we introduce Multi PPL, a probabilistic multi-language that enables programmers to interoperate between two different probabilistic programming languages: one that leverages a high-performance exact discrete inference strategy, and one that uses approximate importance sampling. We give a syntax and semantics for Multi PPL, prove soundness of its inference algorithm, and provide empirical evidence that it enables programmers to perform inference on complex heterogeneous probabilistic programs and flexibly exploits the strengths and weaknesses of two languages simultaneously.
@article{paperbot3191,
title = {Multi-Language Probabilistic Programming},
author = {Sam Stites and John M. Li and Steven Holtzen},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {OOPSLA1},
year = {2025},
doi = {10.1145/3720482}
}