Releases: FAIR-Chem/fairchem
Releases · FAIR-Chem/fairchem
fairchem_applications_cattsunami-0.2.0
What’s Changed
Documentation
- adding tutorial (#882) @brookwander
- adding link to full dataset (#869) @brookwander
Dependencies
fairchem_demo_ocpapi-0.2.0
fairchem_data_oc-0.1.0
What’s Changed
- Add solvent interface placement code (#765) @mshuaibii
- [BE] Remove large files from fairchem and add references to new location as needed (#761) @levineds
- [BE] Single ruff config (#751) @lbluque
- calc compatability with new configs (#724) @mshuaibii
- Package cleanup (#698) @lbluque
- PyPi CI workflows (#690) @lbluque
- cattsunami packaging (#678) @lbluque
- Fixes and updates to the documentation and website (#676) @zulissimeta
- Consolidate tests into a single folder (#682) @misko
- GA workflows update (#675) @lbluque
- Monorepo (#670) @misko
New Features / Enhancements
- add docstring. Add support for different pseudopotential path (#832) @mshuaibii
Bug Fixes
- explicitly define ispin for oc20 bulks (#840) @mshuaibii
- add tags, fix min_ab slab (#829) @mshuaibii
Deprecations
fairchem-core-1.2.0
What’s Changed
New Features / Enhancements
- Do not shadow built in
property
(#841) @lbluque - add script to port old equiv2 checkpoint+yaml to hydra version (#846) @misko
- Delete distributed option - Always use DDP (#833) @rayg1234
- Torch compile + export escn (#826) @rayg1234
- Add mean e to escn energy head (#828) @rayg1234
- add run group (#827) @rayg1234
- add option to apply mean to energy (#818) @rayg1234
- fix gemnet scaling factors fit.py and add a test (#819) @misko
- Add check to max num atoms (#817) @misko
- Use abs run_dir paths by default (#820) @rayg1234
- FM-v4 branch into main (#752) @misko
- refactor and deprecate old equiformerv2 (#812) @misko
- Fuse all hydras (#814) @rayg1234
- Rank2 tensor head (#792) @lbluque
- Explicitly initialize weights even if initialization method is "uniform" (#809) @misko
- Activation checkpoint equiformersv2 (#811) @rayg1234
- add resolution flag to escn (#804) @misko
Bug Fixes
fairchem_applications_cattsunami-0.1.0
What’s Changed
- Fix NEB doc notebooks (#773) @brookwander
- [BE] Single ruff config (#751) @lbluque
- calc compatability with new configs (#724) @mshuaibii
- fixing issue with one reaction (#712) @brookwander
- adding seed to md tutorial and ipynb (#710) @brookwander
- Package cleanup (#698) @lbluque
- fixing summary fig and dissociation scheme fig in the gitbook (#700) @brookwander
- PyPi CI workflows (#690) @lbluque
- cattsunami packaging (#678) @lbluque
fairchem_demo_ocpapi-0.1.0
What’s Changed
- [BE] Single ruff config (#751) @lbluque
- no ASE version pin (#739) @lbluque
- move ocpapi to integration tests (#736) @rayg1234
- Package cleanup (#698) @lbluque
- PyPi CI workflows (#690) @lbluque
- Consolidate tests into a single folder (#682) @misko
- GA workflows update (#675) @lbluque
- fix ocpapi test (#681) @misko
- Monorepo (#670) @misko
Dependencies
- Bump requests from 2.31.0 to 2.32.0 in /packages/fairchem-demo-ocpapi (#707) @dependabot
fairchem_core-1.1.0
What’s Changed
- Allow symlink'd experimental folder by using absolute and not resolved paths (#798) @zulissimeta
- fix issues with ddp/hydra and add tests (#796) @misko
- Wrap atom coordinates in ase.Atoms preprocessing (#783) @kyonofx
- Add an option to run PBC in single system mode (#795) @misko
- Move select models to backbone + heads format and add support for hydra (#782) @misko
- [BE] Remove large files from fairchem and add references to new location as needed (#761) @levineds
- clone so3 embedding object (#781) @rayg1234
- add expandable segments var (#775) @rayg1234
- Fix dataset logic (#771) @lbluque
- Relax config (#758) @mshuaibii
- [BE] Single ruff config (#751) @lbluque
- Make relaxation data more general (#714) @anuroopsriram
- Add utils to help run torch profiling (#754) @rayg1234
- Updated ODAC checkpoints & configs (#755) @anuroopsriram
- Hide wandb.watch behind flag (#747) @rayg1234
- Try removing importlib - breaks multiprocess pickling (#746) @rayg1234
- No longer need to specify train dataset loader when predicting (#731) @curtischong
- Log num params to W&B (#741) @rayg1234
- Config fix (#737) @lbluque
- calc compatability with new configs (#724) @mshuaibii
- update preprocess script (#726) @mshuaibii
- support logger entity (#717) @mshuaibii
- pass seed to sampler (#697) @misko
New Features / Enhancements
- Finetune Hydra (#797) @rayg1234
- (OTF) Normalization and element references (#715) @lbluque
- Balanced batch sampler+base dataset (#753) @misko
- add proxy and ssl support. (#778) @haruyuki-oda
- Add slurm qos setting (#757) @rayg1234
- Equiformers2 Graph Parallel (#740) @rayg1234
- Add option to launch distributed runs locally with >1 GPU (#733) @rayg1234
Bug Fixes
- Fix job resume on non-preemption type failures (#803) @rayg1234
- #806: Move data.db to s3 and download via download_large_files (#807) @levineds
Documentation
- #806: Move data.db to s3 and download via download_large_files (#807) @levineds
- [BE] lint/test/docs on PR and push to main (#742) @lbluque
Dependencies
fairchem_core-1.0.0
New repository structure!
We have restructured our codebase to have all of the FAIR Chemistry's code in one centralized repository of all its data, models, demos, and application efforts.
This release also includes releases for these other namespace packages
- fairchem_data_oc-0.0.1
- fairchem_demo_ocpapi-0.0.1
- fairchem_applications_cattsunami-0.0.1
What's Changed
New Features
- add unique key loader check to YAML to avoid problematic configs by @misko in #658
- [BE] PyPi integration + local model cache + Github actions by @misko in #623
- [BE] Add smoke test for [escn,gemnet,equiformer_v2] train+predict, Add optimization test for [escn,gemnet,equiformer_v2] by @misko in #640
Bug Fixes
- LBFGS batch size fix by @nimashoghi in #440
Other Changes
- Package scaling dictionary within GemNet-dT pretrained checkpoints by @abhshkdz in #419
- Updates bibtex entries for GemNet-OC, SCN, PaiNN by @abhshkdz in #420
- Update dimenet_plus_plus to use pyg activation function resolver by @zulissi in #427
- Use PBC configuration from ASE atoms objects by @emsunshine in #429
- Fixes GPU support with
OCPCalculator
(refs #424) by @abhshkdz in #430 - Use "deterministic" scatter on CUDA tensors if implemented by @abhshkdz in #438
- Support for using tag weights with L2MAE force loss by @abhshkdz in #439
- Zero out NaNs, if any, in the loss by @abhshkdz in #441
- Updating floating point precision for OC22/total_energy predictions and enabling OC22 challenge submission file generation by @wood-b in #421
- fix tag description by @mshuaibii in #444
- Upgrades to pytorch 1.13, cuda 11.6, pyg 2.2.0 by @abhshkdz in #442
- Relaxation storage optimizations by @mshuaibii in #445
- Support dataset sharding by @mshuaibii in #446
- Catch OOM during relaxations by @mshuaibii in #447
- Improper OOM merge fix by @mshuaibii in #451
- Warnings for missing scale files during validation by @zulissimeta in #450
- SCN checkpoint release + missing AdsorbML checkpoints by @mshuaibii in #453
- Adds scaling factors to GNOC-All-MD checkpoint and updates paths for some checkpoints by @abhshkdz in #456
- Updating flags and docs for training on total energy targets by @wood-b in #455
- eSCN checkpoints+configs by @mshuaibii in #457
- eSCN CPU support by @mshuaibii in #465
- LMDB folder fix by @zulissimeta in #476
- Revert "LMDB folder fix" by @abhshkdz in #480
- Allow models to include degenerate edges by @emsunshine in #467
- Adds init files to enable portability with
pip install
without the-e
flag by @abhshkdz in #490 - Adds GemNet-OC checkpoint trained on OC20+OC22 total energies with
enforce_max_neighbors_strictly=False
by @abhshkdz in #495 - Fixes #501: don't cast a jagged list as np.array by @zulissimeta in #500
- Maintenance updates by @abhshkdz in #506
- clarify lmdb creation in tutorial by @brookwander in #509
- Add ASE Datasets by @emsunshine in #492
- LMDB-based ASE dataset, generic targets, target metadata guessing by @zulissimeta in #513
- Add type annotations by @r-barnes in #519
- Add more type annotations by @r-barnes in #522
- eSCN cpu fix by @mshuaibii in #523
- EquiformerV2 support by @abhshkdz in #518
- Add isort to CI by @r-barnes in #527
- ocp calc amp fix by @mshuaibii in #529
- Remove unused imports and sort imports by @r-barnes in #528
- Skipping scheduler setup in EquiformerV2 trainer if train_loader isn't defined by @abhshkdz in #541
- Add autoflake to pre-commit to eliminate unused imports automatically by @r-barnes in #534
- More type annotations by @r-barnes in #544
- Add more types, handle empty registries gracefully by @r-barnes in #545
- More type annotations by @r-barnes in #546
- Use logging instead of print by @r-barnes in #551
- More type annotations by @r-barnes in #548
- Bug Fixes for Tutorial by @emsunshine in #525
- Typecast scheduler params to int + fix slurm experiment logging by @abhshkdz in #555
- Adds a unit test for using OCP models with the ASE calculator by @abhshkdz in #565
- Fixes typo in loading checkpoints in
BaseTrainer
by @abhshkdz in #567 - Fixes Codecov badge URL by @abhshkdz in #568
- Adds boolean for whether to use strict max_neighbors in EquiformerV2 by @abhshkdz in #571
- GemNet-GP dense layer bugfix (fixes #573) by @abhshkdz in #574
- Adds an FAQ by @abhshkdz in #564
- Type fixes for using the MultistepLR scheduler by @abhshkdz in #578
- [Minor] Support for passing in stats to Equiformer V2 model by @anuroopsriram in #576
- Support IS2RE-Direct Training with ASE Read Datasets by @emsunshine in #579
- Fixes nested YAML config loading from the ASE calculator by @abhshkdz in #585
- Adds optional per-element linear reference coefficients to EquiformerV2 by @abhshkdz in #584
- Release EquiformerV2 checkpoint trained on OC22 by @abhshkdz in #586
- Changes for ODAC Release by @anuroopsriram in #588
- Update odac data link by @anuroopsriram in #595
- Update EqV2 31M ODAC checkpoint by @abhshkdz in #599
- Add natoms to ASE datasets by @emsunshine in #598
- DDEC release and IS2RS clarification for ODAC23 by @anuroopsriram in #602
- Unified OCP Trainer by @mshuaibii in #520
- Fix edge_index check in make_lmdb_sizes.py by @abhshkdz in #611
- cleanup+documentation by @mshuaibii in #615
- fix config spacing by @mshuaibii in #616
- Set default val and test dataset class to be same as train by @abhshkdz in #618
- bump miniconda version by @misko in #627
- Fix amp scale factor for loss by @janiceblue in #617
- Release ODAC23 data in extxyz format by @anuroopsriram in #625
- add seed option for calculator by @misko in #624
- Add in tests for coefficient mapping, mprimary, lprimary by @misko in #626
- Minor fix in run_relaxations by @AdeeshKolluru in #636
- Ase dataset updates by @lbluque in #622
- add step(batch) stateful sampler by @misko in #639
- Add warning and optimize sampler per @lbluque suggestion by @misko in #642
- lin ref in ase datasets by @lbluque in #643
- change _compute_metrics not to modify callers version by @misko in #645
- [BE] Set weights and biases as default logger by @janiceblue in #647
- Invert experimental import logic to opt-in by @levineds in #651
- do not add empty lines to include_dirs by @lbluque in https://...
fairchem_core-1.0.0b0
What's Changed
New Features
- add unique key loader check to YAML to avoid problematic configs by @misko in #658
- [BE] PyPi integration + local model cache + Github actions by @misko in #623
- [BE] Add smoke test for [escn,gemnet,equiformer_v2] train+predict, Add optimization test for [escn,gemnet,equiformer_v2] by @misko in #640
Bug Fixes
- LBFGS batch size fix by @nimashoghi in #440
Other Changes
- Package scaling dictionary within GemNet-dT pretrained checkpoints by @abhshkdz in #419
- Updates bibtex entries for GemNet-OC, SCN, PaiNN by @abhshkdz in #420
- Update dimenet_plus_plus to use pyg activation function resolver by @zulissi in #427
- Use PBC configuration from ASE atoms objects by @emsunshine in #429
- Fixes GPU support with
OCPCalculator
(refs #424) by @abhshkdz in #430 - Use "deterministic" scatter on CUDA tensors if implemented by @abhshkdz in #438
- Support for using tag weights with L2MAE force loss by @abhshkdz in #439
- Zero out NaNs, if any, in the loss by @abhshkdz in #441
- Updating floating point precision for OC22/total_energy predictions and enabling OC22 challenge submission file generation by @wood-b in #421
- fix tag description by @mshuaibii in #444
- Upgrades to pytorch 1.13, cuda 11.6, pyg 2.2.0 by @abhshkdz in #442
- Relaxation storage optimizations by @mshuaibii in #445
- Support dataset sharding by @mshuaibii in #446
- Catch OOM during relaxations by @mshuaibii in #447
- Improper OOM merge fix by @mshuaibii in #451
- Warnings for missing scale files during validation by @zulissimeta in #450
- SCN checkpoint release + missing AdsorbML checkpoints by @mshuaibii in #453
- Adds scaling factors to GNOC-All-MD checkpoint and updates paths for some checkpoints by @abhshkdz in #456
- Updating flags and docs for training on total energy targets by @wood-b in #455
- eSCN checkpoints+configs by @mshuaibii in #457
- eSCN CPU support by @mshuaibii in #465
- LMDB folder fix by @zulissimeta in #476
- Revert "LMDB folder fix" by @abhshkdz in #480
- Allow models to include degenerate edges by @emsunshine in #467
- Adds init files to enable portability with
pip install
without the-e
flag by @abhshkdz in #490 - Adds GemNet-OC checkpoint trained on OC20+OC22 total energies with
enforce_max_neighbors_strictly=False
by @abhshkdz in #495 - Fixes #501: don't cast a jagged list as np.array by @zulissimeta in #500
- Maintenance updates by @abhshkdz in #506
- clarify lmdb creation in tutorial by @brookwander in #509
- Add ASE Datasets by @emsunshine in #492
- LMDB-based ASE dataset, generic targets, target metadata guessing by @zulissimeta in #513
- Add type annotations by @r-barnes in #519
- Add more type annotations by @r-barnes in #522
- eSCN cpu fix by @mshuaibii in #523
- EquiformerV2 support by @abhshkdz in #518
- Add isort to CI by @r-barnes in #527
- ocp calc amp fix by @mshuaibii in #529
- Remove unused imports and sort imports by @r-barnes in #528
- Skipping scheduler setup in EquiformerV2 trainer if train_loader isn't defined by @abhshkdz in #541
- Add autoflake to pre-commit to eliminate unused imports automatically by @r-barnes in #534
- More type annotations by @r-barnes in #544
- Add more types, handle empty registries gracefully by @r-barnes in #545
- More type annotations by @r-barnes in #546
- Use logging instead of print by @r-barnes in #551
- More type annotations by @r-barnes in #548
- Bug Fixes for Tutorial by @emsunshine in #525
- Typecast scheduler params to int + fix slurm experiment logging by @abhshkdz in #555
- Adds a unit test for using OCP models with the ASE calculator by @abhshkdz in #565
- Fixes typo in loading checkpoints in
BaseTrainer
by @abhshkdz in #567 - Fixes Codecov badge URL by @abhshkdz in #568
- Adds boolean for whether to use strict max_neighbors in EquiformerV2 by @abhshkdz in #571
- GemNet-GP dense layer bugfix (fixes #573) by @abhshkdz in #574
- Adds an FAQ by @abhshkdz in #564
- Type fixes for using the MultistepLR scheduler by @abhshkdz in #578
- [Minor] Support for passing in stats to Equiformer V2 model by @anuroopsriram in #576
- Support IS2RE-Direct Training with ASE Read Datasets by @emsunshine in #579
- Fixes nested YAML config loading from the ASE calculator by @abhshkdz in #585
- Adds optional per-element linear reference coefficients to EquiformerV2 by @abhshkdz in #584
- Release EquiformerV2 checkpoint trained on OC22 by @abhshkdz in #586
- Changes for ODAC Release by @anuroopsriram in #588
- Update odac data link by @anuroopsriram in #595
- Update EqV2 31M ODAC checkpoint by @abhshkdz in #599
- Add natoms to ASE datasets by @emsunshine in #598
- DDEC release and IS2RS clarification for ODAC23 by @anuroopsriram in #602
- Unified OCP Trainer by @mshuaibii in #520
- Fix edge_index check in make_lmdb_sizes.py by @abhshkdz in #611
- cleanup+documentation by @mshuaibii in #615
- fix config spacing by @mshuaibii in #616
- Set default val and test dataset class to be same as train by @abhshkdz in #618
- bump miniconda version by @misko in #627
- Fix amp scale factor for loss by @janiceblue in #617
- Release ODAC23 data in extxyz format by @anuroopsriram in #625
- add seed option for calculator by @misko in #624
- Add in tests for coefficient mapping, mprimary, lprimary by @misko in #626
- Minor fix in run_relaxations by @AdeeshKolluru in #636
- Ase dataset updates by @lbluque in #622
- add step(batch) stateful sampler by @misko in #639
- Add warning and optimize sampler per @lbluque suggestion by @misko in #642
- lin ref in ase datasets by @lbluque in #643
- change _compute_metrics not to modify callers version by @misko in #645
- [BE] Set weights and biases as default logger by @janiceblue in #647
- Invert experimental import logic to opt-in by @levineds in #651
- do not add empty lines to include_dirs by @lbluque in #656
- [BE] Upgrade all dependencies by @lbluque in #654
- Monorepo by @misko in #670
- fix install order in env.gpu.yml so pyg does not mess things up by @lbluque in #673
- fix ocp readme links by @mi...
v0.1.0
Major features and improvements
- Release of the OC22 dataset (#358) focused on oxide electrocatalysis (paper, blog) and pretrained model weights (#414)
- GemNet-OC implementation and pretrained model weights (#363) (paper)
- Spherical Channel Network implementation (#362) (paper)
- OC20 Bader charge data (#360)
- PaiNN implementation and pretrained model weights (#344) (paper)
- OCP tutorial (#314, #265)
- Script to render relaxation trajectory GIFs (#259)
- Load balancing batches across GPUs (#267, #277)
- Support for cutoff radius beyond 1 unit cell across all directions in
radius_graph_pbc
(#268, #394) - Support for evaluating relaxations during S2EF training (#299)
- Up to 5x speedup in running relaxations (#309)
- 25% reduction in memory usage for inference of direct-force models (#323)
- Atomwise L2 loss (#343, #346)
Breaking changes
- DimeNet++ triplet calculation fix (#270)
- This breaks backward compatibility to previously trained DimeNet++ models, though the change in performance is very small (< 0.5% relative).
Other changes
- Support for ignoring specified directories within
experimental
by @abhshkdz in #257 - bugfix: remove epoch arg from validate by @mshuaibii in #261
- Import logger when setting up imports; fixes #262 by @abhshkdz in #263
- setup v3 by @mshuaibii in #264
- bugfix: update model name in gemnet fit_scaling by @wood-b in #274
- Reduce test_cosine_similarity check to 2 decimals by @gasteigerjo in #276
- Makes Ray Tune optional and fixes submitit checkpointing bug by @wood-b in #272
- add missing spinconv import by @mshuaibii in #278
- challenge submission script by @mshuaibii in #279
- Correctly calculate distributed loss average by @gasteigerjo in #269
- Adds download link to the challenge dataset by @abhshkdz in #281
- explicit cpu map by @mshuaibii in #282
- missing spinconv device definition by @mshuaibii in #285
- Fix shared parameter gradient scaling by @gasteigerjo in #283
- update oc20 data mapping by @mshuaibii in #288
- bugfix loading best_checkpoint.pt by @mshuaibii in #289
- bugfix: checkpoint with no val set Ref. #290 by @mshuaibii in #291
- add data-path arg to download script by @mshuaibii in #294
- Changed default trainer to energy by @AdeeshKolluru in #298
- Loads checkpoint cleanly for non DDP checkpoint and parallelized inference by @AdeeshKolluru in #295
- Updated OCPCalculator to not require config and data paths by @AdeeshKolluru in #297
- Added modified K-hot elemental embeddings from QMOF CGCNN repo (QMOF_KHOT_EMBEDDINGS) by @EricMusa in #296
- change circle resource class by @mshuaibii in #305
- swap checksums by @mshuaibii in #303
- OCPCalc Update: uses otf_graph by default and takes in dictionary as well by @AdeeshKolluru in #304
- Hotfix: Turns otf_graph True for OCPCalc by @AdeeshKolluru in #306
- Fixed logger_project config not working by @nimashoghi in #301
- Adds SpinConv, GemNet-dT checkpoints trained on S2EF-2M by @abhshkdz in #308
- no-pbc gemnet support by @mshuaibii in #311
- remove ipynb from language stats by @mshuaibii in #318
- demjson env fix by @mshuaibii in #321
- Added support for PyTorch Geometric 2.0's updated Data format by @nimashoghi in #316
- PyTorch 1.9.0 by @mshuaibii in #322
- add universal dataset reader by @mshuaibii in #310
- Updates
RandomRotate
to return correct rotation matrices following PyG bugfix by @abhshkdz in #325 - Log unused parameter names on DDP errors by @nimashoghi in #317
- PyG 2 Support Regression by @nimashoghi in #327
- Update
conditional_grad
decorator to usefunctools.wraps
on the original function by @nimashoghi in #326 - bugfix for dict dataset definition by @mshuaibii in #329
- Added an option to disable DDP for relaxations by @anuroopsriram in #312
- OCPCalculator CUDA support by @mshuaibii in #333
- gemnet scaling script fix by @mshuaibii in #339
- Removes extra context on GPU0 for distributed training by @wood-b in #342
- Bugfix in best val metric check for checkpointing by @abhshkdz in #345
- Readme update by @abhshkdz in #347
- Make sure best val metric is loaded when restoring checkpoint by @abhshkdz in #349
- bugfix PR#343 by @mshuaibii in #351
- Update environment installation by @mshuaibii in #352
- fix to gemnet scaling.py to detect if file does not exist and proceed… by @jmusiel in #340
- Fixing cell_offsets error in DimeNet++ for use_pbc=False and otf_graph=False by @aarongarrison in #350
- Bugfix to #349 by @abhshkdz in #353
- Make sure pos_relaxed and y_relaxed are not None in val run_relaxations by @abhshkdz in #356
- Correct OC22 download address by @KruskalLin in #361
- Additional OC22 configs + example configs by @mshuaibii in #359
- Remove old
is_vis
flag from fit_scaling by @abhshkdz in #365 - Bugfix: Data created with PyG>2.0 by @mshuaibii in #367
- Catch missing
edge_index
TypeError in data_list_collater (+ suppress a few//
warnings) by @abhshkdz in #368 - GemNet-OC readme with test metrics by @abhshkdz in #369
- Implementation of graph parallel training by @anuroopsriram in #364
- Relay keyword arguments through from
OCPDataParallel
to the model by @abhshkdz in #370 - Covers all checkpoint loading mismatch possibilities by @AdeeshKolluru in #371
- Log correct job id for slurm arrays by @abhshkdz in #372
- Fixes PaiNN's stability issues by @AdeeshKolluru in #373
- Circle CI - merge conda install and create env runs by @AdeeshKolluru in #374
- Adds otf_graph flag for GemNet-OC by @AdeeshKolluru in #377
- Consistent graph generation implementation across models by @AdeeshKoll...