-
Notifications
You must be signed in to change notification settings - Fork 5
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
metatomicandmetatomic-torchPython 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.atomisticthat should make the transition smoother (models exported withmetatensor.torch.atomisticwill 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_featurizerto 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-torchthere. Thenmetatensor.torch.atomisticcan 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