deepmodeling / deepmodeling/dpgen

[Feature Request] support cross-architecture ensembles by supporting per-model training configurations

Open
#1,968 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
399
Forks
198
Avg merge
16d 12h
Merged PRs (30d)
41

Description

## Motivation

DPGEN model deviation can consume multiple model files, but the training side currently accepts one `default_training_param` and copies the same architecture to all `numb_models`, changing only random seeds. This prevents a first-class DPA2/DPA3/DPA4 committee from being trained and managed by one DPGEN workflow.

## Proposed behavior

Allow one training configuration per committee member while keeping the existing single-dict form backward compatible. A possible interface is:

```json
"default_training_param": [
{"model": {"descriptor": {"type": "dpa2"}}, "...": "..."},
{"model": {"descriptor": {"type": "dpa3"}}, "...": "..."},
{"model": {"descriptor": {"type": "dpa4"}}, "...": "..."}
]
```

Minimum behavior:

- the list length must equal `numb_models`;
- deep-copy and normalize each member independently, including seeds, training data, type map, restart/reuse, and loss settings;
- preserve current behavior when a single dict is supplied;
- validate committee compatibility before model deviation, including type-map order, cutoff, output class, and fparam/aparam dimensions;
- add an end-to-end DPA2 + DPA3 + DPA4 regression test.

## Current limitation

The current generator reads one `default_training_param` and mutates/copies it for every model, so users can only obtain same-architecture, different-seed committees without managing heterogeneous models externally.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the training-side generator path that reads default_training_param and trace how it copies, normalizes, and assigns settings across numb_models. Review the model-deviation compatibility checks and existing end-to-end tests; done means both the single-dict form and per-member configurations work, with validation and a DPA2+DPA3+DPA4 regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.