0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用深度学习包在LAMMPS中驱动MD模拟

星星科技指导员 来源:NVIDIA 作者:NVIDIA 2022-04-08 17:39 次阅读

几十年来,分子模拟界在模拟势能面和原子间作用力时面临着精度与效率的两难选择。深势,人工神经网络力场,通过结合经典分子动力学( MD )模拟的速度和密度泛函理论( DFT )计算的准确性来解决这个问题。 这是通过使用 GPU – 优化包 DeePMD-kit 实现的,这是一个用于多体势能表示和 MD 模拟的深度学习包。

这篇文章提供了一个端到端的演示,演示如何为二维材料石墨烯训练神经网络潜力,并使用它在开源平台大型原子/分子大规模并行模拟器( LAMMPS )中驱动 MD 模拟。 培训数据可从维也纳从头算模拟软件包( VASP )获得 ,或量子浓缩咖啡( QE )。

分子建模、机器学习和高性能计算( HPC )的无缝集成通过分子动力学和从头算准确性—这完全是通过基于容器的工作流来实现的。利用人工智能技术拟合 DFT 产生的原子间作用力,可以通过线性标度将可访问的时间和尺寸标度提高几个数量级。

深度潜能本质上是机器学习和物理原理的结合,它开启了一种新的计算范式,如图 1 所示。

pYYBAGJQAvCAExdYAAXj8091ofo087.png

图 1 。由分子建模、人工智能和高性能计算组成的新计算范式。(图提供:张林峰博士, DP 技术)

整个工作流如图 2 所示。数据生成步骤由 VASP 和 QE 完成。数据准备、模型训练、测试和压缩步骤使用 DeePMD 工具包完成。模型部署在 LAMMPS 中。

poYBAGJQAveAVl3PAABu4cLew7I826.png

图 2 。 DeePMD 工作流程图。

为什么是集装箱?

容器是一个可移植的软件单元,它将应用程序及其所有依赖项组合到一个与底层主机操作系统无关的包中。

本文中的工作流程涉及 AIMD 、 DP 培训和 LAMMPS MD 模拟。使用正确的编译器设置、 MPI 、 GPU 库和优化标志从源代码安装每个软件包是非常重要和耗时的。

容器通过为每个步骤提供一个高度优化的 GPU 支持的计算环境来解决这个问题,并且消除了安装和测试软件的时间。

NGC 目录是 GPU 优化的 HPC 和 AI 软件的集线器,它携带了整个 HPC 和 AI 容器 ,可以很容易地部署在任何 GPU 系统上。 NGC 目录中的 HPC 和 AI 容器经常更新,并进行可靠性和性能测试,这对于加快解决时间是必要的。

还将扫描这些容器的常见漏洞和暴露( CVE ),确保它们没有任何开放端口和恶意软件。此外, HPC 容器支持 Docker 和 Singularity 运行时,并且可以部署在云中或本地运行的多[ZFBB]和多节点系统上。

训练数据生成

模拟的第一步是数据生成。我们将向您展示如何使用 VASP 和 Quantum ESPRESSO 来运行 AIMD 模拟并为 DeePMD 生成训练数据集。可以使用以下命令从 GitHub 存储库下载所有输入文件:

git clone https://github.com/deepmodeling/SC21_DP_Tutorial.git

VASP

如图 3 所示,使用具有 98 个原子的二维石墨烯系统。 为了生成训练数据集,在 300K 下进行 0 。 5ps NVT AIMD 模拟。选择的时间步长为 0 。 5fs 。 DP 模型是使用固定温度下 0 。 5ps MD 轨迹的 1000 个时间步长创建的。

由于仿真时间较短,训练数据集包含连续的系统快照,这些快照高度相关。通常,训练数据集应从与各种系统条件和配置不相关的快照中采样。对于这个例子,我们使用了一个简化的训练数据方案。对于生产 DP 培训,建议使用 DP-GEN 利用并行学习方案,以有效探索更多的条件组合。

