🔁 主动学习工作流
使用 GPUMDkit 的采样、筛选、批处理准备、格式转换和验证工具,组织经过人工审查的 NEP 数据迭代流程。
适用范围
本页有意采用分阶段、人工审查的迭代方式。采样条件、筛选标准、DFT 设置、 调度资源、数据集策略和模型验收标准都取决于具体科学体系。
GPUMDkit 负责各阶段的准备和分析。GPUMD、DFT 和 NEP 计算应在输入及成本 得到批准后,通过各自的执行方式单独运行。
开始迭代前
定义并记录:
| 项目 | 必须确定的内容 |
|---|---|
| 模型 | 当前 nep.txt 修订和预期应用范围 |
| 候选生成 | 起始结构和 GPUMD 条件 |
| 筛选方式 | MD 轨迹过滤后进行 NepTrain FPS |
| 筛选条件 | 距离、盒子、FPS 停止和结构数量限制 |
| DFT | 程序、泛函、赝势、收敛设置和任务预算 |
| 数据集 | 合并、权重、排除、划分和数据泄漏策略 |
| 验证 | NEP 精度和目标范围稳定性的验收标准 |
不要从其他材料体系直接复制阈值或模拟参数。
1. 生成候选结构
需要处理多个起始结构或多套 run.in 时,可以使用功能 302 准备 GPUMD
批处理目录:
该命令只准备目录和符号链接。把批准的 nep.txt 和 run_<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.out 和 active.xyz;随后可用功能 205 对
高力偏差结构排序或限制数量。确认所有不确定度设置,并确保两个文件来自
同一次运行。
3. 准备参考计算
对审查后的 selected.xyz 使用功能 301:
VASP 分支创建 struct_fp/、fp/、计算目录和 presub.sh 模板。准备完成
后,把批准的 INCAR、POTCAR 和 KPOINTS 放入 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)。