ACEsuit/mace: v0.3.13
Authors/Creators
- Ilyes Batatia1
- davkovacs
- ttompa
- bernstei
- WillBaldwin0
- Janosh Riebesell2
- Hatem Helal3
- Matthew Avaylon
- wcwitt
- Rokas Elijosius
- EszterVU
- ElliottKasoar
- Alin Marin Elena
- Andrew S. Rosen4
- Felix Musil5
- Chaitanya Joshi1
- Lars Schaaf
- Hubert Beck6
- Eric Sivonxay7
- Rhys Goodall8
- Tamas Stenczel
- Harry Moore
- ThomasWarford
- Sandip De9
- Cheuk Hin Ho10
- Isaac J Parker
- JPDarby
- Yuan (Cyrus) Chiang11
- samwaltonnorwood
- Bonan Zhu12
- 1. University of Cambridge
- 2. Radical AI
- 3. @valence-labs
- 4. Princeton University
- 5. CuspAI
- 6. Charles University Prague
- 7. Lawrence Berkeley National Laboratory
- 8. @Radical-AI
- 9. BASF
- 10. University of British Columbia
- 11. UC Berkeley, Lawrence Berkeley National Laboratory
- 12. University College London
Description
MACE 0.3.13 Release Notes
๐ LAMMPS Integration Enhancements
- Added new MLIAP (Machine Learning InterAtomic Potential) interface for LAMMPS, enabling significantly improved performance and flexibility. (Documentation)
- Implemented CuEquivariance support in LAMMPS models for GPU acceleration.
- Added multi-GPU inference support for large-scale molecular dynamics simulations.
- Improved timing and profiling capabilities via environment variable controls.
- New command-line option in
create_lammps_model.pyto select betweenlibtorch(legacy) andMLIAPformats:
# Convert model to MLIAP format
python -m mace.cli.create_lammps_model model.pt --format=mliap
๐งฎ Atomic Stresses Computation
- Added support for computing atomic stresses and atomic virials.
- Useful for analyzing local stress distributions in materials simulations.
from mace.calculators import mace_mp
from ase import build
# Create structure with 10 atoms
atoms = build.bulk("Al", "fcc", a=4.05, cubic=True)
atoms = atoms.repeat((2, 2, 2))
calc = mace_mp(device="cpu", compute_atomic_stresses=True)
atoms.set_calculator(calc)
atoms.get_potential_energy()
stress = atoms.get_stress()
stresses = atoms.get_stresses()
print("Stress tensor:\n", stress.shape)
print("Stresses tensor:\n", stresses.shape)
๐๏ธ Property Keys System Redesign
- Reworked the property keys system for improved flexibility and maintainability.
- Introduced
KeySpecificationclass to manage mappings between data formats. - Added
DefaultKeysenum to standardize access patterns. - Enhanced error reporting when keys are missing.
- Fully backward compatible with previous key conventions.
๐งฑ New Foundation Models
- MACE-MATPES: New foundation models finetuned on matpes dataset.
- New PBE model with +U inconsistencies and a new R2SCAN model.
- Better transferability for fine-tuning on domain-specific datasets.
| Model | Method | Energy (meV/atom) | Force (meV/ร ) | Stress (GPa) | |------------------|--------|-------------------|----------------|--------------| | M3GNet | PBE | 45 | 177 | 0.898 | | CHGNet | PBE | 32 | 124 | 0.617 | | TensorNet | PBE | 36 | 138 | 0.695 | | MACE | PBE | 34 | 122 | 0.296 | | MACE-MATPES-0 | PBE | 23 | 107 | 0.304 | | M3GNet | r2SCAN | 45 | 208 | 0.982 | | CHGNet | r2SCAN | 27 | 150 | 0.705 | | TensorNet | r2SCAN | 34 | 163 | 0.754 | | MACE-MAPTES-0 | r2SCAN | 19 | 119 | 0.265 |
๐ง Improved Model Head Selection
- Added explicit head selection in the MACE calculator for multi-head models.
- You can now directly specify the head:
# Example of selecting a specific head
calc = MACECalculator(model_path="model.pt", head="DFT")
- Automatically falls back to
"default"head if not specified. - Clear error messages when requested head is unavailable.
- Head-specific configurations supported during inference.
๐งช MACE Fine-Tuning Preselection CLI
MACE a tool for selecting configurations when fine-tuning foundation models.
๐ Key Features
Multiple Filtering Strategies:
combinations: Only elements in your subsetexclusive: Exactly your elementsinclusive: All your elements plus potentially others
Selection Methods:
fps(Farthest Point Sampling) for maximum diversityrandomfor uniform random sampling
Weighting Control:
- Adjust the importance of pretraining vs. fine-tuning data during selection
๐ก Usage Example
python -m mace.cli.fine_tuning_select \
--configs_pt path/to/pretraining_data.xyz \
--atomic_numbers "[1, 6, 8]" \
--num_samples 5000 \
--filtering_type combinations \
--output selected_configs.xyz
This functionality is also available directly in run_train.py when using the --atomic_numbers parameter. One can no longer do the filtering from run_train without adding the atomic numbers.
๐ฆ Installation
pip install --upgrade mace-torch
# For CUDA acceleration (CUDA 12)
pip install cuequivariance cuequivariance-torch cuequivariance-ops-torch-cu12
# For CUDA 11
pip install cuequivariance-ops-torch-cu11
For complete usage and documentation, please see our official documentation.
If you encounter any issues, please report them on our GitHub Issues page.
๐ Full Changelog
Full Changelog: https://github.com/ACEsuit/mace/compare/v0.3.12...v0.3.13
Files
ACEsuit/mace-v0.3.13.zip
Files
(121.3 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:7f49308e295a3534d04044a9b232c526
|
121.3 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/ACEsuit/mace/tree/v0.3.13 (URL)
Software
- Repository URL
- https://github.com/ACEsuit/mace