用投影增强波赝势描述了价电子与冻结核之间的相互作用。广义梯度近似交换− Perdew 的相关泛函−伯克−恩泽霍夫。在所有系统中,只有 Γ-point 用于 k-space 采样。

图 3 AIMD 模拟中使用了由 98 个碳原子组成的石墨烯系统。

量子浓缩咖啡

AIMD 模拟也可以使用 Quantum ESPRESSO ( NGC 目录中的container提供)进行。 Quantum ESPRESSO 是一套基于密度泛函理论、平面波和赝势的开放源代码,用于 Nan oscale 的电子结构计算和材料建模。 QE 计算中使用了相同的石墨烯结构。以下命令可用于启动 AIMD 模拟:

$ singularity exec --nv docker://nvcr.io/hpc/quantum_espresso:qe-6.8 cp.x < c.md98.cp.in

培训数据准备

一旦从 AIMD 仿真中获得训练数据,我们希望使用 dpdata因此,它可以作为深层神经网络的输入。dpdata包是 AIMD 、 Classic MD 和 DeePMD 工具包之间的格式转换工具包。

您可以使用方便的工具dpdata将数据直接从 first principles 软件包的输出转换为 DeePMD 工具包格式。对于深势训练,必须提供物理系统的以下信息:原子类型、盒边界、坐标、力、病毒和系统能量。

快照或系统框架在一个时间步中包含所有原子的所有这些数据点,可以以两种格式存储,即rawnpy

第一种格式raw是纯文本,所有信息都在一个文件中,文件的每一行表示一个快照。不同的系统信息存储在名为box.raw, coord.raw, force.raw, energy.rawvirial.raw的不同文件中。我们建议您在准备培训文件时遵循这些命名约定。

force.raw的一个示例:

$ cat force.raw
-0.724 2.039 -0.951 0.841 -0.464 0.363 6.737 1.554 -5.587 -2.803 0.062 2.222
-1.968 -0.163 1.020 -0.225 -0.789 0.343

这个force.raw包含三个框架,每个框架具有两个原子的力,形成三条线和六列。每条线在一帧中提供两个原子的所有三个力分量。前三个数字是第一个原子的三个力分量,而下三个数字是第二个原子的力分量。

坐标文件coord.raw的组织方式类似。在box.raw中,应在每行上提供盒向量的九个分量。在virial.raw中,维里张量的九个分量应按XX XY XZ YX YY YZ ZX ZY ZZ的顺序提供在每一行上。所有原始文件的行数应相同。我们假设原子类型不会在所有帧中改变。它由type.raw提供,它有一行原子类型,一行一行地写。

原子类型应该是整数。例如,一个系统的type.raw有两个原子,分别为零和一:

$ cat type.raw
0 1

将数据格式转换为raw不是一项要求,但此过程应能说明可作为培训用 DeePMD 工具包输入的数据类型。

将第一原理结果转换为训练数据的最简单方法是将其保存为 NumPy 二进制数据。

对于 VASP 输出,我们准备了一个outcartodata.py脚本来处理 VASP OUTCAR 文件。通过运行以下命令:


$ cd SC21_DP_Tutorial/AIMD/VASP/
$ singularity exec --nv docker://nvcr.io/hpc/deepmd-kit:v2.0.3 python outcartodata.py
$ mv deepmd_data ../../DP/

量化宽松产出:

$ cd SC21_DP_Tutorial/AIMD/QE/
$ singularity exec --nv docker://nvcr.io/hpc/deepmd-kit:v2.0.3 python logtodata.py
$ mv deepmd_data ../../DP/

生成名为deepmd_data的文件夹并将其移动到培训目录。它生成五组0/set.000, 1/set.000, 2/set.000, 3/set.000, 4/set.000,每组包含 200 帧。不需要处理每个 set .*目录中的二进制数据文件。包含set.*文件夹和type.raw文件的路径称为系统。如果要训练非周期系统,应在系统目录下放置一个空nopbc文件。box.raw不是必需的,因为它是非周期系统。

