Bohrium
robot
新建

空间站广场

论文
Notebooks
比赛
课程
Apps
我的主页
我的Notebooks
我的论文库
我的足迹

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
【WIP】DeePMD 训练与模拟效果分析指南
DeePMD
DP答疑
DP-GEN
分子动力学
DeePMDDP答疑DP-GEN分子动力学
AnguseZhang
发布于 2023-09-25
推荐镜像 :DeePMD-kit:2.2.4-cuda11.6
推荐机型 :c2_m4_cpu
赞 14
8
12
背景介绍
前置内容索引
问题分析
检验模型精度的标准是什么?
模型训练及测试误差
实际物理性质检验 [往往更重要]
状态方程
晶格常数
径向分布函数
密度
扩散系数
电导
热导
光谱
声子谱
弹性模量
空位/缺陷/表面形成能
Gamma Line
相变转变温度(eg熔点等)
热力学自由能
...
当模型精度没有达到预期的时候,该如何排查和调整?
数据自洽性
训练拟合过程
数据分布与采样问题
对物理问题本身的理解
案例分析
案例分析一:使用DP进行弹性模量计算
案例分析二...
基础问题诊断表

背景介绍

在训练深度势能模型(Deep Potential, DP)与使用深度势能模型进行推断的过程中,常常面临希望能进一步提升模型精度的情形,然而社区用户们往往缺乏一套定位与分析问题的方法论指引,也并不具备有效的分析工具,从而限制了讨论与分析问题的深入程度。

因此,本文希望提供的帮助有三:

  • 分析框架:为进一步检查问题、迭代改进模型提供一个分析框架;
  • 分析代码:在社区范围内收集可复用的分析脚本,并提出待补充完善的分析脚本;
  • 分析案例:提供典型的分析案例(Case Study),并持续汇总成功经验。

本文标黄部分为待补充部分,可以以Notebook的形式补充,并贴在本文对应评论区。 欢迎大家贡献与共同讨论!

代码
文本

问题分析

检验模型精度的标准是什么?

模型训练及测试误差

首先回顾下深度势能的工作原理,即“基于第一性原理的计算数据,通过深度神经网络对原子相互作用势能进行参数化,构建了能够有效克服“维数灾难”的模型。得到的深度势能模型可以在保证第一性原理计算精度的同时,将分子动力学模拟计算速度提升数个数量级"。

代码
文本

一个基本的检验自然是深度势能模型的训练及测试误差,即其对势能 、原子受力 (以及维里张量 )的预测与拟合对象(第一性原理计算值)的偏差。 各物理量的定义以及完整的训练过程原理可以参考DeePMD-kit v2:深度势能模型的软件包Open In Bohrium

因此在许多文章中也能看到下图右上角一样的模型预测误差对比图。

  • [分析脚本] 训练曲线分析脚本、能量/力/维里精度对比脚本、挑选对预测误差大的体系等脚本

需要特别指出的是,以力误差为例,虽然模型对很多体系的力训练误差能达到0.05-0.1eV/atom甚至更低,但模型误差究竟达到多少时才认为满意一般没有泛之四海而皆准的指标,而是需要根据问题具体分析。比如,模拟高温或高压(如燃烧反应、温稠密物质、地质物理、辐照损伤等)时由于原子受力一般非常大,模型预测的偏差的绝对值也会更大。这时自然不能使用机械的数值标准来定义模型准确度。 一般来讲,力误差降低到训练体系中的原子受力的平均值1/10以下,可以认为模型具有一定的精度。

代码
文本
代码
文本

与本章节配套的视频讲解可见下方链接,因视频网站设置,在本网页的显示清晰度可能不佳,可能需要访问原网站获取更清晰观看体验。

代码
文本

实际物理性质检验 [往往更重要]

模型对我们实际关心的物理问题的解决程度往往需要对一系列物理性质模拟效果的检验,这点相比单纯比较模型与拟合对象(第一性原理计算)的数值偏差更重要。常见的物理性质检验包括状态方程、晶格常数、径向分布函数、密度、扩散系数、热导、电导、光谱、声子谱、弹性模量、缺陷/空位/表面形成能、相变转变温度、自由能等。

状态方程

晶格常数

  • [分析案例] Ar的晶格常数LAMMPS计算Open In Bohrium

  • [分析脚本] 往往作为初始benchmark,更需要的分析脚本往往是对第一性原理计算软件如ABACUS或泛函如PBE/PBE-SOL的benchmark的脚本

径向分布函数

  • [分析案例] LiCl径向分布函数Open In Bohrium

  • [分析案例] - 需要更原理类的讲解,可以拿LJ/水作为更深入的例子,待完善

密度

扩散系数

电导

热导

光谱

声子谱

  • [分析案例] 声子谱计算不准是一个很常见的案例,需要提供一个分析案例

  • [分析脚本] APEX/dpgen autotest对声子谱的支持?

弹性模量

空位/缺陷/表面形成能

Gamma Line

相变转变温度(eg熔点等)

热力学自由能

  • DP-TI代码及案例优化

...

代码
文本

当模型精度没有达到预期的时候,该如何排查和调整?

代码
文本

在清楚了模型的检验标准之后,接下来的问题在于当希望进一步提升模型精度的时候,我们该如何排查和调整。 大体来讲,我们可以从以下四个方面进行思考与分析。

  1. 检查数据自洽性(第一性原理计算);

  2. 检查训练拟合过程(DeePMD-kit参数与模型架构等);

  3. 检查数据分布与采样问题(这也是DP-GEN一定程度上解决的问题);

  4. 检查对物理问题本身的理解。

代码
文本

数据自洽性

需要特别强调的是,模型输入的质量将很大程度上影响模型的质量。对于深度势能模型来讲,拟合对象一般是第一性原理计算数据。在进行大批量第一性原理计算(或大规模DP-GEN)之前对第一性原理计算参数和设置应该进行细致、严谨的检验,否则很有可能造成过多的计算资源和时间的浪费。

因此常需要进行第一性原理计算的测试,大致可以分为两个类型

  1. 首先是计算方法
    • 选择平面波方法或原子轨道方法,选择什么赝势(不同价电子)或原子轨道的选择;
    • 选择什么泛函/基组,如PBE/SCAN,是否需要加各类矫正;
    • ...
  2. 其次是参数的数值收敛性
    • 平面波截断能(VASP中对应参数名称是ENCUT);
    • K点密度(VASP对应参数名称是kspacing);
    • 自洽计算收敛准则(VASP中对应参数名称是EDIFF和EDIFFG等);
    • ...

声子谱、弹性模量、热导(高阶力常数)等性质因为是能量的高阶信息,对第一性原理计算的精度因而要求往往比较高,若第一性原理计算自身带来的数值误差已比较高,那么使用深度势能拟合该数据进行的计算结果也往往有高的偏差。 此外,不同的泛函对熔点/密度/晶格常数等性质的影响也较直接,因此往往需要仔细测试。

  • [分析脚本] 第一性原理参数收敛性自动化测试脚本

  • 以ABACUS为例、补充原子轨道的例子

更详细的关于收敛性测试的说明可以参考 https://tutorials.deepmodeling.com/en/latest/CaseStudies/Convergence-Test/Convergence-Test.html

代码
文本

与本章节配套的视频讲解可见下方链接,因视频网站设置,在本网页的显示清晰度可能不佳,可能需要访问原网站获取更清晰观看体验。

代码
文本

训练拟合过程

对于大多数周期性体系的第一性原理计算数据,DeePMD-kit仓库中默认的例子(se_e2_a模型)可以作为一次方便快速的测试起点,只需要进行type_map , decay_steps, training_data, (validation_data), numb_steps等的调整。

  1. 模型架构,以及特别是预训练模型的发展
  • DP+ZBL与辐照损伤/高压物理的案例

  • 考虑长程相互作用的模型 DPLR

  • ...

  1. 参数选择与训练技巧
代码
文本

数据分布与采样问题

  • 采样不充分或错误采样

    • 分析Lost atoms等crash的原因及解决办法/
    • 引入副作用的数据
  • DP-GEN原理和案例介绍

    • DP-GEN相关分析脚本,如trust level选择标准,accurate ratio report等功能

对物理问题本身的理解

  • 例一,尺寸效应,以扩散系数和rdf为例

  • 例二,模拟平衡分析、error bar分析,以电解液扩散系数为例

  • 例三,“聊一下与实验的比较”

代码
文本

案例分析

案例分析一:使用DP进行弹性模量计算

弹性性质表征材料刚度的性质,是材料最基础最重要的性质之一,对认识材料具有重要的意义。我们也可以使用深度势能模型进行弹性模量的计算。比如,在Jiang, W., Zhang, Y., Zhang, L., & Wang, H. (2021). Accurate deep potential model for the Al–Cu–Mg alloy in the full concentration space.Chinese Physics B,30(5), 050706. 这篇文章构造出的势函数可以用于Al-Cu-Mg任意比例混合的合金相互作用,在58个从Materials Project上选取的结构上进行一系列测试中,展现出了DP对弹性模量的计算能力,见Fig3. (a),近70%DP对弹性模量的预测可以在5GPa的误差之内,90%的预测可以在10GPa的误差之内。当然,在一些高温高压的情况下,误差可能会比这里的计算误差大,比如地质科学中的一些碳酸/硅酸化合物的弹性常数计算。

