Skip to content

🔁 主动学习工作流

使用 GPUMDkit 的采样、筛选、批处理准备、格式转换和验证工具,组织经过人工审查的 NEP 数据迭代流程。

适用范围

本页有意采用分阶段、人工审查的迭代方式。采样条件、筛选标准、DFT 设置、 调度资源、数据集策略和模型验收标准都取决于具体科学体系。

GPUMDkit 负责各阶段的准备和分析。GPUMD、DFT 和 NEP 计算应在输入及成本 得到批准后,通过各自的执行方式单独运行。

开始迭代前

定义并记录:

项目 必须确定的内容
模型 当前 nep.txt 修订和预期应用范围
候选生成 起始结构和 GPUMD 条件
筛选方式 MD 轨迹过滤后进行 NepTrain FPS
筛选条件 距离、盒子、FPS 停止和结构数量限制
DFT 程序、泛函、赝势、收敛设置和任务预算
数据集 合并、权重、排除、划分和数据泄漏策略
验证 NEP 精度和目标范围稳定性的验收标准

不要从其他材料体系直接复制阈值或模拟参数。

1. 生成候选结构

需要处理多个起始结构或多套 run.in 时,可以使用功能 302 准备 GPUMD 批处理目录:

gpumdkit.sh  # 选择:3) Workflow -> 302

该命令只准备目录和符号链接。把批准的 nep.txtrun_<index>.in 放入 生成的 md/ 目录,检查所有映射后,再通过自己的已授权执行流程运行 GPUMD。

重新运行前应使用干净输出目录,或归档采用追加模式的 GPUMD 输出。开始 筛选结构前,检查退出状态、日志、温度、能量、压力、晶胞和轨迹。

2. 选择候选结构

推荐直接进行 MD 采样,然后做几何筛选和 NepTrain FPS。

MD 轨迹与 NepTrain FPS

对于普通且稳定的 MD 轨迹,先检查周期性距离,再应用批准的筛选条件:

gpumdkit.sh -min_dist_pbc dump.xyz
gpumdkit.sh -filter_dist_pbc dump.xyz <minimum_distance>
gpumdkit.sh -filter_box filtered_dump.xyz <maximum_box_edge>
gpumdkit.sh  # 选择:2) Sample Structures -> 203) FPS by NepTrain

-min_dist_pbc 只报告距离,不会剔除结构;实际筛选应使用 -filter_dist_pbc。盒子筛选是可选项,没有获批的盒子边长条件时应跳过。 记录所有阈值、被剔除的结构和 NepTrain FPS 停止条件。

可选的委员会不确定度方案

只有项目明确采用时才使用委员会不确定度。GPUMD active 需要兼容的 委员会模型,并生成 active.outactive.xyz;随后可用功能 205 对 高力偏差结构排序或限制数量。确认所有不确定度设置,并确保两个文件来自 同一次运行。

3. 准备参考计算

对审查后的 selected.xyz 使用功能 301:

gpumdkit.sh  # 选择:3) Workflow -> 301 -> VASP 或 CP2K

VASP 分支创建 struct_fp/fp/、计算目录和 presub.sh 模板。准备完成 后,把批准的 INCARPOTCARKPOINTS 放入 fp/。CP2K 分支通过 菜单 301 -> 2 接收 extxyz 文件、审查过的模板和目录前缀。

提交前检查结构数量、原子/类型顺序、晶胞、DFT 输入、资源请求、可执行文件 和预期输出。GPUMDkit 不会提交 DFT 任务。

4. 转换并审查参考数据

确认每个被接受的 DFT 计算都完整结束后,根据 DFT 程序选择对应转换入口:

# VASP 结果
gpumdkit.sh -out2xyz <scf_results_directory>

# CP2K 结果(交互式转换器)
gpumdkit.sh -cp2k2xyz

# 对所选转换器生成的 extxyz 文件继续检查
gpumdkit.sh -range <new_reference.xyz> energy
gpumdkit.sh -range <new_reference.xyz> force
gpumdkit.sh -min_dist_pbc <new_reference.xyz>
gpumdkit.sh -analyze_comp <new_reference.xyz>

检查能量/力/维里标签、单位、晶胞、元素/类型顺序、组成覆盖、重复结构、极端 结构以及失败或不完整的计算。保留原始 DFT 输出,并记录所有排除项。

5. 更新数据集并验证模型

合并新增参考结构前,保留上一版数据集。记录加入、剔除、加权以及分配到 训练集/测试集的构型。需要独立性时,避免相邻轨迹帧泄漏到划分两侧。

只有在模型架构、损失、优化器、检查点、ZBL 等非平凡设置得到批准后,才 准备或修改 nep.in。单独运行 NEP,随后检查:

  • 训练和测试损失;
  • 能量、力和维里/应力 parity 输出;
  • 按元素、组成、相和构型类别划分的误差;
  • 异常点、短程行为和目标范围内的 MD 稳定性;
  • 项目规定的验收标准。

总体 RMSE 不能单独证明模型已经适合正式使用。

迭代记录

为保证可复现性,应保留模型/数据修订、批准的决定、完整命令、工作目录、 可执行文件版本、退出状态、警告、生成文件、被剔除结构、验证结果和已知 限制。缺少必要输出或仍存在未解决的验证问题时,应停止本轮迭代。


感谢使用 GPUMDkit!如有问题或建议,可以在 GPUMDkit 仓库提交 issue, 或联系 Zihan YAN(yanzihan@westlake.edu.cn)。