
DPMD和DPGEN使用经验
DPMD train.json参数设置和理解:
DeepPotential
- 形象化理解sel_a:一个原子越高概率出现,对应sela越大;sela对应以任意原子为center,能找到的该原子的最大数目
- neuron network和resnet大小一般不修改;同时训练多个势函数需要修改随机种子
seed
- 用于实际使用的势函数需要well-train,需要“长训练”,常用设置为:
"learning_rate" - "decay_steps":20000,"stop_batch": 400000, # 使用200000 步也大致没有问题。DPGEN
- 提交训练后需要跟踪train的情况。有时候由于提交后无法配置GPU资源(被其他程序占用或其他原因),导致训练输出为“nan”,需要重新提交并确保获取GPU资源。
- 用于训练的数据要正确的设置
type.raw
。尤其注意初始数据的处理,保证元素顺序,编号正确。 - 注意测试k-points,dpgen在vasp的INCAR中使用
kspacing
和kgamma
来决定kpoints。一般要求能量收敛到 1 meV/atom ,力分量收敛到 5 meV/A 以下。 - dpgen 的exploration步骤通过md采样,探索步数一般随着迭代增加到10000~20000即可。一般增加随机的md起点数目比增加探索步数采样更高效。这是最关键的步骤,设计exploration策略时需要考虑实际使用时要探索体系和采样空间相类似。
- 通过修改machine.json对应配置让dpgen报错停下,用于数据分析和检测。例如设置错误的端口/IP使任务在某步停下。
- 神经网络拟合能力是很强的,不consistent的数据(不同k点)也能拟合出非常小的能量/力误差。所以,要注意使用测试体系检查势函数质量,测试体系取决于所研究的问题。也要注意输入的DFT数据做好充分的计算参数测试。
- 注意可视化每轮的训练结果,包括学习曲线(训练误差随batch下降趋势),model_deviation的分布,单点能的收敛和结构正确,对每轮的结果进行分析。
- dp restart/freeze 要保持在相同的路径下,如果改变了文件夹位置/名称,可以修改checkpoint指明model路径。
DFT单点能
- 一般对体系影响最大的是k点,需要测试不同的k点,k点数目和计算成本是对应的
- 主要的INCAR计算参数是
- ENCUT(一般取600/650保证quality,对计算速度影响不明显);
- ISMEAR=0(ISMEAR=-5的 Bloch方法需要k不小于4个,有时候不能用,测试表明,二者能量/力误差在1e-3以下,ISMEAR=0计算成本更低)
- spin会对体系有非常大影响,一种brute force做法是直接给一个好的初猜(代码辅助),
- LASPH可以考虑加入,提高精度,极少量成本。
- LWAVE,LCHARG关掉,减少计算时间和储存空间浪费。
文件空间管理
随着模拟时间和模拟体系扩增,储存文件占用的空间非常巨大。在储存文件时候注意:保留必要的输入和输出文件:包括初始结构(data.lmp),计算设置(input.lammps),计算输出(log),轨迹(traj),可使用压缩来减少内存占用。
State Key Laboratory of Advanced Design and Manufacturing Technology for Vehicle, College of Mechanical and Vehicle Engineering, Hunan University, Changsha 410082, P. R. China
湖南大学 机械与运载工程学院 整车先进设计制造技术全国重点实验室
ETLABtutorial
Website
https://static-assets.sxlcdn.com/images/fb_images/default-sxl.jpg