Yi-Lun Liao, Brandon Wood, Abhishek Das*, Tess Smidt*
NOTE: Please refer to the official EquiformerV2 codebase for installation instructions and for up-to-date code that reproduces numbers in the paper.
The version of EquiformerV2 code within this OCP repository is meant to make it easier to use EquiformerV2 as part of the OCP toolkit and to ease future development.
We provide model weights for EquiformerV2 trained on S2EF-2M dataset for 30 epochs, EquiformerV2 (31M) trained on S2EF-All+MD, and EquiformerV2 (153M) trained on S2EF-All+MD.
Model | Training Split | Download | S2EF val force MAE (meV / Å) | S2EF val energy MAE (meV) | Test results |
---|---|---|---|---|---|
EquiformerV2 (83M) | 2M | checkpoint | config | 19.4 | 278 | - |
EquiformerV2 (31M) | All+MD | checkpoint | config | 16.3 | 232 | S2EF | IS2RE | IS2RS |
EquiformerV2 (153M) | All+MD | checkpoint | config | 15.0 | 227 | S2EF | IS2RE | IS2RS |
Model | Download | S2EF-Total val force MAE (meV / Å) | S2EF-Total val energy MAE (meV) | Test results |
---|---|---|---|---|
EquiformerV2 ( |
checkpoint | config | 26.9 | 547 | S2EF-Total |
For the energy targets, instead of using the total DFT energies directly, we reference them using per-element linear fit reference energies, followed by normalizing the referenced energy distribution.
That is, during training, target
We can also write this as
use_energy_lin_ref
flag in the config.
During training / finetuning, the OC22 dataloader handles the energy referencing,
so set use_energy_lin_ref=False
.
- If you haven't trained OCP models before and are specifically interested in EquiformerV2, the training / validation scripts provided in the official EquiformerV2 codebase might be easier to get started.
- We provide a slightly modified trainer and LR scheduler. The differences
from the parent
forces
trainer are the following:- Support for cosine LR scheduler.
- When using the LR scheduler, it first converts the epochs into number of steps and then passes it to the scheduler. That way in the config everything can be specified in terms of epochs.
- To run training (similar workflow as other OCP models):
python main.py \ --config-yml configs/s2ef/2M/equiformer_v2/equiformer_v2_N@12_L@6_M@2.yml \ --mode train
- To run validation with a pretrained model checkpoint:
python main.py \ --config-yml configs/s2ef/2M/equiformer_v2/equiformer_v2_N@12_L@6_M@2.yml \ --checkpoint path/to/checkpoint.pt \ --mode validate
If you use EquiformerV2 in your work, please consider citing:
@article{equiformer_v2,
title={{EquiformerV2: Improved Equivariant Transformer for Scaling to Higher-Degree Representations}},
author={Yi-Lun Liao and Brandon Wood and Abhishek Das* and Tess Smidt*},
journal={arxiv preprint arxiv:2306.12059},
year={2023},
}