GPUMD专题

GPUMD:训练 vdW 模型并预测新结构

用氩团簇实算训练长程模型,对照局域模型,展示预测新结构、提取能量受力和GPUMDkit画图。

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

本篇接续真实标签准备,按“生成输入→单卡训练→独立测试→预测自己的结构→画图”操作。当前 GPUMD5.9.1 的 nep 支持本例训练与预测,gpumd 尚不能加载 nep4_vdw 模型,因此本篇不将它用于分子动力学。

1. 生成训练目录#

下载实例资料包,保存为 gpumd-vdw-Ar-wave217.zip:

unzip gpumd-vdw-Ar-wave217.zip -d ar-vdw
cd ar-vdw
source /etc/profile
module load ase/3.29.0
python3 prepare_models.py
ls cases

两个 vdw-* 是长程模型,两个 local-control-* 是同样数据、训练预算的局域对照。训练集、验证集和独立测试集使用25/9/8个父构型;差分点不参加训练。

2. 训练输入逐项看#

cat cases/vdw-p100-s13579/base-nep.in
version 4
model_type 0
vdw 1
type 1 Ar
cutoff 4.0 4.0
n_max 4 4
basis_size 4 4
l_max 4 2 1
neuron 12
population 30
batch 25
lambda_1 0.0
lambda_2 0.0
lambda_e 1.0
lambda_f 1.0
lambda_v 0.0
seed 13579
generation 20000
output_interval 100

model_type 0 表示能量势模型,vdw 1 增加学习的长程色散部分。cutoff 两个值依次控制径向、角向局域描述;本例均为4 Å。原始结构最短原子间距3 Å,角向截断若设成3 Å,便没有有效角向邻居,可能产生无效特征缩放,不能只看训练进程是否正常结束。

lambda_e、lambda_f 同时拟合真实能量和力,lambda_v=0 不拟合本例未提供的应力。模型内部学习的 C6 不等同于量子化学 D3 的原子 C6,不能直接当作独立物理测量结果。已安装版本的输入对应GPUMD5.9.1固定源码。

3. 提交一个单卡任务#

cd cases/vdw-p100-s13579
sbatch job.slurm

脚本申请一张P100和一个CPU核心,自动加载 gpumd/5.9.1-p100。完成后依次得到 training/ 与四个 prediction-* 目录。V10016G对应:

cd ../vdw-v100-s24680
sbatch job.slurm

两个局域对照也使用各自目录中的 sbatch job.slurm。独立测试集只在训练结束后预测,不参与训练更新和种子挑选。

需要手动对一个带参考标签的数据集预测时,在独立工作目录放好训练得到的 nep.txt、数据 train.xyz 和下列 nep.in,加载相应GPUMD模块后运行 nep > native.out:

version 4
model_type 0
vdw 1
type 1 Ar
cutoff 4 4
n_max 4 4
basis_size 4 4
l_max 4 2 1
neuron 12
prediction 1

4. 汇总能量和受力#

四个模型结束后回到包根目录:

module load ase/3.29.0
python3 analyze_models.py --new
cat analysis-new/metrics.csv
模型 固定种子 独立测试结合能RMSE,meV/原子 力分量RMSE,eV/Å
vdW / P100 13579 0.3209 0.001209
vdW / V10016G 24680 0.5693 0.002299
局域对照 / P100 13579 2.0803 0.014393
局域对照 / V10016G 24680 2.4599 0.013961

普通目录的P100复跑得到相同指标;最终ZIP的V100重新训练得到0.5713 meV/原子、0.002552 eV/Å,仍通过事先设定的精度范围。固定种子不代表每次GPU训练逐位相同,以上各次结果均保留,不选最有利的一次。

按构型独立划分的模型误差

25个真实二聚体距离的结合能和受力

局域对照在4 Å以外给出恒定能量和零受力;vdW 模型仍有长程变化。不过少数远距弱力方向与参考不同,应同时阅读前篇的逐点检查,不能只凭平均误差判断。

固定步长的模型能量梯度与原生受力对照

5. 预测自己的结构#

回到包根目录,以没有DFT参考标签的 new-structure.xyz 为例:

cat new-structure.xyz
python3 prepare_prediction.py
cd prediction-only
sbatch job.slurm
2
Model-only prediction geometry, no quantum reference labels supplied
Ar 0.0 0.0 0.0
Ar 5.25 0.0 0.0

作业结束后:

cat predicted-only.csv
cat REFERENCE-STATUS.json

CSV给出逐原子预测受力、每原子与整个构型的预测结合能。此例已分别在P100、V10016G真实提交运行;没有给它补造DFT标签或精度数据。

本版 nep 即使预测也要求输入包含能量和力字段。准备脚本只在独立 prediction-only/ 写入明确标记的零占位字段,导出时只取预测列。这些零不代表真实参考,不得用于训练、计算RMSE或证明精度。 预测自己的Ar结构可在新解压目录运行 python3 prepare_prediction.py my-Ar.xyz;默认复用随包已训练模型,不重新训练。

6. 用 GPUMDkit 画力误差图#

在新的解压目录按随包真实参考结果操作:

module load ase/3.29.0
python3 prepare_force_plot.py
module load gpumdkit/1.5.8
cd tool-force
gpumdkit.sh -plt force_errors save

得到 force_errors.png。若要分析自己新训练的P100长程模型,准备时使用 python3 prepare_force_plot.py --new。

GPUMDkit真实独立测试集的力误差与角度诊断

这个版本的画图脚本跳过首行,准备脚本只给工作副本加一行注释表头,21个原子、63个力分量全部保留,原始文件不改。局域对照的部分受力为零,零向量角度没有定义,因此该角度图使用全部非零的vdW模型独立测试数据。工具内部插值累计分布用于诊断,定量误差采用CSV的全分量统计。

7. 得到什么,下一步做什么#

最终得到真实量子化学标签、训练模型、独立测试误差、自己结构的单点预测,以及可重画的结构和数据图。当前 gpumd 不支持该vdW模型头,请保留原始模型头,不要修改名称绕过兼容检查。真实材料的长程模型还需要更广结构、电子结构精度检查及独立验证,本例不提供气液相变、固体性质或动力学精度结论。

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

查看配图

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

100%查看原图 ↗