Releases: MDIL-SNU/SevenNet
v0.11.0
The official release of v0.11.0 includes a multi-fidelity learning feature and new pre-trained models (7net-MF-ompa, 7net-omat)
What's Changed
- fix: d3 calc ._lib init by @YutackPark in #168
- Multimodal + cuEq + ... by @Jaesun0912 in #71
- docs: remove MF from main + update citation info by @YutackPark in #169
- Feats: add DFT-D3(BJ) parameters for omegaB97M & calc error fix & D3 compile to cache + Docs: application ref paper by @SuyeonJu in #173
- Bug fixes + chore by @YutackPark in #181
- refactor: sevenn.sevenn_logger => sevenn.logger with deprecation warn by @YutackPark in #182
- fix: lower python version compatible typing by @YutackPark in #183
- Add: 7net-mf-ompa, 7net-omat by @hexagonrose @Jaesun0912 @YutackPark in #184
New Contributors
- @Jaesun0912 made their first contribution in #71
- @SuyeonJu made their first contribution in #173
Full Changelog: v0.10.4...v0.11.0
v0.11.0-checkpoint
Release for model checkpoints. Official v0.11.0 will be released soon.
- SevenNet-MF-ompa
- SevenNet-omat
v0.11.0-alpha
Pre-release of multi modal feature.
[0.11.0]
Added
- Build multi-fidelity model, SevenNet-MF, based on given modality in the yaml
- Modality support for sevenn_inference, sevenn_get_modal, and SevenNetCalculator
- [cli] sevenn_cp tool for checkpoint summary, input generation, multi-modal routines
- Modality append / assign using sevenn_cp
- Loss weighting for energy, force and stress for corresponding data label
- Ignore unlabelled data when calculating loss. (e.g. stress data for non-pbc structure)
- Dict style dataset input for multi-modal and data-weight
- (experimental) cuEquivariance support
Added (code)
- sevenn.train.modal_dataset SevenNetMultiModalDataset
- sevenn.scripts.backward_compatibility.py
- sevenn.checkpoint.py
Changed
- Sort instructions of tensor product in convolution (+ fix flipped w3j coeff of old model)
- Lazy initialization for
IrrepsLinear
andSelfConnection*
- Checkpoint things using
sevenn/checkpoint.py
- e3nn >= 0.5.0, to ensure changed CG coeff later on
- pandas as dependency
Fixed
- More refactor for shift scale things + few bug fixes
- Correctly shuffle training set when distributed training is enabled
What's Changed
- sync main by @YutackPark in #147
- fix: d3 calc ._lib init by @YutackPark in #168
- Multimodal + cuEq + ... by @Jaesun0912 in #71
- docs: remove MF from main + update citation info by @YutackPark in #169
New Contributors
- @Jaesun0912 made their first contribution in #71
Full Changelog: v0.10.4...v0.11.0-alpha
v0.10.4
Important: last version that allows e3nn < 0.5.0
[0.10.4]
Added
- feats: D3 calculator
Fixed
- bug: info dict sharing (therefore energy stress) when structure_list used
- torch >= 2.5.0 works
- numpy >= 2.0 works (need more testing)
Changed
- sevennet_calculator.py => calculator
- fine tunine preset to use original loss function (Huber) and loss weights
What's Changed
- Update README.md by @hexagonrose in #149
- fix: bugfix info dict sharing of structure_list by @YutackPark in #157
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #156
- CUDA-accelerated ASE D3 calculator by @dambi3613 in #152
- maintenence: torch >= 2.5.0, numpy >= 2.0.0 by @YutackPark in #164
- docs: remove torch version cap by @YutackPark in #165
Full Changelog: v0.10.3...v0.10.4
v0.10.3
[0.10.3]
Matbench
Our new model SevenNet-l3i5 is now available.
Added
- SevenNet-l3i5, checkpoint, preset. (keywords: 7net-l3i5, sevennet-l3i5)
Changed
- Fast --help (do not import torch)
- README refined
What's Changed
- Add: sevennet-l3i5 by @YutackPark in #136
- Upload l3i5 & update README.md by @JisuJung928 in #137
- Fast --help by @YutackPark in #139
- Sevennet-l3i5 unit test by @YutackPark in #141
- Fix: add l3i5 cp as data by @YutackPark in #142
New Contributors
- @JisuJung928 made their first contribution in #137
Full Changelog: v0.10.2...v0.10.3
v0.10.2
[0.10.2]
Added
- Accelerated graph build routine if
matscipy
is installed @hexagonerose - matscipy vs. ase neighborlist unit test
- If valid set is not given but data_divide_ratio is given, validaset is created using random split. (shift, scale, and conv_denoiminator uses original whole statistics)
Changed
matscipy
is included as a dependency- data_divide_ration defaults to 0.0 (meaning not used)
Fixed
- For torch version >= 2.4.0, Loading graph dataset no more raises warnings.
- Raise error when unknown element is found (SevenNetCalculator)
What's Changed
- [Feat] change ase.neighborlist to from matscipy.neighbours by @hexagonrose in #124
- [refactor] make _remove_self_edges be skipped when doing matscipy graph build by @hexagonrose in #129
- docs: update
sevenn_graph_build
of README.md by @YutackPark in #128 - [Feat] add graph build test of ase and matscipy in pytest by @hexagonrose in #131
- Add: data split by @YutackPark in #134
New Contributors
- @hexagonrose made their first contribution in #124
Full Changelog: v0.10.1...v0.10.2
v0.10.1
[0.10.1]
Added
- experimental
SevenNetAtomsDataset
which is memory efficient, can be enabled withdataset_type='atoms'
- Save meta data & statistics when the
SevenNetGraphDataset
saves its data.
Changed
- Save checkpoint_0.pth (model before any training)
SevenNetGraphDataset._file_to_graph_list
->SevenNetGraphDataset.file_to_graph_list
- Refactoring
SevenNetGraphDataset
, skips computing statistics if it is loaded, more detailed logging - Prefer use
.get
when accessing config dict
Fixed
- Fix error when loading
SevenNetGraphDataset
with other types of data (ex: extxyz) in one dataset
Full Changelog: v0.10.0...v0.10.1
What's Changed
- chore: update dependencies (PyG >= 2.5.0) by @YutackPark in #110
- v0.10.1 by @YutackPark in #112
- docs: update torch version by @YutackPark in #116
- refactor: file not found error + warnings for graph dataset by @YutackPark in #119
- merge main by @YutackPark in #122
- refactor: please use get by @YutackPark in #121
v0.10.0
[0.10.0]
SevenNet now has CI workflows and its python coverage is 78%!
Substantial changes in command-line apps and their outputs.
Previous functionalities are still accessible with correct flags (sevenn -m train_v1 ... , sevennet_graph_build --legacy ...)
Added
sevenn_preset
for below changes- [train_v2]: train_v2, with lots of refactoring, support
load_testset_path
. - [train_v2]:
SevenNetGraphDataset
replaces oldAtomGrpahDataset
, which extendsInMemoryDataset
of PyG. - [train_v2]:
sevenn_graph_build
forSevenNetGraphDataset
. - [train_v2]: Any additional datasets will be evaluated and recorded if it is given as 'load_{NAME}set_path' key.
Univ
keyword forchemical_species
- More options: energy_key, force_key, stress_key for
sevenn_graph_build
, thanase.calculator
@thangckt - OpenMPI distributed training @thangckt
Changed
- Some cumbersome things(
type_map
,requires_grad
), that hurt readability, are now hidden insideAtomGraphSequential
. log.sevenn
andlc.csv
automatically find a safe filename (log0.sevenn, log1.sevenn, ...) to avoid overwriting.- [train_v2]: train_v2 loads its training set via
load_trainset_path
, rather than previousload_dataset_path
. - [train_v2]: log.csv -> lc.csv, and columns have no units, (easier to postprocess with it) but still on
log.sevenn
. - [train_v2]: Train valid split by
ratio
is temporarily removed - Previous presets are renamed with
_v1
suffix
Fixed
- [e3gnn_serial]: can continue simulation even when atom tag becomes not consecutive (removing atom dynamically), @gasplant64
- [e3gnn_parallel]: undefined behavior when there is no atoms to send/recv (for non pbc system)
- [e3gnn_parallel]: incorrect force/stress in some edge cases (too small simulation cell & 2 process)
- [e3gnn_parallel]: revert commit 14851ef, now e3gnn_parallel is sane.
- [e3gnn_*]: += instead of = when saving virial stress and forces @gasplant64
- Now Logger correctly closes a file.
- ... and lots of small bugs I found during writing
pytest
.
New Contributors
- @thangckt made their first contribution in #89
- @gasplant64 made their first contribution in #81
- @pre-commit-ci made their first contribution in #101
v0.9.3
Warning: This release has a serious bug in LAMMPS parallel. Please use v0.9.3.post1
in the 'tags', or use pip install.
SevenNet is released to PyPI, project is managed using pyproject.toml, not setup.py
- PyPI release + docs
- torch_scatter dependency removed
- torch_geometric dependency added to the pyproject.toml
Features:
sevenn_preset
for basic training yaml filessevenn_patch_lammps
for easier installation- keyword input for pre-trained models: continue, sevenn_get_model, sevennet_calculator
Bugfix:
- C++17 for torch version > 2.0
Known bug:
- In training yaml,
scale: 'elemwise_force_rms'
is broken. Fixed in github, but not in pip.
The last snapshot of XPLOR cutoff bug
The last snapshot of SevenNet has XPLOR cutoff bug and wrong SevenNet-0 potential.