Add Spin/Charge System Conditioning to PET#1040
Add Spin/Charge System Conditioning to PET#1040JonathanSchmidt1 wants to merge 9 commits intometatensor:mainfrom
Conversation
|
Ps: Sorry about the undescriptive name seems like I cant change it or I am too stupid ^^ |
| if "charge" in system_options: | ||
| charge_key = system_options["charge"]["key"] | ||
| self.charge_array = MemmapArray( | ||
| path / f"{charge_key}.bin", (self.ns,), "float32", mode="r" |
There was a problem hiding this comment.
Do we already have .bin files in the dataset?
There was a problem hiding this comment.
I think so
There was a problem hiding this comment.
ok. Then this would mainly need some documentation in the user doc, saying that we'll check for data at this key and put it in the system under this name
|
cscs-ci run |
|
|
||
| class Classifier(ModelInterface[ModelHypers]): | ||
| __checkpoint_version__ = 1 | ||
| __checkpoint_version__ = 2 |
There was a problem hiding this comment.
@frostedoyster is this needed? From the last ml-devel meeting I understood that in principle changes to an architecture's checkpoint shouldn't need a version upgrade on the wrapper.
I think what needs to be done is to simply upgrade the checkpoint file with the new file, without any renaming, but let's see what Filippo says.
(same for llpr)
|
Also, I think passing global data in general is something very useful. It would be nice if the user could pass whatever global data and it would be automatically embedded into PET. Could we not hardcode it to I'm thinking that the input could look something like: systems:
read_from: ...
...
features:
- key: spin
per_atom: false # Maybe not needed and can be inferred?
type: spin # So that min-max gets automatically assigned (?)Or maybe |
|
Discussed a bit with @pfebrer . We could generalize it but we have to take into account that the implementation only supports integer embeddings right now and we might also want to take the embedding specs already existing in MACE into account. |
|
Yes, regarding this
the thing is that as they are right now, I think the issue is that this situation requires something that had never happened in metatrain: we need to use additional inputs (not just coordinates and atomic numbers). Maybe |
Add charge/spin system conditioning module that has extra embeddings for charge and spin that are added to node embeddings at each message passing step
Add respective hyperparameters and dataset options
Contributor (creator of pull-request) checklist
Maintainer/Reviewer checklist
📚 Documentation preview 📚: https://metatrain--1040.org.readthedocs.build/en/1040/