我们将使用五套中的三套进行培训,一套用于验证,另一套用于测试。

深势模型训练

深势模型的输入是包含前面提到的系统信息的描述符向量。神经网络包含几个隐藏层,由线性和非线性变换组成。在这篇文章中,使用了一个三层神经网络,每层有 25 个、 50 个和 100 个神经元。神经网络学习的目标值或标签是原子能。训练过程通过最小化损失函数来优化权重和偏差向量。

训练由命令启动,其中input.json包含训练参数

$ singularity exec --nv docker://nvcr.io/hpc/deepmd-kit:v2.0.3 dp train input.json

DeePMD 工具包打印培训和验证数据集的详细信息。数据集由输入脚本的training部分中定义的training_datavalidation_data确定。训练数据集由三个数据系统组成,而验证数据集由一个数据系统组成。原子数、批次大小、系统中的批次数以及使用系统的概率均如图 4 所示。最后一列显示系统是否假设周期边界条件。

图 4 DP 培训输出的屏幕截图。

在培训期间,每disp_freq培训步骤都会使用用于培训模型的批次和验证数据中的numb_btch批次测试模型的错误。在文件disp_file中相应地打印训练错误和验证错误(默认为lcurve.out)。可在输入脚本中通过训练和验证数据集相应部分中的键batch_size设置批量大小。

输出的一个示例:

# step rmse_val rmse_trn rmse_e_val rmse_e_trn rmse_f_val rmse_f_trn lr 0 3.33e+01 3.41e+01 1.03e+01 1.03e+01 8.39e-01 8.72e-01 1.0e-03 100 2.57e+01 2.56e+01 1.87e+00 1.88e+00 8.03e-01 8.02e-01 1.0e-03 200 2.45e+01 2.56e+01 2.26e-01 2.21e-01 7.73e-01 8.10e-01 1.0e-03 300 1.62e+01 1.66e+01 5.01e-02 4.46e-02 5.11e-01 5.26e-01 1.0e-03 400 1.36e+01 1.32e+01 1.07e-02 2.07e-03 4.29e-01 4.19e-01 1.0e-03 500 1.07e+01 1.05e+01 2.45e-03 4.11e-03 3.38e-01 3.31e-01 1.0e-03

如图 5 所示,训练误差随着训练步骤单调减少。训练后的模型在测试数据集上进行了测试,并与 AIMD 仿真结果进行了比较。测试命令是:

$ singularity exec --nv docker://nvcr.io/hpc/deepmd-kit:v2.0.3 dp test -m frozen_model.pb -s deepmd_data/4/ -n 200 -d detail.out

图 5 有步骤的训练损失

结果如图 6 所示。

图 6 用 AIMD 能量和力测试训练后的 DP 模型的预测精度。

模型导出和压缩

模型训练完成后,生成一个冻结模型,用于 MD 仿真中的推理。从检查点保存神经网络的过程称为“冻结”模型:

$ singularity exec --nv docker://nvcr.io/hpc/deepmd-kit:v2.0.3 dp freeze -o graphene.pb

生成冻结模型后,可以在不牺牲精度的情况下对模型进行压缩;在 MD 中大大加快推理性能的同时,根据仿真和训练设置,模型压缩可以将性能提高 10 倍,在 GPU 上运行时将内存消耗减少 20 倍。

可以使用以下命令压缩冻结模型,-i表示冻结模型,-o表示压缩模型的输出名称:

$ singularity exec --nv docker://nvcr.io/hpc/deepmd-kit:v2.0.3 dp compress -i graphene.pb -o graphene-compress.pb

LAMMPS 中的模型部署

在 LAMMPS 中实现了一种新的配对方式,以便在前面的步骤中部署经过训练的神经网络。对于熟悉 LAMMPS 工作流程的用户,只需进行最小的更改即可切换到深度潜力。例如,具有 Tersoff 电位的传统 LAMMPS 输入具有以下电位设置:

