Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Passing ensemble predictions to MD engines #650

Open
frostedoyster opened this issue Jun 12, 2024 · 3 comments · May be fixed by #654
Open

Passing ensemble predictions to MD engines #650

frostedoyster opened this issue Jun 12, 2024 · 3 comments · May be fixed by #654

Comments

@frostedoyster
Copy link
Contributor

frostedoyster commented Jun 12, 2024

Given #648, I thought it was a good idea to open an issue for the forwarding of ensemble predictions to MD engines, which we will need relatively soon.

The design could be as simple as having a new optional property name (something like ensemble_member) for any registered output in metatensor.torch.atomistic, and then passing this to the metatensor interface to the MD engine, which can decide how to handle it.
i-PI should be well-equipped for this. ASE is also very customizable so we should be able to make the ensemble predictions available to the user relatively easily. I don't know LAMMPS very well, but perhaps we could code something in our driver, or perhaps leave it alone and error out if ensemble predictions are received.

@Luthaf @ceriottm

Copy link
Contributor

In i-PI this should be implemented at the level of the metatensor driver, but yes should be feasible. Davide and Matthias are best positioned to help.

@Luthaf
Copy link
Contributor

Luthaf commented Jun 13, 2024

The design could be as simple as having a new optional property name (something like ensemble_member) for any registered property in metatensor.torch.atomistic, and then passing this to the metatensor interface to the MD engine, which can decide how to handle it.

I'm not sure I understand what you mean here. If we are changing property name in the output, this will have to be a different TensorMap. I also don't think that changing behavior based on property names is desirable, since this makes the whole thing more complex to explain to users and engine developers alike.


My favorite solution here would be to do another output name alltogether, with its own specification. So for example ensemble_energy, which is similar to energy except it has multiple properties per sample. For maximal compatibility, we should also encourage any model that can do ensemble_energy to also have a energy output, that will be used by any engine that don't know or don't care about ensembles.


In general, what's the use case for this? Do we actually need to full ensemble of predictions, or will this always be used to compute the mean and standard deviation for uncertainty quantification purposes?

@frostedoyster
Copy link
Contributor Author

frostedoyster commented Jun 13, 2024

@ceriottm can expand, but passing all the individual predictions is necessary.
And yes, I meant an optional property name that may or may not be there. It's more complicated, but it would give us ensembles for free on any output that we might register later on. Registering a different output like energy_ensemble is also a possibility

@frostedoyster frostedoyster linked a pull request Jun 16, 2024 that will close this issue
4 tasks
@frostedoyster frostedoyster linked a pull request Jun 16, 2024 that will close this issue
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants