SIMPL:推理算法自动特化的DSL
SIMPL: A DSL for Automatic Specialization of Inference Algorithms
摘要:
概率程序设计语言(PPL)中的推理算法可以被认为是解释器,因为推理算法遍历给定证据的模型来回答查询。与解释器一样,一旦模型、证据和查询已知,我们就可以通过编译它们来提高推理算法的效率。我们提出SIMPL,推理算法的领域特定的语言,它使用这个想法,以自动专门化的注释推理算法。由于特殊化的方法,与传统的编译器不同,SIMPL可以很容易地添加新的推理算法,并且仍然可以使用特定于域的信息进行优化。我们评估SIMPL,并表明,部分评估提供了2- 6倍的加速,缓存提供了额外的1- 1.5倍的加速,并生成C代码产生额外的13- 20倍的加速,为30- 150倍的整体加速几个推理算法和模型。
英文摘要:
Inference algorithms in probabilistic programming languages (PPLs) can be thought of as interpreters, since an inference algorithm traverses a model given evidence to answer a query. As with interpreters, we can improve the efficiency of inference algorithms by compiling them once the model, evidence and query are known. We present SIMPL, a domain specific language for inference algorithms, which uses this idea in order to automatically specialize annotated inference algorithms. Due to the approach of specialization, unlike a traditional compiler, with SIMPL new inference algorithms can be added easily, and still be optimized using domain-specific information. We evaluate SIMPL and show that partial evaluation gives a 2-6x speedup, caching provides an additional 1-1.5x speedup, and generating C code yields an additional 13-20x speedup, for an overall speedup of 30-150x for several inference algorithms and models.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。