当遇到使用DP计算弹性模量不准确的时候,可以考虑参考本文的分析框架,从以下几个角度检查问题原因。

  1. https://tutorials.deepmodeling.com/en/latest/CaseStudies/Convergence-Test/Convergence-Test.html 这篇文档中举了一个TaC弹性模量计算的例子,在别的参数不变的情况下,VASP中kspacing参数从0.15到0.05变化后,分量结果的偏差甚至可达100GPa,这说明弹性常数在DFT存在数值误差的条件下本身也存在数值误差,再累加神经网络拟合的误差,精度只会更低。
  1. 考虑你的数据集中是否覆盖了一定程度形变的结构。计算弹性常数需要产生应变结构,并计算应力,因此数据集不能只有平衡态结构。一种可以考虑的做法是DP-GEN采样过程中常选取的在不同温度下(比如对合金而言可能会到2倍熔点)的分子动力学模拟,随着温度升高,一些无序、不规则的结构会被采样,这使得势函数描述的范围一般也更大。仍以上述Al-Cu-Mg为例,虽然我们只从hcp, fcc, bcc等晶形出发,但构建出来的势函数却可以描述Materials Project上其他没有显示被加入数据集的结构的性质。

  2. 检查你的DeePMD-kit的参数设置。

    • 因为弹性模量与能量的二阶导数相关,对能量的拟合准确度是比较敏感的,因此一般来讲需要训练较长步数,以保证能量的收敛性。建议训练步长至少100万步 (batch),并在训练完成后使用dp test进行能量精度的检查(特别地,可以对你所关心的结构)。在Al-Cu-Mg这篇文章中,因为数据集比较庞大,我们训练了1600万步。
    • 因为virial是能量对盒子的导数,如果能量和力的精度都足够高的情况下,准确计算维里是可以做到的。在Al-Cu-Mg这篇文章中我们也并没有加入维里数据,便已经可以足够准确地预测弹性常数了。但当数据自洽性没有那么高的时候,并且你不想重新再算一遍,你可以尝试在DeePMD-kit的训练过程中把维里也作为一个拟合项,看看精度是否能够提升。
 "start_pref_e": 0.01,
 "limit_pref_e": 1,
 "start_pref_f": 1000,
 "limit_pref_f": 1,
 "start_pref_v": 0.01,
 "limit_pref_v": 1

案例分析二...

代码
文本

基础问题诊断表

为方便深入排查,推荐使用Bohrium Notebook的方式将面临的问题整理出来。 可以使用Bohrium数据集功能将下方带有🔗标注的文件以数据集的形式分享,挂载到Bohrium Notebook中。

  1. 遇到的精度问题是什么? $______$

  2. 使用的第一性原理计算软件(以及版本)是什么?数据转化是如何做的的?

    • 第一性原理计算软件: $______$ (VASP 5.4/VASP 6.3/ABACUS 3.4/CP2K 7.1/CP2K 2022/...)

    • 数据转化方式: $______$ (使用dpdata的什么版本进行转化,如0.2.15/手写代码转化)

  3. 第一性原理计算参数是如何设置的?

    • 📎 提供指定第一性原理计算文件 如VASP中的INCAR/ABACUS中的INPUT文件
    • 所有拟合的数据中的一致性是否统一?$______$
    • 计算方法以及计算参数的数值收敛性如何?$______$
  4. 检查DeePMD-kit训练情况。

    • 📎 提供训练参数文件 input.json
    • 模型架构(se_a/se_atten/se_e3等);$______$
    • 训练步长(stop_batch参数)$______$
    • 能量/力/维里训练权重(各类pref参数)$______$
    • 📎 如果认为训练拟合精度不够,画出训练进行具体测试(如 dp test
  5. 数据采样是如何做的?

  6. 物理性质计算是如何做的?

代码
文本
DeePMD
DP答疑
DP-GEN
分子动力学
DeePMDDP答疑DP-GEN分子动力学
已赞14
本文被以下合集收录
机器学习与DFT精华帖
gtang
更新于 2024-09-10
38 篇21 人关注
good notebooks collected by Taiping Hu
TaipingHu
更新于 2024-09-10
33 篇14 人关注
推荐阅读
公开
AI辅助的材料建模&DeepModeling工具上手合集:从多尺度到预训练
AI4SDeepModelingDPA
AI4SDeepModelingDPA
Linfeng Zhang
发布于 2023-10-10
4 赞1 转存文件
公开
PDEBench:一款强大的PDE求解器基准测试
Neural NetworksDeep Learningfluid dynamics
Neural NetworksDeep Learningfluid dynamics
深势科技-冯宇辰
发布于 2023-07-12
5 赞4 转存文件13 评论