| --- |
| license: other |
| license_name: academic-software-license |
| license_link: https://github.com/ICAMS/grace-tensorpotential/blob/master/LICENSE.md |
| library_name: tensorpotential |
| tags: |
| - grace |
| - interatomic-potential |
| - molecular-dynamics |
| - machine-learning-potential |
| - materials-science |
| --- |
| |
| # Pretrained GRACE Foundation Models |
|
|
| This repository distributes pretrained **GRACE** (Graph Atomic Cluster Expansion) machine-learning |
| interatomic potentials, fitted with [GRACEmaker / tensorpotential](https://github.com/ICAMS/grace-tensorpotential). |
| The model tables and usage notes below are adapted from the |
| [GRACEmaker documentation](https://github.com/ICAMS/grace-tensorpotential/blob/master/docs/gracemaker/foundation.md). |
|
|
| > **Use the "Full Name" column** to refer to a model in LAMMPS and ASE. |
|
|
| The **UQ** and **Kokkos** columns indicate, per model: |
|
|
| - **UQ** β the distributed SavedModel ships with an uncertainty-quantification head |
| (and the checkpoint includes `gmm_artifacts.npz`). |
| - **Kokkos** β the model archive bundles `kokkos.npz` for LAMMPS-Kokkos deployment. |
|
|
| ## License |
|
|
| **All GRACE models distributed in this repository are released under the Academic Software |
| License (ASL).** By downloading or using any model from this repository you agree to the terms |
| of the ASL: <https://github.com/ICAMS/grace-tensorpotential/blob/master/LICENSE.md> |
|
|
| --- |
|
|
| ## SMAX models |
|
|
| Reference: [arXiv](https://arxiv.org/abs/2602.23489) |
|
|
| The **SMAX** (**Maximum Entropy**) models are trained on a chemistry-agnostic dataset generated via a multicomponent |
| maximum information entropy structure generation protocol. |
|
|
| Unlike traditional datasets that focus on low-energy equilibrium structures, SMAX is constructed to deliberately sample |
| broad and diverse regions of configurational space. This provides a robust physical prior for atomic interactions across the entire periodic table, enabling accurate modeling of large-strain phase transformations, defects in complex alloys, and reaction barriers in catalytic systems. |
|
|
| **Custom Cutoffs & Interaction Ranges:** SMAX models utilize a **custom element-dependent cutoff radius** ranging from |
| **5.0 Γ
to 7.5 Γ
**. |
|
|
| **Recommendation:** For most general-purpose applications, we recommend using the **SMAX-OMAT** models. |
| They offer the best balance of structural robustness (from SMAX) and high-precision energy/force accuracy (from OMat24). |
|
|
| #### Single-layer, local models |
|
|
| | Model Name | Full Name | Size | ΞΊ_SRME | UQ | Kokkos | Description | |
| | :---- | :---- | :---- | :---- | :---- | :---- | :---- | |
| | GRACE-1L-SMAX-L | GRACE-1L-SMAX-large | large | 0.696 | β | β | Single-layer local (SMAX) | |
| | **GRACE-1L-SMAX-OMAT-L** | **GRACE-1L-SMAX-OMAT-large** | **large** | 0.338 | β | β | **Single-layer local (SMAX + OMat24)** | |
| |
| #### Two-layer, semilocal models |
| |
| | Model Name | Full Name | Size | ΞΊ_SRME | UQ | Kokkos | Description | |
| | :---- | :---- | :---- | :---- | :---- | :---- | :---- | |
| | GRACE-2L-SMAX-M | GRACE-2L-SMAX-medium | medium | 0.469 | β | β | Two-layer semi-local (SMAX) | |
| | GRACE-2L-SMAX-L | GRACE-2L-SMAX-large | large | 0.444 | β | β | Two-layer semi-local (SMAX) | |
| | **GRACE-2L-SMAX-OMAT-M** | **GRACE-2L-SMAX-OMAT-medium** | **medium** | 0.197 | β | β | **Two-layer semi-local (SMAX + OMat24)** | |
| | **GRACE-2L-SMAX-OMAT-L** | **GRACE-2L-SMAX-OMAT-large** | **large** | 0.191 | β | β | **Two-layer semi-local (SMAX + OMat24)** | |
|
|
| ## OMAT models |
|
|
| Reference: [npj Comp. Mat.](https://www.nature.com/articles/s41524-026-01979-1), [arXiv](https://arxiv.org/abs/2508.17936) |
|
|
| The base models (**-OMAT**) are trained on the [OMat24](https://huggingface.co/datasets/fairchem/OMAT24#omat24-dataset) dataset. |
| The fine-tuned versions (**-OMAT-ft-E**) are derived from these base models by fine-tuning with more emphasis on energies. |
| All models listed use a fixed **6 Γ
cutoff**. |
|
|
| #### Single-layer, local models |
|
|
| | Model Name | Full Name | Size | ΞΊ_SRME | UQ | Kokkos | Description | |
| |:---|:---|:---|:---|:---|:---|:---| |
| | **GRACE-1L-OMAT** | GRACE-1L-OMAT | small | 0.398 | β | β | Single-layer local | |
| | GRACE-1L-OMAT-M-base | GRACE-1L-OMAT-medium-base | medium | 0.380 | β | β | Single-layer local (base) | |
| | **GRACE-1L-OMAT-M** | GRACE-1L-OMAT-medium-ft-E | medium | 0.417 | β | β | Single-layer local (finetuned on energy) | |
| | GRACE-1L-OMAT-L-base | GRACE-1L-OMAT-large-base | large | **0.354** | β | β | Single-layer local (base) | |
| | **GRACE-1L-OMAT-L** | GRACE-1L-OMAT-large-ft-E | large | 0.383 | β | β | Single-layer local (finetuned on energy) | |
| |
| #### Two-layer, semilocal models |
| |
| | Model Name | Full Name | Size | ΞΊ_SRME | UQ | Kokkos | Description | |
| |:---|:---|:---|:---|:---|:---|:---| |
| | **GRACE-2L-OMAT** | GRACE-2L-OMAT | small | 0.288 | β | β | Two-layer semi-local | |
| | GRACE-2L-OMAT-M-base | GRACE-2L-OMAT-medium-base | medium | 0.212 | β | β | Two-layer semi-local (base) | |
| | **GRACE-2L-OMAT-M** | GRACE-2L-OMAT-medium-ft-E | medium | 0.217 | β | β | Two-layer semi-local (finetuned on energy) | |
| | GRACE-2L-OMAT-L-base | GRACE-2L-OMAT-large-base | large | **0.165** | β | β | Two-layer semi-local (base) | |
| | **GRACE-2L-OMAT-L** | GRACE-2L-OMAT-large-ft-E | large | 0.186 | β | β | Two-layer semi-local (finetuned on energy) | |
|
|
| ## OAM models |
|
|
| Reference: [npj Comp. Mat.](https://www.nature.com/articles/s41524-026-01979-1), [arXiv](https://arxiv.org/abs/2508.17936) |
|
|
| These models are first pre-trained on **OMat24** and then fine-tuned on a combination of the [sAlex](https://huggingface.co/datasets/fairchem/OMAT24#salex-dataset) dataset (10.4M structures) and the [MPtraj](https://figshare.com/articles/dataset/Materials_Project_Trjectory_MPtrj_Dataset/23713842?file=41619375) dataset (1.58M structures). |
|
|
| #### Single-layer, local models |
|
|
| | Model Name | Full Name | Size | F1 | ΞΊ_SRME | UQ | Kokkos | Description | |
| | :--- |:---| :--- |:---|:---|:---|:---| :--- | |
| | GRACE-1L-OAM | GRACE-1L-OAM | small | 0.824 | 0.516 | β | β | Single-layer local | |
| | GRACE-1L-OAM-M | GRACE-1L-OMAT-medium-ft-AM | medium | 0.800 | 0.411 | β | β | Single-layer local | |
| | GRACE-1L-OAM-L | GRACE-1L-OMAT-large-ft-AM | large | 0.815 | **0.377** | β | β | Single-layer local | |
| |
| #### Two-layer, semilocal models |
| |
| | Model Name | Full Name | Size | F1 | ΞΊ_SRME | UQ | Kokkos | Description | |
| | :--- |:--- | :--- |:---|:---|:---|:---| :--- | |
| | GRACE-2L-OAM | GRACE-2L-OAM | small | 0.880 | 0.294 | β | β | Two-layer semi-local | |
| | GRACE-2L-OAM-M | GRACE-2L-OMAT-medium-ft-AM | medium | 0.881 | 0.200 | β | β | Two-layer semi-local | |
| | GRACE-2L-OAM-L | GRACE-2L-OMAT-large-ft-AM | large | 0.889 | **0.168** | β | β | Two-layer semi-local | |
|
|
| ## Mixed-precision (-mx) variants |
|
|
| Mixed-precision builds of the 2L-large models: float32 weights, which the Kokkos export |
| promotes to float64. Energies and forces agree with the TF SavedModel to ~10β»β΅ (vs ~10β»β· for |
| the full-precision models) β the expected effect of fp32 accumulation in the SavedModel. |
|
|
| | Full Name | Size | UQ | Kokkos | Description | |
| |:---|:---|:---|:---|:---| |
| | GRACE-2L-OMAT-large-mx | large | β | β | Two-layer semi-local, mixed precision (OMat24) | |
| | GRACE-2L-OMAT-large-mx-ft-AM | large | β | β | Two-layer semi-local, mixed precision (OMat24, fine-tuned on sAlex + MPtraj) | |
|
|
| --- |
|
|
| ## Repository layout |
|
|
| Each model is provided as two `.tar.gz` archives: |
|
|
| - `models/<full-name>-model.tar.gz` β the deployable TensorFlow `SavedModel` directory |
| (used by the ASE `TPCalculator`). UQ-enabled models embed an uncertainty head, and many |
| archives also bundle `kokkos.npz` for LAMMPS-Kokkos deployment. |
| - `checkpoints/<full-name>-checkpoint.tar.gz` β the training checkpoint required for |
| fine-tuning (`model.yaml`, `checkpoint.index`, `checkpoint.data-*`, plus `gmm_artifacts.npz` |
| for UQ models). |
|
|
| ## Downloading Foundation Models |
|
|
| The recommended way is the `grace_models` utility shipped with `tensorpotential`: |
|
|
| - `grace_models list` β view the list of available models. |
| - `grace_models download <model_name>` β download a specific model (SavedModel). |
| - `grace_models checkpoint <model_name>` β download a model's training checkpoint. |
|
|
| By default all foundation models are stored in `$HOME/.cache/grace`; override with the |
| `GRACE_CACHE` environment variable. The downloaded models can be used for simulations in |
| **ASE** and **LAMMPS** β see the |
| [GRACEmaker quickstart](https://github.com/ICAMS/grace-tensorpotential/blob/master/docs/quickstart.md). |
|
|
| --- |
|
|
| ## Fine-tuning foundation models |
|
|
| Fine-tuning is performed from **checkpoints** (not SavedModels). Run `grace_models list` |
| to see which models expose a `CHECKPOINT:` field; download with |
| `grace_models checkpoint <MODEL-NAME>` (or it is fetched automatically when needed). |
|
|
| Generate a fine-tuning `input.yaml` interactively with `gracemaker -t`, or add to the |
| `potential` section manually: |
|
|
| ```yaml |
| potential: |
| finetune_foundation_model: GRACE-1L-OAM |
| shift: auto # automatically align FM energies with your DFT reference data |
| # reduce_elements: True # if True - select from original models only elements present in the CURRENT dataset |
| ``` |
|
|
| ### Automatic energy shift correction (`shift: auto`) |
|
|
| When `shift: auto` is set alongside `finetune_foundation_model`, GRACEmaker computes optimal |
| per-element energy shifts that minimize the difference between the foundation model's |
| predictions and your reference DFT data, injecting them via `ConstantScaleShiftTarget` before |
| training. This is useful when your DFT settings differ from the foundation model's training |
| data (systematic energy offset) and leads to faster convergence. |
|
|
| `shift: auto` is independent of `data::reference_energy`. Typical usage: |
|
|
| * `reference_energy: 0` (or dict) β set your DFT reference frame |
| * `shift: auto` β align the FM output to your DFT reference frame |
|
|
| ### Learning rate & initial metrics |
|
|
| Use a small `learning_rate` and evaluate initial metrics: |
|
|
| ```yaml |
| fit: |
| opt_params: {learning_rate: 0.001, ... } |
| eval_init_stats: True |
| ``` |
|
|
| ### Frozen-weights fine-tuning |
|
|
| To mitigate catastrophic forgetting, restrict training to selected variables via |
| `trainable_variable_names`: |
|
|
| ```yaml |
| # GRACE-2L models |
| fit: |
| trainable_variable_names: ["I2/reducing_", "rho/reducing_", "I1/reducing_"] |
| ``` |
|
|
| ```yaml |
| # GRACE-1L models |
| fit: |
| trainable_variable_names: ["rho/reducing_"] |
| ``` |
|
|
| Discover variable names with: |
|
|
| ```bash |
| grace_utils -p ~/.cache/grace/checkpoints/SOME_FOUNDATIONAL_MODEL_NAME/model.yaml summary -v 1 |
| ``` |
|
|