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

    文章

    5099

    浏览量

    134443
  • 人工智能
    +关注

    关注

    1813

    文章

    49734

    浏览量

    261464
  • 编译器
    +关注

    关注

    1

    文章

    1669

    浏览量

    51077
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    普冉PY32MD320系列芯片深度解析

    做水泵、电动工具、航模开发的你,是否还在为 “MCU + 驱动板” 的繁琐设计头疼?普冉半导体最新推出的PY32MD320 系列芯片,直接把三相半桥驱动集成进 32 位 MCU,体积缩水一半,成本还更低 —— 今天就带大家拆解这
    的头像 发表于 10-15 16:41 2323次阅读
    普冉PY32<b class='flag-5'>MD</b>320系列芯片<b class='flag-5'>深度</b>解析

    HC20MD6208_Datasheet_Ver1

    芯圣电子重磅推出HC20MD6208双向马达驱动芯片,HC20MD6208是控制和驱动双向马达,输入端兼TTL/CMOS电平,具有良好的抗干扰性。内部逻辑控制电路可控制双向马达正转、反
    发表于 09-15 14:25 0次下载

    芯圣HC20MD6208双向马达驱动芯片上市!

    芯圣电子重磅推出HC20MD6208双向马达驱动芯片,HC20MD6208是控制和驱动双向马达,输入端兼TTL/CMOS电平,具有良好的抗干扰性。内部逻辑控制电路可控制双向马达正转、反
    的头像 发表于 09-15 09:52 738次阅读
    芯圣HC20<b class='flag-5'>MD</b>6208双向马达<b class='flag-5'>驱动</b>芯片上市!

    HC20MD118S单通道直流电机驱动芯片_Datasheet_Ver_1

    HC20MD118S是一款单通道有刷直流马达驱动芯片。最大连续输出电流可达1.8A,峰值可达2.5A。该芯片内置功率MOS全桥驱动,可实现驱动前进、后退、停止及刹车功能,同时内置
    发表于 09-05 09:28 0次下载

    深度学习对工业物联网有哪些帮助

    深度学习作为人工智能的核心分支,通过模拟人脑神经网络的层级结构,能够自动从海量工业数据中提取复杂特征,为工业物联网(IIoT)提供了从数据感知到智能决策的全链路升级能力。以下从技术赋能、场景突破
    的头像 发表于 08-20 14:56 756次阅读

    自动驾驶Transformer大模型会取代深度学习吗?

    [首发于智驾最前沿微信公众号]近年来,随着ChatGPT、Claude、文心一言等大语言模型在生成文本、对话交互等领域的惊艳表现,“Transformer架构是否正在取代传统深度学习”这一话题一直被
    的头像 发表于 08-13 09:15 3916次阅读
    自动驾驶<b class='flag-5'>中</b>Transformer大模型会取代<b class='flag-5'>深度</b><b class='flag-5'>学习</b>吗?

    深度学习遇上嵌入式资源困境,特征空间如何破局?

    多层神经网络的非线性变换拟合规律,理论上几乎可以描述和模拟一切规律,但实际上该过程效率极低 —— 其计算复杂度往往呈指数级增长。这一特性使得深度学习与端侧设备的资源约束存在根本性矛盾,导致其在端侧 AI 实施过程
    发表于 07-14 14:50 1116次阅读
    当<b class='flag-5'>深度</b><b class='flag-5'>学习</b>遇上嵌入式资源困境,特征空间如何破局?

    嵌入式AI技术之深度学习:数据样本预处理过程中使用合适的特征变换对深度学习的意义

      作者:苏勇Andrew 使用神经网络实现机器学习,网络的每个层都将对输入的数据做一次抽象,多层神经网络构成深度学习的框架,可以深度理解数据中所要表示的规律。从原理上看,使用
    的头像 发表于 04-02 18:21 1280次阅读

    兼容MD3156,AC-DC电源芯片CN1810在户外监控的应用

    兼容MD3156,AC-DC电源芯片CN1810在户外监控的应用
    的头像 发表于 04-01 10:14 723次阅读
    兼容<b class='flag-5'>MD</b>3156,AC-DC电源芯片CN1810在户外监控<b class='flag-5'>中</b>的应用

    如何排除深度学习工作台上量化OpenVINO™的特定层?

    无法确定如何排除要在深度学习工作台上量化OpenVINO™特定层
    发表于 03-06 07:31

    军事应用深度学习的挑战与机遇

    人工智能尤其是深度学习技术的最新进展,加速了不同应用领域的创新与发展。深度学习技术的发展深刻影响了军事发展趋势,导致战争形式和模式发生重大变化。本文将概述
    的头像 发表于 02-14 11:15 818次阅读

    BP神经网络与深度学习的关系

    BP神经网络与深度学习之间存在着密切的关系,以下是对它们之间关系的介绍: 一、BP神经网络的基本概念 BP神经网络,即反向传播神经网络(Backpropagation Neural Network
    的头像 发表于 02-12 15:15 1338次阅读

    针对步进电机的专用驱动方案MD400系列电调

    MD400系列电调是针对步进电机的专用驱动方案,自带磁编码器芯片,采用FOC方式驱动步进电机,支持欠压、过压、过流和堵转保护等功能,支持UART、RS-485、CAN通信控制和脉冲方式控制,支持标准
    的头像 发表于 01-23 14:13 812次阅读
    针对步进电机的专用<b class='flag-5'>驱动</b>方案<b class='flag-5'>MD</b>400系列电调

    AI自动化生产:深度学习在质量控制的应用

    生产效率、保证产品质量方面展现出非凡的能力。阿丘科技「AI干货补给站」推出《AI自动化生产:深度学习在质量控制的应用》文章,探讨深度学习
    的头像 发表于 01-17 16:35 1209次阅读
    AI自动化生产:<b class='flag-5'>深度</b><b class='flag-5'>学习</b>在质量控制<b class='flag-5'>中</b>的应用

    PostgreSQL将不再支持MD5密码

    ,PostgreSQL MD5 密码散列很容易受到传递散列攻击,即知道用户名和散列密码就足以进行身份验证。v10 添加的 SCRAM-SHA-256 方法不存在这些问题,被认为优于 M
    的头像 发表于 12-10 16:14 735次阅读