Meta发布称为Bean Machine的几率程序开发系统,该系统能够用来表达和了解,日常所使用机器学习模型中的不确定性。Bean Machine供用户开发特定领域的几率模型,并使用自动、不确定性学习算法,来学习模型所未观察到的属性。
Bean Machine是一种通用的几率程序开发语言,能够让用户使用声明式语法,对以Python编写的统计模型进行推理,官方提到,Bean Machine能够实现快速准确的贝氏分析,让开发和部署生成式几率模型变得主动且高效率。
Bean Machine的生成式建模,不仅提供有用的预测,就像是传统机器学习技术所提供的结果一样,更特别的是,Bean Machine还能用几率分布的形式,估计问题的不确定,而估计不确定性有助于确保预测的可靠性和强健性。
与其他机器学习方法相比,使用Bean Machine主要有三大好处,不确定性估计、表现性和可解释性。不确定性估计让分析师能够更全面掌握预测系统的行为,因为预测是通过几率分布形式,来可靠地测量不确定性,分析师不仅可以了解系统的预测,也可以了解其他预测的相对可能性。
而且Bean Machine能够更好地表达结果的意义,直接在原始程序代码中编码模型,这将让用户能够将模型的结构,以及问题的结果相对应。最后,因为模型与领域相对应,所以可以查询模型中的中间学习属性,这代表用户不仅可以使用模型“黑盒子”,还可以对特定预测的结果做出解释,对于模型开发过程有很大的帮助。
由于Bean Machine构建在PyTorch之上,具有声明式建模语法,所以能高效率又主动地构建几率模型时,其通过实例最先进的推理算法,允许用户对不同的问题和子问题,选择和自定义推理方法,进而在自动化和灵活性间取得平衡。
Bean Machine所提供的声明式语法,对随机变量提供顶级的支持,因此用户能够非常主动地在程序中推论模型,就像在纸上计算一样,模型简单地由一组以特定方式相互作用的随机变量所定义,在Bean Machine中,随机变量被实现成经装饰的Python函数,其提供了指向该随机变量的唯一举标,使用函数就可以轻松地确定随机参数的定义。
虽然Bean Machine对张量模型提供良好地推理性能,但是许多几率模型因为结构问题,对大型张量操作来说难以编写,为了解决这个问题,Meta正在开发Bean Machine Graph(BMG),结合特别的编译器和Runtime,使得未张量化的模型也能执行推理。BMG推理使用自定义编译器来解释Bean Machine模型,并将其转换成没有Python相依项目的专门实例,这些都会是自动化运行,但目前支持功能集有限,官方正快速解决该问题,来支持常见的模块问题。