ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeepMD-kit 接入 LAMMPS:一条流水线跑出 DFT 级精度的分子动力学模拟

DeepMD-kit 接入 LAMMPS:一条流水线跑出 DFT 级精度的分子动力学模拟 DeepMD-kit 接入 LAMMPS一条流水线跑出 DFT 级精度的分子动力学模拟【免费下载链接】deepmd-kitA deep learning package for many-body potential energy representation and molecular dynamics项目地址: https://gitcode.com/gh_mirrors/de/deepmd-kit在 LAMMPS 里做分子动力学MD精度和速度往往只能二选一经典经验势快但不够准第一性原理DFT准但慢到无法跑纳秒尺度的轨迹。DeepMD-kit 把神经网络学到的多体势能作为pair_style deepmd嵌进 LAMMPS恰好同时拿到两边的好处——DFT 级精度加上接近经典势的单步耗时。这篇文章按真实工作流的顺序把整条链走一遍先训练并冻结势能模型再把 LAMMPS 编译出 DeePMD 支持然后写第一份input.lammps最后用多模型偏差和 TensorBoard 确认这组势能值不值得上生产模拟。1. 一条链训练 → 编译 → 加载三步把模型送进 LAMMPSDeePMD-kit 支持 TensorFlow、PyTorch、JAX、Paddle 等多个后端见 backend/训练产物最终都会冻结成一个自包含的模型文件LAMMPS 侧只需认识两行命令pair_style deepmd frozen_model.pb pair_coeff * * O Hpair_style后面跟模型文件路径.pb、.pth、.savedmodeltf等扩展名取决于训练后端pair_coeff则把 LAMMPS 的原子类型按元素名映射进去。神经网络结构如 se_atten 描述符决定了模型如何从局部环境提取特征并输出能量与力训练侧以水为例一条命令即可启动dp --tf train input.json # 其他后端可换成 dp --pt / dp --jax / dp --pd训练完成后冻结模型dp freeze -o model.pb之后这个model.pb就是 LAMMPS 唯一需要的东西模型里已经写入了原子类型映射type_map等信息。2. 3 条命令编译 LAMMPS DeePMD 模块内置模式官方给出两种集成方式内置模式把 USER-DEEPMD 包编进 LAMMPS 二进制启动即用插件模式单独产出一个共享库运行时再加载。二选一即可推荐从内置模式开始。内置模式的流程是先在已装好 C 接口的 DeepMD-kit 构建目录里生成模块再拷进 LAMMPS 源码并开启该包cd $deepmd_source_dir/source/build make lammps # 生成 USER-DEEPMD 模块 cd /some/workspace/lammps-stable_22Jul2025_update2/src cp -r $deepmd_source_dir/source/build/USER-DEEPMD . make yes-user-deepmd # 可同时 make yes-kspace 等其它包 make mpi -j4 # 产出 lmp_mpi 可执行文件完整说明见 doc/install/install-lammps.md。插件模式则用 CMake 分别构建核心是打开PKG_PLUGIN并生成libdeepmd_lmp.so运行脚本里加一行plugin load libdeepmd_lmp.so或设置环境变量LAMMPS_PLUGIN_PATH$deepmd_root/lib/deepmd_lmp让 LAMMPS 自动发现。LAMMPS 源码位于 source/lmp/两种模式最终都注册了deepmd、deepspin等 pair style。如果目标是把推理整体放到 GPU 上可以启用 LAMMPS 的 Kokkos 包并配置pair_style deepmd/kk与内置模式共用同一套 C API 设备图接口。注意一点每个 MPI rank 最多只能占一张 GPU划分进程数时别超卖显卡。3. 第一份 input.lammps水体系 NVT 最小可跑示例把三份文件放齐即可开跑input.lammps脚本、data.system之类的结构文件、冻结模型文件。下面是一份经过完整解释的水 NVT 示例与 examples/water/lmp/in.lammps 一致改几个数字就能换到任何体系units metal # Å/eV/fs 单位制与模型内部单位一致 boundary p p p # 三维周期边界 atom_style atomic neighbor 2.0 bin neigh_modify every 10 delay 0 check no read_data water.lmp mass 1 16 # 数据文件缺 Masses 段时必须手工补 mass 2 2 pair_style deepmd frozen_model.pb pair_coeff * * O H # 原子类型 → 元素名映射 velocity all create 330.0 23456789 fix 1 all nvt temp 330.0 330.0 0.5 timestep 0.0005 # 0.5 fs thermo_style custom step pe ke etotal temp press vol thermo 100 dump 1 all custom 100 water.dump id type x y z run 1000两个新手最容易被坑的点units 选metal。模型内部距离、能量、力的单位是 Å、eV、eV/Å与metal完全对齐不用手工换算real、si等也可以LAMMPS 会自动转换。mass 命令别漏。data 文件没有 Masses 段时热浴和速度初始化都会报Not all per-type masses are set。pair_coeff * * O H的元素名要与训练时的type_map一致不写元素名时默认就用训练参数里的映射。4. 系综怎么选NVE / NVT / NPT 一表说清DeepMD 势能本身不带系综概念差异全部体现在fix上。常见三种搭配系综核心命令适用场景NVEfix 1 all nve能量守恒检查、平衡后的短程产段NVTfix 1 all nvt temp T0 T0 τt恒温生产模拟Nose-HooverNPTfix 1 all npt temp T0 T0 τt iso P0 P0 τp恒温恒压iso做各向同性控压切换系综只需改fix一行。NVT 的 τt如 0.5metal 单位下为 ps控制热浴阻尼一般取 1–2 个步长的若干倍上 NPT 时把vol、lx ly lz加进thermo_style方便观察盒子尺寸。想确认势能可不可信再进一步用多模型偏差在pair_style里列两个以上模型第一个负责每步的力与能量其余模型按out_freq频率统计偏差pair_style deepmd graph_0.pb graph_1.pb out_file md.out out_freq 100 atomicmd.out里持续偏大的原子通常对应模型训练数据没覆盖到的结构是最直观的模型哪里不熟信号。5. 跑生产模拟前先用 TensorBoard 把势能体检一遍MD 结果的可信度一半来自模型训练时的拟合质量。DeepMD-kit 训练自带 TensorBoard 记录doc/train/tensorboard.md开跑长模拟前值得花两分钟看三张图能量损失上应平稳收敛到数据精度对应的量级力损失l2_force_loss 同型同理长期平台期后再下降说明学习率调度需要调整。标量页还能观察网络偏置等内部量是否稳定如果 loss 正常但 MD 中能量出现漂移重点查结构是否越出了训练覆盖范围多跑多模型偏差验证。模型层面新一代 DPA4 系列在吞吐量—精度权衡上明显前移同一精度下模拟速度可以高一到两个数量级适合大规模生产轨迹6. 常见报错速查 跑得更快的压缩模型症状原因解法Not all per-type masses are set数据文件缺质量信息脚本里逐类型补mass命令plugin load libdeepmd_lmp.so: No such file插件模式没配路径显式plugin load或设LAMMPS_PLUGIN_PATH更新版本后 LAMMPS 起不来旧 USER-DEEPMD 残留版本不匹配从源码目录删除旧模块后重新编译mpirun与lmp行为异常两者 MPI 实现不一致mpirun --version与lmp -h核对后统一体系上万原子、要跑长纳秒时别忽略模型压缩dp compress会把网络推理替换成查表 算子合并精度损失很小而单步耗时显著下降pair_style deepmd加载压缩模型的方式和原版完全一样。跑通最小示例后接下来可以按这个顺序扩展用dp系列命令检查模型信息dp show、给生产脚本加上dump频率与重启文件、在集群上用mpirun -np N lmp -in input.lammps上并行N 不超过 GPU 数 × 每卡 rank再考虑 DPA3/DPA4 等更强描述符或混合势hybrid方案。这套组合拳走完从结构到纳秒轨迹就是一条完整可复现的流水线。【免费下载链接】deepmd-kitA deep learning package for many-body potential energy representation and molecular dynamics项目地址: https://gitcode.com/gh_mirrors/de/deepmd-kit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表