VASP 专题

从VASP数据训练DeePMD原子势

用硅的能量和原子力,完整走通数据整理、训练、模型导出和独立测试。

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

机器学习原子势学习的是结构到能量和原子力的映射。准备VASP数据后,还要分开训练、验证和测试集,才能判断模型对未参与训练的构型是否有效。本例在鸢算科技集群用25个Si₁₆构型训练一个小模型,重点展示可重复的操作流程。

1. 先获得VASP能量和力#

本例沿用硅的热位移算例:一个静态构型,以及0、300、600 K谐振动分布下各8个构型。0 K样本包含零点振动位移。晶胞和原子数固定;这些是热位移单点计算,不是结构优化,不应把每个样本都优化回最低能结构。

PBE、PAW64、ENCUT=550 eV、EDIFF=1E-6、4×4×4 Gamma网格,ISYM=0,ISMEAR=0,SIGMA=0.05 eV。附件calculations包含这25组输入;准备匹配POSCAR元素顺序的合法POTCAR,在各目录运行sbatch run.sh。确认电子收敛后再整理数据。

采用与原子力一致的VASP自由能F作为能量标签。不同泛函、赝势、电子展宽或不收敛构型不应直接混入同一训练集。本例不拟合virial,也不验证压力和变胞性能。

2. 整理数据,先划分再训练#

在附件根目录执行:

module load ase/3.29.0
python prepare_data.py

脚本读取自己计算出的vasprun.xml,写出DeePMD的coord.npy、box.npy、energy.npy和force.npy,并保留type.raw、type_map.raw。坐标、能量、力单位分别是Å、eV、eV/Å。

数据集 构型数 用途
train 13 更新模型参数
validation 6 观察训练过程误差
test 6 模型固定后独立评估

热位移使用成对正负位移;不同温度还有相同随机方向的缩放构型。本例把同一方向的所有温度和正负构型分在同一组:方向0、1用于训练,方向2用于验证,方向3用于测试,静态构型放训练集。这样避免把高度相关的一对样本随机拆到两边,制造虚假的低测试误差。独立方向仍然很少,不能据此宣布模型泛化充分。

3. 提交训练任务#

cd training
sbatch run.sh

附件脚本加载deepmd-kit/3.2.0,在V100上运行PyTorch后端;实际运行显示PyTorch 2.12.0,双精度。VASP标签使用NVHPC 25.3/CUDA 12.8构建的6.6.1 P100分支。现有模块已包含所需环境,无须用户自行编译。

input.json采用se_e2_a描述符,截断5.5 Å、平滑起点4.5 Å,描述符网络16–32–64、拟合网络64–64–64,训练5000步。能量和力共同进入损失,学习率从10⁻³下降到10⁻⁵。完整参数以附件为准。任务依次运行:

dp --pt train input.json
dp --pt freeze -o model.pth
dp --pt test -m model.pth -s ../data/test -n 6 -d test

lcurve.out是训练曲线;model.pth是冻结模型;test.e.out和test.f.out分别给出测试能量和力的参考值、预测值。模型导出后仍需要测试,训练损失不能代替测试集误差。

4. 查看真实测试结果#

回到附件根目录,在有NumPy的环境运行python extract_deepmd.py,生成DEEPMD-DATA.json。

独立测试指标 本例结果
能量RMSE 1.228 meV/atom
力分量RMSE 0.03853 eV/Å
最大能量误差绝对值 1.495 meV/atom
最大力分量误差绝对值 0.17283 eV/Å

能量误差先除以16个原子;力RMSE统计6×16×3个笛卡尔分量。下表正号表示预测能量比VASP更高。

测试构型 预测−VASP / meV/atom
si-thermal-000-03--1 +1.480
si-thermal-000-03-+1 +1.282
si-thermal-300-03--1 +1.495
si-thermal-300-03-+1 +1.104
si-thermal-600-03--1 +1.241
si-thermal-600-03-+1 +0.466

vasp-deepmd-training 实算结果

5. 最后得到什么,怎样用于自己的体系#

本例得到可加载的model.pth、学习曲线、独立测试误差和输入模板。25个固定体积硅构型只覆盖很小的结构空间,不能直接用于熔化、缺陷、表面、断键、其他元素或高压模拟。即使能量误差小,也要检查最大力误差和实际轨迹稳定性。

用于自己的体系时,先覆盖计划模拟的组成、温度、密度、应变和反应构型;按独立轨迹或构型族划分数据,再训练、测试并补充模型误差大的构型。需要应力和变胞动力学时,还应加入经过核对的virial标签与相应测试。本例没有完成这些生产级扩展。

方法参考:DeePMD-kit训练说明。

下载输入、结果与提取脚本(ZIP)

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

查看配图

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

100%查看原图 ↗