
BlackJAX 是一个适用于 JAX 的采样器库,可在 CPU 和 GPU 上运行。
它不是一个概率编程库。但是,只要概率编程库能提供与 JAX 兼容的(可能未归一化的)对数概率密度函数,BlackJAX 就能很好地与之集成。
BlackJAX 适合以下人群:
你可以使用 pip 安装 BlackJAX:
pip install blackjax
或通过 conda-forge 安装:
conda install -c conda-forge blackjax
BlackJAX 使用纯 Python 编写,但依赖于 JAX 提供的 XLA。默认情况下,随 BlackJAX 一起安装的 JAX 版本只能在 CPU 上运行代码。如果你想在 GPU/TPU 上使用 BlackJAX,我们建议你按照这些说明安装带有相关硬件加速支持的 JAX。
让我们看一个简单的自包含示例,使用 NUTS 进行采样:
import jax import jax.numpy as jnp import jax.scipy.stats as stats import numpy as np import blackjax observed = np.random.normal(10, 20, size=1_000) def logdensity_fn(x): logpdf = stats.norm.logpdf(observed, x["loc"], x["scale"]) return jnp.sum(logpdf) # 构建核函数 step_size = 1e-3 inverse_mass_matrix = jnp.array([1., 1.]) nuts = blackjax.nuts(logdensity_fn, step_size, inverse_mass_matrix) # 初始化状态 initial_position = {"loc": 1., "scale": 2.} state = nuts.init(initial_position) # 迭代 rng_key = jax.random.key(0) step = jax.jit(nuts.step) for i in range(100): nuts_key = jax.random.fold_in(rng_key, i) state, _ = step(nuts_key, state)
查看文档以获取更多关于如何使用该库的示例:如何为一个或多个链编写推断循环,如何使用 Stan 预热等。
BlackJAX 弥合了"一行代码"框架和模块化、可定制库之间的差距。
用户可以导入该库,并通过几行代码与稳健、经过良好测试和高性能的采样器进行交互。这些采样器面向概率编程语言开发者,或那些有对数概率密度函数并且只需要一个可用采样器的人。
但 BlackJAX 的真正优势在于其内部结构以及如何利用它们快速实验现有或新的采样方案。这个较低层次暴露了推断算法的构建块:积分器、提议分布、动量生成器等,并使 它们易于组合以构建新算法。它为采样算法研究提供了加速的机会,提供了稳健、高性能和可重用的代码。
采样算法经常集成到概率编程语言中,与框架的其他部分耦合,使得那些不需要建模语言来构建对数概率密度函数的人难以使用。它们的实现大多是单一的,不可能重用算法的部分来构建自定义核函数。BlackJAX 解决了这两个问题。
BlackJAX 允许构建任意复杂的算法,因为它建立在一个非常通用的模式之上。任何接受状态并返回状态的东西都是一个转换核函数,实现如下:
new_state, info = kernel(rng_key, state)
核函数是无状态的函数,都遵循相同的 API;状态和与转换相关的信息是分开返回的。因此,它们可以轻松组合和交换。我们通过闭包而不是传递参数来专门化这些核函数。
请遵循我们的简短指南。
要引用此存储库:
@misc{cabezas2024blackjax,
title={BlackJAX: Composable {B}ayesian inference in {JAX}},
author={Alberto Cabezas and Adrien Corenflos and Junpeng Lao and Rémi Louf},
year={2024},
eprint={2402.10797},
archivePrefix={arXiv},
primaryClass={cs.MS}
}
在上述 bibtex 条目中,名字按字母顺序排列,版本号应为 main 分支上的最后一个标签。
NUTS 实现的一些细节很大程度上受到了 Numpyro 的启发。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频


实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。


选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


最强AI数据分析助手
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。


像人一样思考的AI智能体
imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号