一键导入
deepmd-train
Train DeePMD-kit machine learning potentials. Covers DPA-3 (recommended), se_e2_a (legacy), and fine-tuning from pretrained models.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Train DeePMD-kit machine learning potentials. Covers DPA-3 (recommended), se_e2_a (legacy), and fine-tuning from pretrained models.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create and manage computational chemistry workflows with CatGo. Supports VASP, CP2K, ORCA, MLP, LAMMPS. Build OER/HER/CO2RR workflows, geometry optimization, frequency analysis, Gibbs energy calculations.
Run and resume the CatGo md-orchestration poll loop — delegate each poll to a subagent (keep main context lean), verify convergence by force, auto-advance each converged species per-species (pipeline, not barrier), and resume a campaign from disk after context compaction / new session. Use when driving or resuming a campaign's job-watch loop. Pairs with catgo-campaign.
Run a CatGo file-first md-orchestration "campaign" — a multi-step / high-throughput computational-materials study (e.g. SAA HER screening) driven from a human-readable folder + markdown tree, not the DB workflow engine. Use when the user says "跑一个 campaign", "md 模式跑", "high-throughput screening", or wants an agent-in-the-loop study with stages/funnel/analysis/report. Requires `catgo` on PATH.
Route computational chemistry requests to the correct software and task skill. Entry point for all CatGo agent interactions.
Drive a file-first, agent-in-the-loop computational campaign via a folder + markdown tree (no DB). Use when the user opts out of the visual workflow engine.
Authoring conventions for CatGo md-orchestration campaigns — progressive markdown, README+INDEX pairs and keeping them current, logging interventions to LESSONS, human-readable (never-hash) names, and the progressive (top→stage→calc) plan. Use when creating/editing any campaign markdown (plan/README/INDEX/STATUS/LESSONS) so the file tree stays navigable and resumable. Pairs with catgo-campaign.
| name | deepmd-train |
| description | Train DeePMD-kit machine learning potentials. Covers DPA-3 (recommended), se_e2_a (legacy), and fine-tuning from pretrained models. |
| compatibility | Requires deepmd-kit >= 3.0, GPU with CUDA. Training data in dpdata format. |
| catalog-hidden | true |
data/dpdata/SKILL.md to convert from VASP/QE)dp --version)data/
├── train/
│ ├── set.000/
│ │ ├── coord.npy # Atomic coordinates (natoms*3,)
│ │ ├── energy.npy # Total energy (1,)
│ │ ├── force.npy # Forces (natoms*3,)
│ │ ├── box.npy # Cell vectors (9,)
│ │ └── virial.npy # Stress tensor (optional, 9,)
│ └── type.raw # Atom type indices
└── valid/
└── set.000/
└── ...
catgo_workflow_engine(action="create", params={"name": "DeePMD DPA-3 training"})
catgo_workflow_engine(action="add_task", params={
"workflow_id": "wf_xxx",
"task_type": "shell",
"name": "dp_train",
"command": "dp train input.json 2>&1 | tee train.log",
"input_files": {
"input.json": "<training config>"
},
"system_name": "dp_model"
})
catgo_workflow_engine(action="add_task", params={
"workflow_id": "wf_xxx",
"task_type": "shell",
"name": "dp_freeze",
"command": "dp freeze -o frozen_model.pb",
"depends_on": ["dp_train"],
"system_name": "dp_model"
})
{
"model": {
"type_map": ["Ti", "O"],
"descriptor": {
"type": "dpa3",
"rcut": 6.0,
"rcut_smth": 0.5,
"sel": "auto",
"neuron": [25, 50, 100],
"n_interaction": 3,
"n_head": 4
},
"fitting_net": {
"type": "ener",
"neuron": [240, 240, 240]
}
},
"training": {
"training_data": {
"systems": ["./data/train"],
"batch_size": "auto"
},
"validation_data": {
"systems": ["./data/valid"],
"batch_size": "auto"
},
"numb_steps": 1000000,
"disp_freq": 1000,
"save_freq": 10000
},
"learning_rate": {
"type": "exp",
"start_lr": 1e-3,
"stop_lr": 1e-8,
"decay_steps": 5000
},
"loss": {
"type": "ener",
"start_pref_e": 0.02,
"limit_pref_e": 1.0,
"start_pref_f": 1000,
"limit_pref_f": 1.0,
"start_pref_v": 0.0,
"limit_pref_v": 0.0
}
}
Replace the descriptor block:
"descriptor": {
"type": "se_e2_a",
"rcut": 6.0,
"rcut_smth": 0.5,
"sel": [46, 92],
"neuron": [25, 50, 100],
"axis_neuron": 16
}
sel must list the max neighbor count per element type. Use dp neighbor-stat to determine.
# Download pretrained model (e.g., from AIS Square)
# Then fine-tune:
dp train input.json --finetune pretrained.pb 2>&1 | tee finetune.log
Reduce numb_steps to 100000-200000 and start_lr to 1e-4 for fine-tuning.
| Parameter | Typical value | Notes |
|---|---|---|
| rcut | 6.0-9.0 A | Interaction cutoff; larger = more accurate but slower |
| sel | auto or [N1, N2] | Max neighbors per type; use dp neighbor-stat |
| numb_steps | 500K-2M | More data needs more steps |
| start_lr | 1e-3 | Learning rate; reduce for fine-tuning |
| batch_size | auto | Let DeePMD choose based on system size |
| start_pref_f | 1000 | Force weight starts high, decays to limit_pref_f |
sel, training crashes. Always run dp neighbor-stat first.start_pref_v = 0, limit_pref_v = 0.type_map must be consistent across all training systems and inference.dp freeze to create a portable .pb file.