A machine learning potential energy project eqnorm
Project description
Eqnorm
Introduction
We propose a novel E(3)-equivariant GNN-based MLIP eqnorm, which employs a dual-branch design: one branch updates high-order tensor features to capture geometric symmetries, while the other one refines scalar embeddings by extracting information from the tensor branch.
Figure 1. Eqnorm architecture.
Trained on the MPtrj dataset, eqnorm ranks second among state-of-the-art models on the Matbench Discovery leaderboard for physical property prediction.
Figure 2. Matbench discovery compliant models leaderboard. See Matbench Discovery.
We used the exact benchmark code found in mace_benchmark with mace-torch v0.3.12 (PyPi) to test MD simulation using different MLIPs. To create a fair comparison, all models are benchmarked using the standard Python (3.10) runtime with Pytorch v2.6.0 and CUDA 11.8. No compile/torchscript was used. Notably, eqnorm achieves a fivefold improvement in inference speed over the leading model, eSEN, while enabling simulations of systems threefold larger in size.
Table 1. Inference efficiency test of MD simulation with 1 fs/step on a single Nvidia A40-48G GPU (speed in ns per day / consumed GPU memory).
| Model | 64 atoms | 216 atoms | 512 atoms | 1000 atoms | 1728 atoms |
|---|---|---|---|---|---|
| Eqnorm MPtrj | 0.6729 / 2.0 G | 0.2382 / 5.8 G | 0.1028 / 13.2 G | 0.05311 / 25.3 G | 0.02999 / 44.8 G |
| eSEN-30M-MP | 0.1489 / 12.0 G | 0.04941 / 38.5 G | OOM | OOM | OOM |
| MACE-MP-0 | 2.3171 / 1.3 G | 0.9178 / 3.6 G | 0.4054 / 7.9 G | 0.2130 / 15.2 G | 0.1244 / 25.8 G |
Installation
Requirement
python>=3.10
torch>=2.6.0
torch_scatter
for example, install torch-2.6 with cuda 11.8 and torch_scatter:
conda create -n eqnorm python=3.10
conda activate eqnorm
pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cu118
pip install torch_scatter -f https://data.pyg.org/whl/torch-2.6.0+cu118.html
After installation of PyTorch, run the following command:
pip install git+https://github.com/yzchen08/eqnorm.git
Usage
ase calculator
from eqnorm.calculator import EqnormCalculator
calc = EqnormCalculator(model_name='eqnorm', model_variant='eqnorm-mptrj', device='cuda')
you can check all available ckpt, for now only eqnorm-mptrj is available:
from eqnorm.calculator import EqnormCalculator
print(EqnormCalculator.url_dict)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eqnorm-0.1.1.tar.gz.
File metadata
- Download URL: eqnorm-0.1.1.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
115363b2a6a917a22ebd6c4c044d0f6edee34c4eb736e8a56c8d7e25f8d664f4
|
|
| MD5 |
d4f7cf3d5c322c57ba6fca0f136645b1
|
|
| BLAKE2b-256 |
8aa6db44ba5fd648896b0549aff20b33a5ae3d572ee847649650e60829b77260
|
File details
Details for the file eqnorm-0.1.1-py3-none-any.whl.
File metadata
- Download URL: eqnorm-0.1.1-py3-none-any.whl
- Upload date:
- Size: 24.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41d81edc09b027a708acec61d1a2de6a35e67cb7ead5934429540d70cfeb1548
|
|
| MD5 |
01a249231c0decebc3f5fbd449e4f241
|
|
| BLAKE2b-256 |
e8b37cf16fa2004b2a857946877862d946449efeb251dc9e6d0a427a2009d11c
|