pair_style tersoff
pair_coeff * * BNC.tersoff C

若要使用深电位,请将以前的线路替换为:

pair_style deepmd graphene-compress.pb
pair_coeff * *

输入文件中的pair_style命令使用 DeePMD 模型来描述石墨烯系统中的原子相互作用。

  • graphene-compress.pb文件表示用于推断的冻结和压缩模型。
  • MD 模拟中的石墨烯系统包含 1560 个原子。
  • 周期性边界条件应用于横向xy方向,自由边界应用于z方向。
  • 时间步长设置为 1 fs 。
  • 将系统置于温度为 300 K 的 NVT 系综下进行松弛,这与 AIMD 设置一致。

NVT 松弛后的系统配置如图 7 所示。可以观察到,深势可以描述原子结构,在横平面方向上有小的波纹。在 10ps NVT 松弛后,将系统置于 NVE 系综下以检查系统稳定性。

图 7 深势弛豫后石墨烯体系的原子构型。

系统温度如图 8 所示。

图 8 NVT 和 NVE 组合下的系统温度。深势驱动的分子动力学系统在弛豫后非常稳定。

为了验证经过训练的 DP 模型的准确性,从 AIMD 、 DP 和 Tersoff 计算出的径向分布函数( RDF )如图 9 所示。 DP 模型生成的 RDF 与 AIMD 模型非常接近,这表明 DP 模型可以很好地描述石墨烯的晶体结构。

图 9 。分别用 AIMD 、 DP 和 Tersoff 势计算径向分布函数。可以观察到, DP 计算的 RDF 与 AIMD 非常接近。

结论

这篇文章展示了在给定条件下石墨烯的一个简单案例研究。 DeePMD-kit 软件包简化了从 AIMD 到经典 MD 的工作流程,具有很大的潜力,提供了以下关键优势:

TensorFlow 框架中实现高度自动化和高效的工作流。

使用流行的 DFT 和 MD 包(如 VASP 、 QE 和 LAMMPS )的 API

广泛应用于有机分子、金属、半导体、绝缘体等。

具有 MPI 和[ZFBB]支持的高效 HPC 代码。

模块化,便于其他深度学习潜在模型采用。

此外,使用 NGC 目录中的 GPU – 优化容器简化并加速了整个工作流程,省去了安装和配置软件的步骤。

关于作者

Jingchao Zhang 是英伟达高等教育和研究团队的资深解决方案设计师。他也是佛罗里达大学 Nvidia AI 技术中心( NVAITC )的常驻科学家。他获得了博士学位。爱荷华州立大学机械工程专业。在加入 NVIDIA 之前,他在研究计算领域工作了 8 年。他的研究兴趣包括计算材料科学和机器学习。

Yifan Li 是普林斯顿大学化学系一年级研究生。伊凡于 2020 年 7 月在北京大学获得化学学士学位。他的研究兴趣包括分子动力学中的机器学习力场、核量子动力学模拟和自动区分量子化学程序。

Akhil Docca 是 NVIDIA NGC 的高级产品营销经理,专注于 HPC 和 DL 容器。 Akhil 拥有加州大学洛杉矶分校安德森商学院工商管理硕士学位,圣何塞州立大学机械工程学士学位。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4735

    浏览量

    128919
  • 人工智能
    +关注

    关注

    1791

    文章

    47244

    浏览量

    238366
  • 编译器
    +关注

    关注

    1

    文章

    1634

    浏览量

    49121
