Machine-Learning Forcefields

Cambridge Gabor Csanyi

MACE

QUIP

Miscellaneous

Harvard Boris Kozinsky

FLARE

NequIP

Allegro

M3GNet

DeePMD-kit

Miscellaneous

Behler-Parinello

  • Physical review letters, 98(14):146401, 2007
  • Physical Chemistry Chemical Physics, 13(40):17930–17955, 2011

ANI-1

  • Chemical science, 8(4):3192–3203, 2017

SNAP

  • Journal of Computational Physics, 285:316–330, 2015
  • Journal of chemical physics, 148(24):241721, 2018

MTP

  • Multiscale Modeling & Simulation, 14(3):1153–1173, 2016

ACE

  • Physical Review B, 99(1):014104, 2019.

DeePMD Notes

1. A good starting point is to run the water examples. There are JSON input files available for various descriptors.

📦 https://github.com/deepmodeling/deepmd-kit/tree/master/examples/water

se_e2_a should be one of the standard descriptors to try. It is short for the Deep Potential Smooth Edition (DeepPot-SE), which is constructed from the angular and radial features of atomic configurations. Later model frameworks, such as dpa-1, 2, 3, stand for Deep Potential models with an attention mechanism using the descriptor se_atten.

2. sel is an important parameter, which means the expected maximum number of the neighbors of a type of atom. DeePMD-kit will allocate memory according to sel.

📖 https://docs.deepmodeling.com/projects/deepmd/en/stable/model/sel.html

dp --pt neighbor-stat -s data -r 6.0 -t O H

3. There is no available option to save the best model from the validation performance currently, Related posts as following:

💬 How to save the best model on validation data during model training? (Unanswered)

💬 Save model with best validation Error

There is a training parameter max_ckpt_keep can change the latest maximum number of the checkpoints to keep. We can adjust this larger and check the learning curve output data to choose the best model from validation performance metrics.

4. dpdata can be used to perform the conversion and generate the npy data, which is the recommended format in DeepMD, with the following command:

dpdata OUTCAR -i vasp/outcar -o deepmd/npy -O deepmd_data

If the training input is from single point energy calculations, there is one post from the discussion forum, but it seems they did not give a clear reply.

💬 DeepMD training model with Single Point energy calculations

We can simply concatenate the OUTCAR files (e.g., OUTCAR_1, OUTCAR_2, …) into a single OUTCAR and run this command to produce a dataset as if dealing with the AIMD OUTCAR.

However, it assumes that all images have the same atom types and counts (for example, AIMD OUTCAR outputs). This may not be valid for cases where the number and order of elements vary across different images. In that case, we should convert one-by-one with dpdata on the single point energy OUTCAR. The following is a related to-do enhancement from the deepmd-kit:

💬 Support batched inference with different natoms

5. There is a provided script to plot the learning curve log data from their documentation.

📖 https://tutorials.deepmodeling.com/en/latest/Tutorials/DeePMD-kit/learnDoc/Handson-Tutorial%28v2.0.3%29.html#train-process

6. There is no limit on the radius cutoff to be less than half box size, which is explained as following:

📖 https://docs.deepmodeling.com/projects/deepmd/en/stable/troubleshooting/howtoset_rcut.html

Comments

Comments powered by Disqus