Bean Machine: A Declarative Probabilistic Programming Language For Efficient Programmable Inference

被引:0
|
作者
Tehrani, Nazanin [1 ]
Arora, Nimar S. [1 ]
Li, Yucen Lily [1 ]
Shah, Kinjal Divesh [1 ]
Noursi, David [1 ]
Tingley, Michael [1 ]
Torabi, Narjes [1 ]
Masouleh, Sepehr [1 ]
Lippert, Eric [1 ]
Meijer, Erik [1 ]
机构
[1] Facebook Inc, Menlo Pk, CA 94025 USA
关键词
Probabilistic Programming; Programmable Inference; Declarative Structure;
D O I
暂无
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
A number of imperative Probabilistic Programming Languages (PPLs) have been recently proposed, but the imperative style choice makes it very hard to deduce the dependence structure between the latent variables, which can also change from iteration to iteration. We propose a new declarative style PPL, Bean Machine, and demonstrate that in this new language, the dynamic dependence structure is readily available. Although we are not the first to propose a declarative PPL or to observe the advantages of knowing the dependence structure, we take the idea further by showing other inference techniques that become feasible or easier in this style. We show that it is very easy for users to program inference by composition (combining different inference techniques for different parts of the model), customization (providing a custom hand-written inference method for specific variables), and blocking (specifying blocks of random variables that should be sampled together) in a declarative language. A number of empirical results are provided where we backup these claims modulo the runtime inefficiencies of unvectorized Python. As a fringe benefit, we note that it is very easy to translate statistical models written in mathematical notation into our language.
引用
收藏
页码:485 / 496
页数:12
相关论文
共 50 条
  • [31] Compiling Universal Probabilistic Programming Languages with Efficient Parallel Sequential Monte Carlo Inference
    Lunden, Daniel
    Ohman, Joey
    Kudlicka, Jan
    Senderov, Viktor
    Ronquist, Fredrik
    Broman, David
    PROGRAMMING LANGUAGES AND SYSTEMS, ESOP 2022, 2022, 13240 : 29 - 56
  • [32] Well-definedness and efficient inference for probabilistic logic programming under the distribution semantics
    Riguzzi, Fabrizio
    Swift, Terrance
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2013, 13 : 279 - 302
  • [33] EXTENDING DATABASE PROGRAMMING LANGUAGE WITH DECLARATIVE QUERYING FACILITIES
    SAVNIK, I
    MOHORIC, T
    JOSIFOVSKI, V
    MICROPROCESSING AND MICROPROGRAMMING, 1994, 40 (10-12): : 905 - 908
  • [34] A Declarative Agent Programming Language Based on Action Theories
    Drescher, Conrad
    Schiffel, Stephan
    Thielscher, Michael
    FRONTIERS OF COMBINING SYSTEMS, PROCEEDINGS, 2009, 5749 : 230 - 245
  • [35] Smartlog - A declarative language for distributed programming in smart grids
    Thi-Thanh-Quynh Nguyen
    Debusschere, Vincent
    Bobineau, Christophe
    Quang Huy Giap
    Hadjsaid, Nouredine
    COMPUTERS & ELECTRICAL ENGINEERING, 2019, 80
  • [36] Orgel: An parallel programming language with declarative communication streams
    Ohno, K
    Yamamoto, S
    Okano, T
    Nakashima, H
    HIGH PERFORMANCE COMPUTING, PROCEEDINGS, 2000, 1940 : 344 - 354
  • [37] Distributed programming in a multi-paradigm declarative language
    Hanus, M
    PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, PROCEEDINGS, 1999, 1702 : 188 - 205
  • [38] Bellman's GAP - A Declarative Language for Dynamic Programming
    Sauthoff, Georg
    Janssen, Stefan
    Giegerich, Robert
    PPDP 11 - PROCEEDINGS OF THE 2011 SYMPOSIUM ON PRINCIPLES AND PRACTICES OF DECLARATIVE PROGRAMMING, 2011, : 29 - 39
  • [40] Turing: a language for flexible probabilistic inference
    Ge, Hong
    Xu, Kai
    Ghahramani, Zoubin
    INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AND STATISTICS, VOL 84, 2018, 84