收藏 人收藏

    评论

    相关推荐

    GPU在深度学习的应用 GPUs在图形设计的作用

    随着人工智能技术的飞速发展,深度学习作为其核心部分,已经成为推动技术进步的重要力量。GPU(图形处理单元)在深度学习扮演着至关重要的角色,
    的头像 发表于 11-19 10:55 479次阅读

    NPU在深度学习的应用

    随着人工智能技术的飞速发展,深度学习作为其核心驱动力之一,已经在众多领域展现出了巨大的潜力和价值。NPU(Neural Processing Unit,神经网络处理单元)是专门为深度
    的头像 发表于 11-14 15:17 534次阅读

    GPU深度学习应用案例

    GPU在深度学习的应用广泛且重要,以下是一些GPU深度学习应用案例: 一、图像识别 图像识别是深度
    的头像 发表于 10-27 11:13 391次阅读

    AI大模型与深度学习的关系

    AI大模型与深度学习之间存在着密不可分的关系,它们互为促进,相辅相成。以下是对两者关系的介绍: 一、深度学习是AI大模型的基础 技术支撑 :深度
    的头像 发表于 10-23 15:25 701次阅读

    深度学习反卷积的原理和应用

    深度学习的广阔领域中,反卷积(Deconvolution,也称作Transposed Convolution)作为一种重要的图像上采样技术,扮演着至关重要的角色。特别是在计算机视觉任务,如图
    的头像 发表于 07-14 10:22 1653次阅读

    深度学习的时间序列分类方法

    的发展,基于深度学习的TSC方法逐渐展现出其强大的自动特征提取和分类能力。本文将从多个角度对深度学习在时间序列分类的应用进行综述,探讨常用
    的头像 发表于 07-09 15:54 909次阅读

    深度学习的无监督学习方法综述

    应用往往难以实现。因此,无监督学习深度学习扮演着越来越重要的角色。本文旨在综述深度
    的头像 发表于 07-09 10:50 706次阅读

    深度学习在视觉检测的应用

    深度学习是机器学习领域中的一个重要分支,其核心在于通过构建具有多层次的神经网络模型,使计算机能够从大量数据自动学习并提取特征,进而实现对复
    的头像 发表于 07-08 10:27 723次阅读

    深度学习与nlp的区别在哪

    方法,它通过模拟人脑的神经网络结构,实现对数据的自动特征提取和学习深度学习的核心是构建多层的神经网络结构,每一层都包含大量的神经元,这些神经元通过权重连接,实现对输入数据的逐层抽象和
    的头像 发表于 07-05 09:47 922次阅读

    深度学习的模型权重

    深度学习这一充满无限可能性的领域中,模型权重(Weights)作为其核心组成部分,扮演着至关重要的角色。它们不仅是模型学习的基石,更是模型智能的源泉。本文将从模型权重的定义、作用、优化、管理以及应用等多个方面,深入探讨
    的头像 发表于 07-04 11:49 1243次阅读

    深度学习常用的Python库

    深度学习作为人工智能的一个重要分支,通过模拟人类大脑中的神经网络来解决复杂问题。Python作为一种流行的编程语言,凭借其简洁的语法和丰富的库支持,成为了深度
    的头像 发表于 07-03 16:04 643次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮,机器学习深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管
    的头像 发表于 07-01 11:40 1353次阅读

    深度学习在自动驾驶的关键技术

    随着人工智能技术的飞速发展,自动驾驶技术作为其中的重要分支,正逐渐走向成熟。在自动驾驶系统深度学习技术发挥着至关重要的作用。它通过模拟人脑的学习
    的头像 发表于 07-01 11:40 760次阅读

    深度解析深度学习下的语义SLAM

    随着深度学习技术的兴起,计算机视觉的许多传统领域都取得了突破性进展,例如目标的检测、识别和分类等领域。近年来,研究人员开始在视觉SLAM算法引入深度
    发表于 04-23 17:18 1289次阅读
    <b class='flag-5'>深度</b>解析<b class='flag-5'>深度</b><b class='flag-5'>学习</b>下的语义SLAM

    什么是深度学习?机器学习深度学习的主要差异

    2016年AlphaGo 击败韩国围棋冠军李世石,在媒体报道,曾多次提及“深度学习”这个概念。
    的头像 发表于 01-15 10:31 1068次阅读
    什么是<b class='flag-5'>深度</b><b class='flag-5'>学习</b>?机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>的主要差异