Skip to main content
QUICK REVIEW

[論文レビュー] Swift: compiled inference for probabilistic programming languages

Yi Wu, Lei Li|arXiv (Cornell University)|Jul 9, 2016
Bayesian Modeling and Causal Inference参考文献 28被引用数 7
ひとこと要約

Swiftは、BLOG確率的プログラミング言語のコンパイラであり、静的最適化を通じて実行時インタプリタのオーバーヘッドを排除し、動的依存関係と可変サイズの可能な世界を効率的に管理し、多様な推論ワークロードにおいて、既存のPPL推論エンジンと比較して12倍から326倍の高速化を達成している。

ABSTRACT

A probabilistic program defines a probability measure over its semantic structures. One common goal of probabilistic programming languages (PPLs) is to compute posterior probabilities for arbitrary models and queries, given observed evidence, using a generic inference engine. Most PPL inference engines--even the compiled ones--incur significant runtime interpretation overhead, especially for contingent and open-universe models. This paper describes Swift, a compiler for the BLOG PPL. Swift-generated code incorporates optimizations that eliminate interpretation overhead, maintain dynamic dependencies efficiently, and handle memory management for possible worlds of varying sizes. Experiments comparing Swift with other PPL engines on a variety of inference problems demonstrate speedups ranging from 12x to 326x.

研究の動機と目的

  • 既存の確率的プログラミング言語(PPL)推論エンジンに内在する顕著な実行時インタプリタのオーバーヘッドを低減すること、特に状況依存的およびオープン・ユニバース・モデルにおいて。
  • 動的依存関係と可能な世界ごとのメモリ割り当てを静的に分析・最適化することで、確率的プログラムの効率的なコンパイルを可能にすること。
  • 実行時インタプリタのパフォーマンスコストを回避し、静的コンパイルを通じて正しさと表現力を維持しながら、高いパフォーマンスを達成すること。
  • コンパイルされた推論が、多様な確率的推論問題の幅広い範囲で、既存の汎用推論エンジンを上回ることを実証すること。

提案手法

  • 確率的構文の実行時インタプリタの必要性を排除するため、BLOGプログラムを効率的な低レベルコードにコンパイルする。
  • 静的解析を適用して、ランダム変数と証拠間の動的依存関係をコンパイル時に特定・符号化する。
  • 最適化された割り当て戦略を用いて、サイズが異なる可能な世界のメモリを管理するコードを生成する。
  • 元の確率的プログラムの意味を保持しつつ、高性能実行を可能にするコンパイルパイプラインを導入する。
  • 最適化を導くと同時に、コンパイル出力の正しさを保証するため、型推論と制御フロー解析の組み合わせを用いる。
  • 可能な世界の生成と証拠の伝搬を追跡する、独自の中間表現を採用し、効率的な推論を実現する。

実験結果

リサーチクエスチョン

  • RQ1静的コンパイルは、確率的プログラミング言語における実行時インタプリタのオーバーヘッドを排除できるか?
  • RQ2コンパイラは、状況依存的およびオープン・ユニバース・モデルにおける動的依存関係と可変サイズの可能な世界をどれほど効果的に管理できるか?
  • RQ3BLOGのようなPPLをコンパイルすることで、既存の推論エンジンと比較してどの程度のパフォーマンス向上が達成できるか?
  • RQ4このコンパイル手法は、複雑さが異なる多様な確率的推論問題に、効果的にスケーリングできるか?

主な発見

  • Swiftは、さまざまな推論問題において、既存のPPL推論エンジンと比較して12倍から326倍の高速化を達成している。
  • インタプリタのオーバーヘッドの排除により、特に複雑な動的依存関係を有するモデルで顕著なパフォーマンス向上が得られている。
  • 静的コンパイルと最適化された割り当て戦略により、サイズが異なる可能な世界のメモリ管理が効率的に行われている。
  • ベンチマークワークロードにおいて、解釈型およびコンパイル型の両方の推論エンジンを大きく上回る性能を維持しながら、正しさと表現力を保っている。
  • 性能向上は特に、インタプリタのオーバーヘッドが通常最大となる状況依存的およびオープン・ユニバース・モデルで顕著である。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。