|
Download README.md from OneScience-Group/NequIP: direct link, hf CLI and curl.
- Browser
- Download file 8.39 kB
-
https://huggingface.co/OneScience-Group/NequIP/resolve/main/README.md
- Command line
-
hf download hf://OneScience-Group/NequIP/README.md
-
curl -L -o README.md https://huggingface.co/OneScience-Group/NequIP/resolve/main/README.md
8.39 kB
| license: apache-2.0 | |
| tasks: | |
| - materials-simulation | |
| - molecular-dynamics | |
| - energy-prediction | |
| - force-prediction | |
| frameworks: | |
| - pytorch | |
| language: | |
| - en | |
| tags: | |
| - OneScience | |
| - NequIP | |
| - machine-learning-potential | |
| - molecular-simulation | |
| - materials-computing | |
| - graph-neural-network | |
| - equivariant-neural-network | |
| - training | |
| - fine-tuning | |
| - inference | |
| datasets: | |
| - OneScience-Group/FCC_Cu | |
| <p align="center"> | |
| <strong> | |
| <span style="font-size: 30px;">NequIP</span> | |
| </strong> | |
| </p> | |
| # Model Introduction | |
| NequIP is a machine-learning interatomic potential (MLIP) for molecular and materials systems. Built on an E(3)-equivariant graph neural network, it predicts the energies and forces of atomic structures. | |
| Reference implementation: https://github.com/mir-group/nequip | |
| # Model Description | |
| This repository provides the OneScience-integrated NequIP model code, OAM-L model weights, and runnable examples for training, fine-tuning, and inference. The `model/` directory corresponds only to `src/onescience/models/nequip/` in the main OneScience repository; training utilities, data-processing tools, and other shared modules are provided by the installed OneScience package. | |
| The included OAM-L weights are: | |
| | File | Purpose | | |
| | --- | --- | | |
| | `weight/NequIP-OAM-L-0.1.nequip.pth` | Compiled model for ASE single-point energy, atomic force, and stress inference | | |
| | `weight/NequIP-OAM-L-0.1.nequip.zip` | NequIP package for OAM-L fine-tuning and checkpoint inference | | |
| # Use Cases | |
| | Use case | Description | | |
| | :---: | :--- | | |
| | Interatomic-potential training | Train a NequIP model using the example configurations and ASE extxyz data | | |
| | Pretrained-model fine-tuning | Fine-tune the OAM-L package using data labeled with energy and forces | | |
| | Single-point energy and force inference | Predict the energy, atomic forces, and stress of a structure with a compiled model or fine-tuned checkpoint | | |
| | Structure relaxation | Optimize atomic positions with ASE | | |
| | Energy-volume curve | Scan the volume of a periodic crystal and calculate the corresponding energy | | |
| | Slurm/DCU training | Submit single-device or multi-device jobs using the included configurations and launch scripts | | |
| # Usage | |
| ## 1. Using OneCode | |
| Try intelligent, one-click AI4S programming in the OneCode online environment: | |
| [Try intelligent, one-click AI4S programming](https://web-2069360198568017922-iaaj.ksai.scnet.cn:58043/home) | |
| ## 2. Manual Installation and Usage | |
| **Hardware requirements** | |
| - A GPU or DCU is recommended for training. | |
| - A CPU can be used for import checks and small-configuration connectivity tests, but full training will be slow. | |
| - DCU users must install DTK in advance. DTK 25.04.2 or later, or the OneScience-recommended version matching the current cluster, is recommended. | |
| ### Download the Model Package | |
| ```bash | |
| hf download --model OneScience-Group/NequIP --local-dir ./NequIP | |
| cd NequIP | |
| ``` | |
| ### Install the Runtime Environment | |
| **DCU environment** | |
| ```bash | |
| # Activate DTK and Conda first | |
| conda create -n onescience311 python=3.11 -y | |
| conda activate onescience311 | |
| # uv installation is also supported | |
| pip install onescience[matchem-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai | |
| ``` | |
| **GPU environment** | |
| ```bash | |
| # Activate Conda first | |
| conda create -n onescience311 python=3.11 -y libstdcxx-ng=12 libgcc-ng=12 gcc_linux-64=12 gxx_linux-64=12 | |
| conda activate onescience311 | |
| # uv installation is also supported | |
| pip install onescience[matchem-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai | |
| ``` | |
| ### Training Data | |
| Training data is not bundled with this repository. Using the introductory FCC Cu dataset as an example, download it from Hugging Face to `data/` in the repository root: | |
| ```bash | |
| hf download --dataset OneScience-Group/FCC_Cu --local-dir ./data | |
| ``` | |
| After downloading, the raw data is located at `data/data/FCC_Cu/raw/fcu.xyz`. The dataset contains 6,855 structures, each with 52 atoms of C, H, O, and Cu. It uses an ASE-readable extxyz format and includes periodic cells together with energy and force labels. For production training or fine-tuning, use data consistent with the target system, label definitions, and units. | |
| The training scripts read models and data from shared directories. Set the paths for your cluster before training or fine-tuning: | |
| ```bash | |
| export ONESCIENCE_MODELS_DIR=/path/to/onescience-models | |
| export ONESCIENCE_DATASETS_DIR=/path/to/onescience-datasets | |
| ``` | |
| To use the OAM-L weights included in this repository, copy them into the shared model directory: | |
| ```bash | |
| mkdir -p "$ONESCIENCE_MODELS_DIR/NequIP" | |
| cp weight/NequIP-OAM-L-0.1.nequip.pth "$ONESCIENCE_MODELS_DIR/NequIP/" | |
| cp weight/NequIP-OAM-L-0.1.nequip.zip "$ONESCIENCE_MODELS_DIR/NequIP/" | |
| ``` | |
| ### Training | |
| Generate minimal smoke-test data and run local training: | |
| ```bash | |
| python demo/prepare_smoke_data.py | |
| bash demo/run.sh --config configs/tutorial_smoke.yaml | |
| ``` | |
| Download the official FCU tutorial data and submit a training job: | |
| ```bash | |
| python demo/download_tutorial_data.py | |
| bash demo/run.sh --config configs/tutorial_fcu.yaml --submit | |
| ``` | |
| The eight-DCU configurations run locally or submit to Slurm automatically, depending on the currently available resources: | |
| ```bash | |
| bash demo/run.sh --config configs/tutorial_smoke_8dcu.yaml | |
| bash demo/run.sh --config configs/tutorial_fcu_8dcu.yaml | |
| ``` | |
| Outputs are written to `outputs/` by default. The actual wait time for a training job depends on the cluster queue and available resources. | |
| ### Model Weights | |
| This repository includes the OAM-L trained weights: | |
| ```text | |
| e83a1d656f8b19b55d2f05708c83e054612f713e9a1b06266aa010db58e56517 weight/NequIP-OAM-L-0.1.nequip.pth | |
| 5d01a4fab228abb3cdb6ace0033f93993729956bca6a42234a2a8816825b9a0f weight/NequIP-OAM-L-0.1.nequip.zip | |
| ``` | |
| ### Fine-Tuning | |
| Validate the OAM-L fine-tuning workflow with generated smoke-test data: | |
| ```bash | |
| python demo/prepare_smoke_data.py | |
| bash demo/run.sh --config configs/oam_l_finetune_smoke.yaml --submit | |
| ``` | |
| Use the production fine-tuning configuration: | |
| ```bash | |
| bash demo/run.sh --config configs/oam_l_finetune.yaml --submit | |
| ``` | |
| Provide production fine-tuning data through `ONESCIENCE_DATASETS_DIR` in an ASE-readable extxyz format. Every frame must contain at least `energy` and `forces`; element types, units, and label definitions must be consistent with the OAM-L package and configuration. | |
| ### Inference | |
| Use the compiled model for single-point energy, atomic force, and stress prediction: | |
| ```bash | |
| python single_point.py --compiled-model weight/NequIP-OAM-L-0.1.nequip.pth | |
| python single_point.py \ | |
| --compiled-model weight/NequIP-OAM-L-0.1.nequip.pth \ | |
| --input structure.cif \ | |
| --output outputs/single_point.json | |
| ``` | |
| Calculate an energy-volume curve and perform structure relaxation: | |
| ```bash | |
| python energy_volume.py | |
| python structure_relaxation.py --fmax 0.05 --steps 100 --output-dir outputs/oam_l_relax | |
| ``` | |
| Run inference with a checkpoint produced by fine-tuning: | |
| ```bash | |
| python single_point.py \ | |
| --checkpoint outputs/<run>/checkpoints/best.ckpt \ | |
| --package weight/NequIP-OAM-L-0.1.nequip.zip \ | |
| --output outputs/<run>/single_point.json | |
| ``` | |
| # Official OneScience Resources | |
| | Platform | OneScience Main Repository | Skills Repository | | |
| | --- | --- | --- | | |
| | Gitee | https://gitee.com/onescience-ai/onescience | https://gitee.com/onescience-ai/oneskills | | |
| | GitHub | https://github.com/onescience-ai/OneScience | https://github.com/onescience-ai/oneskills | | |
| # Citation and License | |
| - The NequIP-related code comes from the OneScience MatChem integration and refers to the upstream NequIP project (https://github.com/mir-group/nequip). The OneScience integration code follows the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0) used by the main repository. | |
| - If you use NequIP or OAM-L training results in research, please cite the original NequIP paper, the relevant OneScience projects, and the datasets used. | |
| - Redistribution rights for the OAM-L model weights are governed by the original OneScience/OAM-L release terms. Confirm the applicable rights and restrictions before use. | |
| - The FCC Cu dataset is published separately at [OneScience-Group/FCC_Cu](https://huggingface.co/datasets/OneScience-Group/FCC_Cu). Its license and provenance are documented on the dataset card and by its upstream source. | |