PyMC 将 Aesara 分叉为 PyTensor#

PyMC 团队在此宣布,我们已经分叉了 Aesara 项目。

这个新项目名为 PyTensor。PyTensor 将支持诸如带标签数组等新功能,并加速开发,精简 PyMC 代码库和用户体验。PyTensor 是一个以社区为中心的项目,欢迎大家贡献。

自从 Aesara 创建以来,PyMC 和 Aesara 项目就紧密地交织在一起。Aesara 的内部机制对 PyMC 至关重要。然而,在此期间,PyMC 和 Aesara 的治理理念和技术目标出现了分歧。PyMC 自 2016 年以来一直是 NumFOCUS 赞助的项目。PyMC 遵循社区模式,在制定关键决策和向前发展时达成共识。Aesara 遵循的模式是由一小群核心开发人员推动大部分开发和制定关键决策,而培养外部贡献以改进核心基础设施或设计决策并非优先事项(请参阅 Aesara 的贡献指南 以及 “火星火箭”原型)。

虽然不同的开发模式可能适用于不同的开源软件项目,但事实证明,Aesara 遵循的模式与 PyMC 开发团队的协作流程规范以及我们希望影响 Aesara 关键设计决策的愿望不相容。我们认为,贡献和影响图形引擎的能力对于我们的创新能力以及使 PyMC 成为最佳版本至关重要。

因此,经过我们开发人员之间以及项目之间的仔细考虑和讨论,我们决定分叉 Aesara 项目对于 PyMC、其社区和其开发人员来说是最佳选择。

这对 PyMC 意味着什么?#

目前,我们仍然依赖 Aesara。由于我们正在努力发布 PyMC 5.0 版本,该版本将依赖 PyTensor 而不是 Aesara,因此将安装新的依赖项,但包管理器将无缝处理此问题。如果您直接使用 Aesara,则需要调整一些导入,但代码将保持不变,因为库目前在代码方面几乎相同。

长期来看,影响将是积极的。我们计划进行许多令人兴奋的更改,这些更改将直接改善 PyMC 的用户和开发人员体验。

一个例子是类似 Xarray 的维度支持:Xarray 为数组添加了许多有用的功能。最值得注意的是,命名维度和坐标。这使得 PyMC 中的 coordsdims 可以为您的数组命名。目前,Aesara 不支持此功能,也没有计划这样做。但是,拥有带标签的张量也有很多好处。

此外,还有一些优化主要针对 PyMC 经常执行的计算,因此我们预计这些新增功能将带来巨大的速度提升。

社区#

PyMC 项目是由社区主导的,具有治理结构、行为准则和其他机制,以确保每位参与者都有良好的体验。我们坚信,一个热情和包容的环境对于任何开源项目的长期生存至关重要。

您可以期望我们将相同的标准应用于 PyTensor,使其成为一个人们乐于贡献的项目。

结论#

与往常一样,我们感谢用户和贡献者组成的杰出社区。我们仍然对该项目多年来在科学、商业和个人学习方面产生的影响感到荣幸。我们要特别感谢 Aesara 开发团队为构建此库并与我们合作所做的所有不懈努力。

我们对 PyMC 及其生态系统的未来感到非常兴奋。

与 PyMC 联系#

通过以下方式与 PyMC 联系