Changelog#
All notable changes to this project will be documented in this file.
[0.12.0]#
Added#
Documentation moved to RTD
LAMMPS-MLIAP integration with GhostExchangeOp
Added#
SevenNet-Omni
Example config for fine-tuning the SevenNet-MF-ompa model
FlashTP support (https://github.com/SNU-ARC/flashTP)
Changed#
ninja dependency added
Fixed#
Multi modal model finetuning: Pass modal_map into config during multi-fidelity continual training #232
omat deploy parallel fixed
[0.11.2]#
Changed#
change cueq default config
assign cell volume 0 instead of eps for non-pbc system
remove redundant CELL and CELL_SHIFT
Fixed#
Circular import in error_recorder
[0.11.1]#
From here, the version of ‘main’ branch has ‘devX’ after it diverges from the latest stable version
CLI interface changed in backward-compatible manner. Now sevenn has subcommands for
inference, train, etc
Added#
subcommand with some aliases
strict e3nn version requirement from init.py
Changed#
pre-commit uses python3.11
cuequivaraiance optional libraries
some gitignores
Fixed#
Circular import in sevenn.checkpoint (dev0)
Fix typing issues
Added missing typings (especially return type)
[0.11.0]#
Multi-fidelity learning implemented & New pretrained-models
Added#
Build multi-fidelity model, SevenNet-MF, based on given modality in the yaml
Modality support for sevenn_inference, sevenn_get_modal, and SevenNetCalculator
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
Downloading large checkpoints from url (7net-MF-ompa, 7net-omat)
D3 wB97M param
Changed#
Sort instructions of tensor product in convolution (+ fix flipped w3j coeff of old model)
Lazy initialization for
IrrepsLinearandSelfConnection*Checkpoint things using
sevenn/checkpoint.pye3nn >= 0.5.0, to ensure changed CG coeff later on
pandas as dependency
old v1 presets are removed, liquid electrolyte fine-tune yaml is added
Fixed#
More refactor for shift scale things + few bug fixes
Correctly shuffle training set when distributed training is enabled
D3 calculator system swap memory error fixed
D3 compile uses $HOME/.cache if package directory is not writable
[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
[0.10.3]#
Added#
SevenNet-l3i5, checkpoint, preset. (keywords: 7net-l3i5, sevennet-l3i5)
SevenNet-l3i5 test
Changed#
Now –help do not load unnecessary imports (fast!)
README
[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 dependency
data_divide_ration defaults to 0.0 (not used)
Fixed#
For torch version >= 2.4.0, Loading graph dataset no more raises warnings.
Raise error when unknown element is found (SevenNetCalculator)
[0.10.1]#
Added#
experimental
SevenNetAtomsDatasetwhich is memory efficient, can be enabled withdataset_type='atoms'Save meta data & statistics when the
SevenNetGraphDatasetsaves its data.
Changed#
Save checkpoint_0.pth (model before any training)
SevenNetGraphDataset._file_to_graph_list->SevenNetGraphDataset.file_to_graph_listRefactoring
SevenNetGraphDataset, skips computing statistics if it is loaded, more detailed loggingPrefer use .get when accessing config dict
Fixed#
Fix error when loading
SevenNetGraphDatasetwith other types of data (ex: extxyz) in one dataset
[0.10.0]#
SevenNet now have CI workflows using pytest and its coverage is 78%! Substantial changes in cli apps and some outputs.
Added#
[train_v2]: train_v2, with lots of refactoring + support
load_testset_path. Original routine is accessible:sevenn -m train_v1.[train_v2]:
SevenNetGraphDatasetreplaces oldAtomGrpahDataset, which extendsInMemoryDatasetof PyG.[train_v2]:
sevenn_graph_buildfor SevenNetGraphDataset. Previous .sevenn_data is accessible with –legacy option[train_v2]: Any number of additional datasets will be evaluated and recorded if it is given as ‘load_{NAME}set_path’ key (input.yaml).
‘Univ’ keyword for ‘chemical_species’
energy_key, force_key, stress_key options for
sevenn_graph_build, @thangcktOpenMPI distributed training @thangckt
Changed#
Read EFS of atoms from y_* keys of .info or .arrays dict, instead of caclculator results
Now
type_mapand requires_grad is hidden insideAtomGraphSequential, and don’t need to care about it.log.sevennandlc.csvautomatically 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.
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.
[0.9.5]#
Note#
This version is not stable, but I tag it as v0.9.5 before making further changes.
LAMMPS pair_e3gnn_parallel.* should be re-compiled for the below changes regarding LAMMPS parallel.
This is the first changelog and may not reflect all the changes.
Added#
Stress compute for LAMMPS sevennet parallel
sevenn_inferencenow takes .extxyz inputsevenn_inferencegives MAE errorExperimental
sevenn_inferenceon the fly graph build option
Changed#
[Breaking] Parallel LAMMPS model changed, old deployed parallel models will not work
[Breaking] Parallel LAMMPS takes the directory of potentials as input. Accordingly,
sevenn_get_model -pcreates a folder with potentials.[Breaking] Except for serial LAMMPS models, force and stress are computed from gradients of edge vectors, not positions.
Separate interaction block from model build
Add typing for most of functions
Remove clang pre-commit hook as it breaks lammps pair files
torch.loadwithweights_only=FalseLine length limit 80 -> 85
Refactor
Fixed#
Correct batch size for SevenNet-0(11July2024)
[0.9.4] - 2024-08-26#
Added#
D3 correction (contributed from dambi3613) for LAMMPS serial