Skip to content

【Hackathon 10th Spring No.15】DM2模型复现#277

Open
yu0809 wants to merge 2 commits into
PaddlePaddle:developfrom
yu0809:codex/dm2-model
Open

【Hackathon 10th Spring No.15】DM2模型复现#277
yu0809 wants to merge 2 commits into
PaddlePaddle:developfrom
yu0809:codex/dm2-model

Conversation

@yu0809

@yu0809 yu0809 commented May 2, 2026

Copy link
Copy Markdown

What changed

  • Add a Paddle implementation of the DM2 structure denoising model, including the NequIP-style denoiser, noise/rattle utilities, edge down-selection, training forward pass, and iterative sampling path.
  • Add an ASE-backed DM2StructureDataset and DM2 SiO2 example configuration under structure_generation/configs/dm2.
  • Register DM2 model and dataset exports, document the new structure generation entry, and add a focused DM2 smoke test.
  • Fix Irreps sorting in the local e3nn Gate helper so DM2's gate construction works at runtime.

Related

Validation

  • python3 -m py_compile ppmat/models/common/e3nn/nn/_gate.py ppmat/models/dm2/dm2.py ppmat/datasets/dm2_dataset.py test/test_dm2_model.py
  • Parsed structure_generation/configs/dm2/dm2_sio2.yaml with PyYAML
  • Ran a targeted DM2 runtime smoke test covering model construction, finite forward loss, and iterative sampling output shapes
  • git diff --cached --check

@paddle-bot

paddle-bot Bot commented May 2, 2026

Copy link
Copy Markdown

Thanks for your contribution!

@paddle-bot paddle-bot Bot added the contributor External developers label May 2, 2026
@yu0809 yu0809 changed the title Add DM2 structure denoising model 【Hackathon 10th Spring No.15】DM2模型复现 May 2, 2026

yu0809 commented May 2, 2026

Copy link
Copy Markdown
Author

Update after commit 629b630:

  • Moved DM2 diffusion/noise scheduling utilities into ppmat/schedulers via DM2DenoisingScheduler.
  • Added DM2 configs for the RFC-covered systems: dm2_sio2_unconditional.yaml, dm2_sio2_conditional.yaml, and dm2_cuzr.yaml.
  • Added RDF Wasserstein / coordination metric hook for amorphous generation evaluation.
  • Updated structure_generation/sample.py so Sample.sample_params is honored by dataloader-based sampling.
  • Extended DM2 tests for scheduler defaults, fixed-sigma noise, sampling output shape, and optional metric smoke.

Validation run locally:

  • python3 -m py_compile ppmat/schedulers/scheduling_dm2.py ppmat/schedulers/__init__.py ppmat/models/dm2/dm2.py ppmat/datasets/dm2_dataset.py ppmat/metrics/dm2_metric.py ppmat/metrics/__init__.py structure_generation/sample.py test/test_dm2_model.py
  • Parsed all DM2 YAML configs with PyYAML.
  • git diff --check
  • Targeted DM2 runtime smoke: model construction, finite forward loss, scheduler defaults, fixed-sigma noise, and iterative sampling output shapes.
  • Metric smoke: RDF Wasserstein and Si-O coordination on a tiny ASE structure.
  • Real-data shape smoke: official DM2 300-atom SiO2 LAMMPS demo file parses and forward loss is finite.

Note: the code/config/metric path is now in place for RFC review. Final Hackathon numeric acceptance still needs the official uploaded data/checkpoint/log artifacts and long-run parity reports for forward diff, 2+ epoch loss alignment, and sampling metrics.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这个文件的可视化,表格这里多了下划线,辛苦检查下

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

辛苦参考其他readme修改下该文件的格式

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里为什么新增了dm2的dataset

instructions += [tuple(range(i, i + len(irreps_out)))]
i += len(irreps_out)
assert len(irreps_in) == i, (len(irreps_in), i)
irreps_in, p, _ = paddle.sort(x=irreps_in), paddle.argsort(x=irreps_in)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里为什么修改

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants