Major Changes:
- Improved memory handling of ML models within
modelExporters,modelAdjusters, loading viacustomModel, and others via changes including explicit deletion of intermediate model state references and explicit GC calls. Overall, users of certain workloads should see RAM requirements to go down 2x and observe some execution speed-up as well! - Implemented a more robust and reliable ML model download from Zenodo that mitigates download issues faced by users fetching them from cloud environments like high-performance computers (HPC), GitHub Actions, and cloud providers.
- Switch the default
OPTIMADEprovider of DFT data frommp(Materials Project) to Alexandria because it provides a more reliable endpoint (mpserves 0 structures as of writing) and a more robust compositional space coverage. - Improved runtime printouts and docstrings all across
core,modelAdjusters, andmodelExporters; as well as a number of runtime assertions within them to make sure issues are caught early, especially in custom setups where users swap data or models in the middle of typical workflows. - A number of minor logic improvements and enforcement of more deterministic behavior (in edge cases that didn't cause reported issues) across
findCompatibleModels,writeDescriptorsToNPY,writeDescriptorsToCSV,calculate_KS2022_randomSolutions,runModels_dilute, and others.
Minor Changes:
- Prevent
loadModelCustomoverloading newer versions of a model if they shared the same given name, even if the model string was different. - Updated the
READMEand documentation. - Several changes futureproofing
pySIPFENNin terms of both Python and core dependencies.
Full Changelog: v0.17.0...v0.18.0