stripe/rainier

Bayesian inference in Scala.

解决的问题

Rainier 提供了一个基于马尔可夫链蒙特卡洛(MCMC)的高性能 Scala API,用于贝叶斯推断。它允许用户构建具有连续参数的生成模型,从观测数据中推断后验分布,进而用于预测和决策。

工作原理

Rainier 使用静态的、类似 TensorFlow 的计算图,结合自动微分和快速的 CPU 执行。它完全用纯 Scala 实现,为数值计算生成优化的、非包装的、JIT 友好的 JVM 字节码。推断通过类似 Stan 和 PyMC3 的哈密顿蒙特卡洛(HMC)采样器的变体实现。

适用人群

在 JVM 生态系统(如使用 Spark 或 Hadoop 集群)中工作的开发人员和数据科学家,需要一个高性能的贝叶斯推断库,适用于数据可放入单台机器内存的模型。

主要亮点

  • 通过优化的 JVM 字节码实现高性能 CPU 执行。
  • 纯 Scala 实现,外部依赖极少,无 JNI 库。
  • 带自动微分的静态计算图。
  • 积极预计算数据以加速执行。
  • 可轻松部署到 Spark 或 Hadoop 集群。

相关

  • 项目
  • 项目
  • 项目
  • 项目