PFD-kit查询、结果取回与计算续接
安装版五条CLI、短脚本的结果目录及原生恢复入口,避免重复提交。
阅读本篇目录
下载输入、五个参考模型、真实数据与短命令脚本(ZIP)。先保留自己的工作目录和作业记录,再使用查询与恢复命令。
1 五条实际命令#
module load pfd-kit/0.10.13
pfd --version
pfd --help
| 命令 | 用途 |
|---|---|
| submit | 提交微调或蒸馏工作流 |
| resubmit | 列出并复用已有步骤,创建继续计算的工作流 |
| download | 按工作流取回模型、数据或指定步骤产物 |
| perturb | 生成结构扰动及超胞 |
| status | 查询迭代、误差和收敛状态 |
安装版没有名为restart的CLI;续接入口是resubmit。
2 普通使用先看短入口#
bash status.sh
cat work/finetune/RESULTS.json
cat work/distill/RESULTS.json
status显示自己的Slurm作业及已完成的原生工作流。两个RESULTS分别记录实际工作流ID与模型SHA。完整结束后:
cat work/COMPLETE.json
find work/final-finetune -type f
find work/final-distill -type f
附件calculate保留提交记录;任务仍在运行时,再次调用不会新建第二个作业。不要删除记录来绕过保护。
3 原生命令如何对应#
在自己的Slurm执行环境、对应阶段目录中,可以按实际ID查询。下面用变量表达自己的目录和ID,不能把示例ID换成别人的工作流:
pfd status ../finetune.json "$workflow_id"
mkdir -p results/model results/data
pfd download ../finetune.json "$workflow_id" --prefix results
先建立model/data目录,可让本安装版的本地取回正常复制完整产物。状态表中的内部误差只对应当轮内部检查数据,应区分总能量eV与外部表的eV/atom,并查看数据帧数。
本包调用submit不附加-m,本地debug执行会实际完成步骤后返回,再查询和取回;这样也与当前安装版的工作流步骤命名保持一致。它不是只生成脚本的预览模式。
4 继续已完成标签后的训练#
先列出自己的步骤:
pfd resubmit ../finetune.json "$workflow_id" -l
按列表选择已经完成、仍适用于本次输入的步骤索引。参考实算在四个DFT标签均完成后,使用原生resubmit及-f复用整个已完成的探索/标注组,再进行尚未完成的训练,没有再次计算这些DFT点。
pfd resubmit ../finetune.json "$workflow_id" -u 0-8 -f
这里0-8只对应本参考流程的九个已完成条目;自己的列表、版本和阶段不同,不能照搬这个范围。-f按完成的组复用输出,有助于同时保留该组汇集的数据。原始计算只有一部分完成时,应先核对每个产物,不能把整组当成已完成。
5 哪些内容要保留#
保留输入JSON、原始结构、数据划分、教师及学生权重、工作流目录、提交记录和误差表。更改泛函、赝势、元素顺序、训练数据或模型后,旧步骤可能不再适用;先弄清输入变化,再决定复用哪些部分。
本例使用集群PFD-kit 0.10.13、DeePMD-kit 3.2.0 TensorFlow路线、Python 3.12;VASP 6.6.1采用NVHPC 25.3/MKL 2023.2环境。阶段脚本分别装载匹配环境。 当前端到端示例使用DeePMD与VASP;MatterSim/MACE等可选后端需要额外依赖和适用模型,不能因为注册表中出现名称就认定已具备完整环境。PFD项目与说明提供更多输入示例,使用时应对照安装版本。