This is a guest post byChristopher Fonnesbeck of PyMC3.
PyMC, now in its third iteration as PyMC3, is a project whose goal is to provide a performant, flexible, and friendly Python interface to Bayesian inference. The project relies heavily on Theano, a deep learning framework, which has just announced that development will not be continuing.
Though most of us on the PyMC team did not expect Theano development to continue indefinitely, we (like others) were caught off-guard by the recent announcement that the project would discontinue a year after the 1.0 release, which occurred twodays ago. Much of the current success of the PyMC3 project can be attributed to the capabilities of Theano, which provides a very solid computational backbone for the modern Bayesian inference methods that PyMC3 offers to its users. Though it was designed as a framework for deep learning, Theanos flexibility allowed us to readily repurpose it as an engine for probabilistic programming, replacing thousands of lines of Fortran code used in previous versions of PyMC.
Over the next several months, the PyMC development teamand user community will be exploring replacement frameworks for supporting future versions of our software. While prevously there was only one choiceTheanofor a computational backend that provided the adequate performance, stability and integration for what PyMC3 was striving to deliver, today there is a suite of alternative platforms that could plausibly serve the same purpose. These include open source projects like TensorFlow, MXNet, PyTorch, among others. All of these frameworks are not only technologically capable, but are engineered by capable teams of developers and have active user communities. Our developers have been or will be having discussions with developers from all of the projects, in the hopes of understanding how each might be suited to having a library like PyMC built around it, and also how the developers see their platforms growing and changing into the future. Each appears to provide much promise for improving future versions of PyMC, as well as challenges inherent to integrating a new computational engine without sacrificing the balance of performance and ease of use that PyMC3 has been able to achieve using Theano.
It is important to remember that, though continued development of Theano by MILA has ceased, Theano itself is not going anywhere. It continues to be a benchmark for performance against which other frameworks are measured, and has proven to be an exceptional tool with which to develop probabilistic programming software. Its developers have been extremely responsive to our teams questions and issues from the beginning. So, while we must eventually move away from Theano, if no other team takes over development, there is no hurry to do so. This offers us the luxury of time, both for the careful selection of a new technology, and for the challenge of refactoring our code base to accomodate it.
If you would like to be involved in the decision, please join the discussion on discourse: https://discourse.pymc.io/c/pymc4We are looking forward to it!
Finally, we would like to offer our congratulations to MILA and the Theano team on its 1.0 release, and an enormous measure of thanks for their support in making our project possible. Theano is a pioneering project that helped to make much of the progress shown by newer frameworks possible, and importantly we believe, helped to steer state-of-the-art technologies in machine learning towards the open source model. Thanks again.
The PyMC Development Team
Help support sustainable open source projects: