Description
The code for atomistic models used to live in https://github.com/metatensor/metatensor, as part of the metatensor-torch
package. We would like to separate it into a separate package (working name metatomic
) to make the separation between the data storage and atomistic interface clearer.
This will also be the opportunity to make the model interface a bit more abstract and not reliant on TorchScript. TorchScript models will still be supported, but will only be one option among others (including e.g. pure python models or pure C++ models).
To minimize churn and user pain, here is a plan for the transition:
Phase 1: bring the new git repository up to speed
- integrate with codecov for code coverage
- make a first release of the
metatomic
andmetatomic-torch
Python packages - move issues from the metatensor repository
I'm not sure about the following: doing it early might help smooth the transition down the line, but could have unforseen issues with TorchScript
- rename classes (
MetatensorAtomisticModel
=>MetatomicModel
;NeighborListOptions
=>PairListOptions
; …). We will want to do this at some point anyway, and if we can re-export them with a different name inmetatensor.torch.atomistic
that should make the transition smoother (models exported withmetatensor.torch.atomistic
will work withmetatomic
).
Phase 2: Update engine to use metatomic
Before we can have model rely on the metatomic code, we will need to update all the simulation engine to use the new metatomic library
- LAMMPS: https://github.com/metatensor/lammps/tree/metatomic
- PLUMED: Port code from metatensor to metatomic plumed/plumed2#1261
- i-PI: Add an interface to metatomic ML models i-pi/i-pi#448
- chemiscope: Implement a
metatomic_featurizer
to replace the metatensor one lab-cosmo/chemiscope#414
This update would still use the TorchScript version of the models directly, abstracting away from this will be done later down the line.
Phase 3: re-export metatomic.torch
from metatensor.torch.atomistic
- remove the code from
metatensor-torch
, and add a dependency onmetatomic-torch
there. Thenmetatensor.torch.atomistic
can re-export the classes frommetatomic.torch
; giving source compatibility to most of the existing code. This re-export should also have a deprecation warning pointing people to use metatomic instead: Remove metatensor.torch.atomistic metatensor#901
Not part of the transition, but required anyway
- write developer documentation