(7/n) Check out our paper and code:
Paper: arxiv.org/abs/2506.17139
Code + models: github.com/noegroup/Sco...
And also, our self-contained notebooks!
Colab (JAX):
colab.research.google.com/drive/1r3DGO...
Colab (PyTorch):
colab.research.google.com/drive/1rbcND...
#NeurIPS2025 #Diffusion #MD
(3/n) The root issue is that at very small diffusion times, diffusion models are inaccurate.
The loss is large, and the models violate the Fokker-Planck equation, meaning the evolution of the modelโs density and its score disagree.
When that happens, the recovered energy ๐ผ(x) is not meaningful.
(5/n) With this, we can run coarse-grained Langevin dynamics directly, without the need for any priors or force labels.
This works across biomolecular systems including fast-folding proteins like Chignolin and BBA.
Here is a comparison with and without our regularization:
(2/n) The problem: classical diffusion models learn scores that reproduce equilibrium samples, but the corresponding energy-based parameterization is not consistent.
So if you try to use the learned energy to derive forces, the dynamics are wrong, even if the samples themselves look fine.
(4/n) Our solution:
We train an energy-based diffusion model and regularize it to satisfy the FokkerโPlanck equation.
This enforces consistency between:
- The density recovered via denoising
- The potential energy learned at t = 0
Result: the same model can be used for sampling AND simulation.
(1/n) Can diffusion models simulate molecular dynamics instead of just generating independent samples?
In our NeurIPS 2025 paper, we train energy-based diffusion models that can do both:
- Generate independent samples
- Learn the underlying potential ๐ผ
๐งต๐
Paper: arxiv.org/abs/2506.17139
Michael Plainer
Michael Plainer
Michael Plainer
Michael Plainer
Michael Plainer
Michael Plainer
Michael Plainer
Ever get tired of tiny timesteps bottlenecking your MD simulations?
We show how to train a model for large-timestep Hamiltonian dynamics directly on standard MLFF datasets. ๐ก๐ผ ๐ฟ๐ฒ๐ณ๐ฒ๐ฟ๐ฒ๐ป๐ฐ๐ฒ ๐๐ฟ๐ฎ๐ท๐ฒ๐ฐ๐๐ผ๐ฟ๐ถ๐ฒ๐, ๐ป๐ผ ๐๐ป๐ฟ๐ผ๐น๐น๐ถ๐ป๐ด, ๐ป๐ผ ๐๐ฒ๐ฎ๐ฐ๐ต๐ฒ๐ฟ needed!
๐งต๐