Over the last year, I’ve been thinking through a technical roadmap for DeepChem. Here are some of the themes that are emerging:
Complete PyTorch Port: PyTorch has joined the linux foundation (https://www.linuxfoundation.org/blog/blog/welcoming-pytorch-to-the-linux-foundation) which makes me more confident that PyTorch will have long term stable maintenance. Google’s TensorFlow and Jax have done very innovative work, but the absence of a public commitment to external stakeholders doesn’t give me confidence that these systems will be maintained long term. For this reason, I decided that we should make PyTorch our main backend. We are partway through a transition to PyTorch from TensorFlow/Jax. Here are the two major issues tracking remaining work
a) https://github.com/deepchem/deepchem/issues/2930 : Port existing Keras layers to PyTorch. We are about halfway through work for layer porting, but some heavily used layers remain to port.
b) https://github.com/deepchem/deepchem/issues/2863 : Port remaining TensorFlow models to PyTorch. There still remain about 15 models to port so there is still some major effort required.
Expanding DeepChem’s model and layer zoo: The field of scientific machine learning and machine learning for molecules has exploded over the last few years. There are a large number of models that people have requested to be added to DeepChem that are now on our wishlist (https://github.com/deepchem/deepchem/issues/2680). Implementing the wishlist would make DeepChem a much more useful framework for scientific machine learning.
Remove unnecessary dependencies: Extra dependencies lower the stability of deepchem. We should remove all dependencies that aren’t actively maintained by open source communities. This list identifies some dependencies that should be removed https://github.com/deepchem/deepchem/issues/3078
Convert to 4-spacing (Proposal for Updating DeepChem Code Style to Follow 4-space Indents): Contributing to DeepChem is harder for newcomers due to DeepChem’s non-standard 2-spacing. We should bite the bullet and convert to standard 4-spacing and PEP8 compliance.
Completing all four of these major goals would take us to a reasonable target for a DeepChem 3.0 release I believe.