GPUMDkit专题

GPUMDkit 模型检查、导出与优化器初始化

检查NEP4模型结构,保存成组文件,区分已有训练续算与全新SNES初始化。

更新于 2026-10-28约 4 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载输入、实际结果和绘图资料包。解压后进入资料包目录,inputs 是可修改输入,reference 是鸢算科技集群的参考结果。脚本每次在 work 下新建目录,结果位置写入 LAST-RUN.txt。计算请放在已分配的资源内执行。

这篇解决什么问题#

拿到一个 NEP 模型后,先确认元素顺序、网络规模和配套参数,再决定是否修改。GPUMDkit 的模型编辑器可以检查、导出模型,并为后续扩容、裁剪和元素调整提供入口。

本篇采用已公开的 NEP4 PbTe 教学模型:元素顺序 Te Pb,隐藏层 30 个神经元。它用来演示文件和编辑操作;模型精度是否满足自己的研究,要用自己的独立数据判断。

真实模型参数组成与新优化器初始化

1. 加载环境并查看文件#

module purge
module load gpumdkit/1.5.8
head -n 6 inputs/model/nep.txt
cat inputs/model/nep.in

模型头部为:

nep4 2 Te Pb
cutoff 8 4 73 8
n_max 6 6
basis_size 6 6
l_max 4 2 0
ANN 30 0

配套 nep.in:

type 2 Te Pb
generation 1000
batch 1000

nep.txt 后面的数值是模型系数,不能只复制这六行当作完整势文件。下载包提供完整模型。type 元素顺序应与模型一致,不能只交换两个元素名字。

本集群入口为 GPUMDkit 1.5.8、Python 3.11.16、Calorine 4.0;C++ 扩展使用 GNU 13.3。模块已配好模型编辑接口,直接使用下面的原生命令。

2. 只检查已有模型#

gpumdkit.sh -nep_modifier inputs/model/nep.txt - inputs/model/nep.in

两个 - 中的第一个表示不提供 nep.restart。进入后选择 6 查看当前模型、7 查看修改记录,用 0 退出。检查不需要启动 NEP 训练,也不需要 GPU。

有自己真实训练配套文件时,可以这样进入:

gpumdkit.sh -nep_modifier nep.txt nep.restart nep.in

必须使用与该模型匹配的重启文件,不能从别的模型随便复制一个。

3. 教学包如何得到可编辑的配套文件#

本包不附带原训练优化器。运行以下命令,会从公开模型的参数创建一份 全新的 SNES 初始状态:

python init_optimizer.py
cat model-input/INITIALIZATION.json

它建立 model-input 目录,复制模型和输入,并将 3033 个 ANN/描述符参数作为新均值,初始标准差设为 0.01。模型还有 42 个 q scaler,总系数为 3075;这 42 个 scaler 不作为 SNES 的两列参数行。

# 本例初始化的核心操作;完整解析与检查见 init_optimizer.py
n = model.n_ann_parameters + model.n_descriptor_parameters
restart = np.column_stack([weights[:n], np.full(n, 0.01)])
np.savetxt('nep.restart', restart, fmt='%.16e')

这个专用示例解析器适用于包内标准 NEP4 势模型,不应直接处理 qNEP 或任意特殊模型。sigma 是优化器搜索分布的标准差,不是模型预测的不确定度或误差。新建状态不保留原训练优化器的历史,不能称作继续上一次优化。

4. 导出一个完整文件组#

gpumdkit.sh -nep_modifier model-input/nep.txt \
  model-input/nep.restart model-input/nep.in

依次选择:6 查看模型 → 7 查看记录 → 8 导出 → 输入一个新的输出目录,如 export → y 确认 → 0 退出。

ls export
head -n 6 export/nep_modified.txt
cat export/nep_modified.in

一次导出产生四个文件:

文件 用途
nep_modified.txt 修改后或重新导出的模型
nep_modified.restart 与导出架构对应的优化器状态
nep_modified.in 对应的训练参数和元素列表
nep_modified.changes.txt 修改记录

再次导出到同目录,程序会为这一整组使用共同的新后缀,例如 _1,避免只更新其中一部分。原来的三个输入文件保留。

5. 实际输出与下一步#

本例原模型有 2641 个 ANN 参数、392 个描述符参数、42 个 q scaler。未修改导出后,在原 PbTe 测试结构上的能量、力和应力保持一致。这个对照检查的是文件往返保真,不是对模型做新的精度认证。

一次运行全部模型编辑演示:

bash run.sh models
cat LAST-RUN.txt

继续看网络扩容与裁剪和元素增删与保留。

导出模型之后准备训练数据#

实际DFT标签与字段检查以及VASP、CP2K、ABACUS给出终端路线。新输出头需要相应额外标签;普通DeepMD往返会丢失本例BEC,保留NEP原件。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