DP-GEN上手与数据准备
用真实Si标签认识并发学习,先重画结果,再准备初始结构和训练数据。
阅读本篇目录
下载完整输入、教学模型、实算数据和操作脚本(ZIP)。本专题按操作拆成五篇:数据准备 → 完整训练循环 → 模型偏差与筛选 → 三种DFT标注入口 → 查看任务与续算。
1 先把结果画出来#
unzip dpgen-practical-wave261-*.zip
cd dpgen-practical-wave261
bash run.sh
这个入口读取附件中的真实参考数据,生成六张PNG和七张CSV,不启动DFT、训练或MD。实际计算请继续使用后文的Slurm入口。
ls figures
ls analysis
cat README.txt
DP-GEN负责组织“训练多个势函数 → 用势函数探索结构 → 找出模型分歧较大的构型 → 用DFT重新标注 → 加回训练集”的循环。它不是另一套DFT程序,也不会自动保证训练出的势适用于任意体系。
本例在鸢算科技集群实际运行:四个独立DeePMD模型、四个短NPT探索任务、四个VASP新标签,再训练四个模型;另外用同一个候选结构演示ABACUS和CP2K。完整短流程在独立工作目录又实际运行一遍,下载包中给出的入口可以直接跟着操作。
2 先认识数据和适用范围#
初始数据来自48个真实PBE-DFT构型:24个Si二原子晶胞、24个Si八原子晶胞,含小应变和小位移。32个训练、8个验证、8个独立测试,结构编号不交叉。测试集没有传给训练器。

这个小数据集适合学习操作。原模型的NPT体积漂移很大;增加virial训练权重后仍有18.9%体积漂移。因此附件模型不用于生产模拟,短轨迹也不能给出可靠的Si平衡体积、热膨胀或输运性质。
ls data/train
ls data/valid
ls data/test
cat data/FRAME-MAP.json
每个系统目录采用DeePMD数据格式,type.raw/type_map.raw 描述元素,set.000 中有坐标、晶胞、能量、力和virial的NumPy数组。不同原子数分别放在Si2、Si8系统中。
| 量 | 本例约定 |
|---|---|
| 坐标、晶胞 | Å |
| 能量 | eV/整个构型,取VASP自由能F |
| 力 | eV/Å |
| virial | eV;与ASE拉伸为正的应力关系为 −Vσ |
| 数据拆分 | 两种原子数各16训练、4验证、4测试 |
换成自己的体系时,应统一泛函、赝势、能量定义、截断和k点精度。不能把其他程序的绝对能量直接混进这组VASP标签。
3 初始结构长什么样#
完整起始 inputs/Si8.POSCAR 如下;这是用于单点标注的扰动结构,不宣称已经弛豫到平衡。
Si
1.0000000000000000
5.3058697433035791 0.0000000000000000 0.0000000000000000
0.0055851353951275 5.3391001067849837 0.0000000000000000
0.0105110273798546 0.0192626566917539 5.3201582235905791
Si
8
Cartesian
5.3118431476942618 5.3410085887471386 5.3017422206790048
1.3032473746995079 1.3364369228675974 1.2960315511289651
5.2728227042976865 2.7428353065609468 2.6111441360193601
1.3567508755463908 4.0132542941091254 4.0555532636584584
2.6705299004867116 5.3311731397583797 2.5937845602407075
4.0108826238470385 1.3488995213572761 3.9927884875297988
2.7069402212560809 2.6796342335588550 5.3202563595707533
3.9384333212150513 4.0427377270033986 1.3026110239058297
周期性坐标可以位于晶胞边界附近。不要只看笛卡尔坐标是否接近盒长就判断原子重叠,应结合周期性最小距离检查。
4 生成初始扰动结构#
bash initialize.sh
ls init
入口调用原生 dpgen init_bulk 的第1、2阶段:1×1×1复制,晶格缩放0.98、1.00、1.02,每种缩放保留原构型并生成两个扰动构型,共九个Si8结构。晶胞扰动幅度0.005、原子位移幅度0.01 Å。
find init -name POSCAR
cat init_native.py
这里设置 skip_relax=true,只演示建模和扰动;没有在此入口做结构优化或AIMD。九个生成结构也没有冒充九组新增DFT标签。真正的训练标签已在 data/,下一篇从它们开始训练。原生初始化说明可用于扩展到更多初始化阶段。
5 使用哪个软件环境#
本专题采用DP-GEN 0.14.0、DPDispatcher 1.1.0、Python 3.12、DeePMD-kit 3.2.0 TensorFlow,以及与该DeePMD接口匹配的LAMMPS。每个阶段脚本单独装载模块;不要在一个计算进程中混用不同MPI/CUDA环境。
module purge
module load dpgen/0.14.0
dpgen --help
控制器在登录节点组织文件和提交任务;训练、MD和DFT计算均通过Slurm运行。后文用短脚本完成参数路径替换和模块选择,无需手写长命令。