Skip to content

Devel - #232

Merged
ruoyuwang1995nya merged 21 commits into
mainfrom
devel
Aug 14, 2026
Merged

Devel#232
ruoyuwang1995nya merged 21 commits into
mainfrom
devel

Conversation

@ruoyuwang1995nya

Copy link
Copy Markdown
Collaborator

No description provided.

theAfish and others added 21 commits August 6, 2026 18:37
Add concept-level and deepmd-skill support for distilling a DPA-4c student
model from a fine-tuned DPA-4 teacher:

- mlff concept SKILL: rewrite the distillation procedure into explicit
  Phase A (teacher NPT MD) -> Phase B (teacher inference labeling) ->
  Phase C (student training + two-level evaluation), with strict phase
  ordering gates and seed/training-set provenance checks.
- deepmd SKILL + supported models reference: document DPA-4c CLI usage
  (--pt-expt, never --finetune due to OOM for sel=[999999]), the
  --skip-neighbor-stat requirement, and the recommended Bohrium image
  (dpa4-mlip-340e01f9) on a 5090 GPU.
- deepmd_prepare.py: fix epoch-key alias handling so exactly one epoch key
  remains in the training dict (avoids dargs strict-schema failure).
- references/dpa4c_distill_input.json: verified input template from a
  completed 1M-step DPA-4c distillation run.
The run_python/run_bash/run_python_file/run_skill_script tools called
proc.kill() inside their TimeoutError/CancelledError handlers without
guarding against an already-reaped process. Under uvloop this raises
ProcessLookupError, which masks the original CancelledError and surfaces a
full traceback (observed during step cancellation while a long bash job is
running; see the run_bash traceback in api-server.log).

Extract _terminate_subprocess(): it only kills when the process is still
alive, tolerates the race that leaves no PID, and never raises, so the
caller's original exception propagates correctly. Timeout output is
unchanged.
fix(web): chat scroll and stop status handling
feat: add plugin for bohr cli job
fix: harden subprocess cleanup to avoid masking CancelledError
Concept skill split (qchempku2017):
- Extract the fine-tuning and distillation procedures from the main
  concept SKILL.md into references/fine-tuning.md and
  references/distillation.md. SKILL.md now stays a concise overview that
  points to the two reference files (365 -> 97 lines).

Wording & correctness fixes per review:
- Rename "Phase" -> "Stage" throughout (avoid confusion with crystalline
  phases).
- Distillation: strengthen the seed-vs-training-set rule to explicitly
  forbid relabeling existing DFT structures with the teacher.
- Distillation Stage Zero gate: "DO NOT use pretrained models"; clarify
  that multi-task-capable models (e.g. DPA-3) must be single-task
  fine-tuned on the target system to qualify as a teacher.
- Unify the distillation frame multiplier to ~100x (was inconsistent
  20x/100x).
- Stage B: rephrase labeling as "inferencing with the teacher model to
  obtain energy, forces and virial".
- Clarify the configuration-diversity check (NPT lattice-vector
  fluctuation on the same supercell), and classify systems whose initial
  structures span multiple distinct cell types as complex.
- Use ~1000 epochs (num_epochs keyword) instead of training steps.

deepmd skill:
- Remove the duplicated DPA-4c distillation block from SKILL.md; keep a
  short pointer to supported_deepmd_models.md. Keep the --init-model
  flag; make the --finetune prohibition wording stricter.
- supported_deepmd_models.md: rename the DPA-4c section heading.
…pochs)

- distillation.md: 1000 epochs -> 50 epochs.
- dpa4c_distill_input.json: replace numb_steps=1000000 with num_epochs=50,
  consistent with the num_epochs keyword recommended since deepmd 3.2.0.
feat(skills): add DPA-4c distillation workflow
@ruoyuwang1995nya
ruoyuwang1995nya merged commit f4e760f into main Aug 14, 2026
2 checks passed
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 this pull request may close these issues.

3 participants