probcomp/Gen.jl

A general-purpose probabilistic programming system with programmable inference

What it solves

Gen.jl は、確率論的プログラミングのための汎用的なシステムを提供し、ユーザーが生成モデルを定義し、複雑なベイズ推論を実行できるようにします。推論アルゴリズムの実装を「プログラム可能」にすることで、高度な推論アルゴリズムの実装プロセスを簡化化します。つまり、ユーザーは、新しいモデルごとに数学的な導出を数学的に手動で行う必要なしに、推論プロセスの基礎となる数学とロジックをカスタマイズ- できます。

How it works

Julia 言語に組み込まれた Gen.jl は、ユーザーが表現力豊かなモデリング言語を使用して確率論的プログラムを記述できることを可能にします。SMC (Sequential Monte Carlo)、変分推論 (variational inference)、MCMC (Markov Chain Monte Carlo) を含む、幅広いベイズ推論手法を包括的にサポートします。また、パラメータの最適化や wake-sleep learning を通じて生成モデルの勾配配分ベースの学習を可能にし、さらに involutive MCMC や SMCP³ を介してベイズ構造学習を可能にします。

Who it's for

このツールは、確率モデル、ベイズ統計、生成 AI を研究する研究者や開発者、特に推論アルゴリズムをカスタマイズしたり、複雑な生成モデルを実装したりする必要がある人々を対象としています。

Highlights

  • Programmable Inference: プログラム可能な推論:カスタムの proposals、variational families、MCMC kernels を記述する能力。
  • Multi-paradigm Support: 多範疇サポート:SMC、変分推論 (variational inference)、MCMC を含みます。
  • Gradient-based Training: 勾配ベースの学習:生成モデルのパラメータ最適化および wake-sleep learning をサポートします。
  • Incremental Computation: 増分計算:推論を高速化するための特化されたモデリング構成要素。
  • Extensible API: 拡張可能な API:カスタムの生成モデル、分布、勾配を定義するための、明確に定義された API。