\

用于模拟的人工智能:Graphcore如何帮助传统高性能计算实现转型

作者:

分享  

Share on weixin
Share on weibo
Share on linkedin

订阅

多年来,高性能计算(High Performance Computing,HPC)技术已被广泛地应用于解决世界上最复杂的科学问题,从对在大型强子对撞机上希格斯玻色子衰变进行建模到使用蒙特卡罗模拟来预测天气是否会好转。

然而,由于许多这些应用程序中涉及的计算非常复杂,研究人员通常要等待很长时间才能获得模拟结果。仅仅通过在更强大的硬件上运行相同的程序来加速这些工作流可能会非常昂贵,而这些高昂的费用往往也只能带来些许性能改进。

显然,需要一种新方法来高效地加速这些工作负载,而许多研究人员正在转向代理机器学习模型。

代理模型是旨在模仿传统HPC工作流的一部分并在加速的时间范围内提供结果的机器学习模型。如图1所示,该方案旨在用机器学习驱动的技术突破计算密集型瓶颈,而无需移植整个端到端工作流。

图1:使用人工智能加速HPC的高级架构

例如,给定一个物理系统,其行为要被模拟,一个代理模型可用于在一小部分时间内对通过计算成本更昂贵的蒙特卡洛模拟技术所获得的结果求近似。与使用数值方法相比,基于人工智能的求解器可用于更快地为微分方程组提供近似解。

如果使用传统HPC方法生成的数据非常准确,并且目标是更快地获得类似结果,则可以直接在模拟数据上训练机器学习模型。在许多情况下,基于机器学习的方法甚至在准确性方面优于传统的HPC仿真技术,从而为研究人员提供两全其美的优势:在更短的时间内获得更准确的结果。

Graphcore的Bow Pod系统由智能处理器(IPU)提供支持,专为加速机器学习工作负载而从头设计,具有即插即用连接,可实现高效的数据中心可扩展性。此外,Bow Pod的分解式架构意味着CPU与IPU分开,CPU和IPU的比率可以根据工作负载要求而变化。

这种灵活的CPU和IPU比率有助于使Bow Pod成为使用人工智能代理模型加速HPC工作负载的理想平台;它允许研究人员加速其工作负载中基于机器学习的部分,而不会妨碍那些可能依赖于更传统的CPU工作负载HPC技术的部分。

在接下来的部分中,我们将探讨使用人工智能来加速其部分HPC工作负载的各种应用。除非另有说明,否则所有示例均在IPU Bow和当前Bow Pod系列推出之前的第二代Graphcore IPU系统上运行。

ECMWF:使用人工智能加速天气预报应用

M. Chantry等人最近的一篇论文中,欧洲中期天气预报中心(European Centre for Medium-range Weather Forecasting,ECMWF)探索了使用深度学习模型对重力波阻在数值天气预报中的影响进行仿真。这项工作中的一部分是设计了一系列深度学习模型来仿真更传统的、非基于机器学习的、参数化方案的结果。

Chantry等人特别关注对非地形重力波阻(Non-Orographic Gravity Wave Drag,NOGWD)的影响进行参数化,这是一种由向上传播的重力波破裂引起的纬向加速度,通常会导致大气中的湍流和消散。这些类型的重力波发生在广泛的尺度上,意味着虽然当前的预测分辨率可以解决一些重力波,但无法解决所有的重力波。NOGWD对天气系统的影响可能发生在季节性时间尺度上,因此该方案的有效参数化对于中长期天气预报很重要。

ATOS的工程师在TensorFlow 2中为Graphcore提供了MLP和CNN模型的实现。这些模型被移植到IPU,只需更改少量代码就可以高效成功地进行训练。在不对模型定义或其超参数进行任何更改的情况下,单个IPU处理器能够以比A100 GPU快5倍的速度训练这一MLP模型,比MLP模型或在CPU上执行的传统参数化方案快约50倍。您可以阅读我们的天气预报博客文章以了解更多信息。

RAISE:受U-Net启发、用于湍流燃烧建模的CNN

深度学习方法越来越多地应用于计算流体动力学(Computational Fluid Dynamics,CFD)领域。在许多情况下,问题的特征在于由确定性方程定义的物理模型,这意味着数据驱动的方法最多只能导致近似解。然而,这些问题通常可以分解为子问题,每个子问题都依赖于一组更简单的假设,而不是复杂的、定义明确的方程。数据驱动的机器学习方法可以使用更昂贵的数值模拟生成的数据进行训练,并用于提供底层系统的准确模型。

其中一种方法是使用深度学习模型来估计子网格尺度(Sub-Grid Scale,SGS)对燃烧建模中火焰表面密度估计的贡献。在大涡模拟(Large-Eddy Simulation,LES)中,定义了一个截止尺度,以便将发生在比直接解析更小的尺度上的反应分组到估计的SGS贡献项中,从而在模拟准确性和计算复杂性之间实现折衷。

由于LES模型的可靠性取决于对SGS贡献的准确建模,但降低截止门槛会产生大量计算成本,因此在火焰表面密度估计中快速准确地对SGS贡献进行建模的能力将非常有价值。

欧洲百亿亿次计算卓越中心(The European Center of Excellence in Exascale Computing)的《百亿亿次基于人工智能和模拟的工程研究》(Research on AI- and Simulation-Based Engineering at Exascale)(CoE RAISE)使用受U-Net启发的模型来估计SGS对预混合湍流火焰反应速率的贡献进行了仔细调查

该模型将更大的64 x 32 x 32三维体积的16 x 16 x 16裁剪作为输入,表示进度变量c,针对温度T定义为:

对于每个点,下标bu分别表示已燃烧和未燃烧气体的温度。模型输出张量近似于每个空间点的火焰表面密度∑。经过训练后,该模型在准确估计∑方面优于经典代数模型。

ATOS的工程师为Graphcore提供了这个受U-Net启发的模型的实现,并且只需更改少量代码,该模型就可以移植到单个IPU处理器上进行训练。此外,发现该模型在V100上的训练时间约为20分钟,而使用单个IPU训练的时间约为5分钟。在这两种情况下,模型在大约150个epoch(时期)内收敛,在IPU上训练的模型可以收敛到较低的MSE损失。

布里斯托大学:用于模拟大型强子对撞机喷射生产的GAN

与CFD建模类似,在高能粒子物理(High-Energy Particle Physics,HEP)中有效生成模拟数据需要克服重大的技术难题。其中一项挑战是对质子-质子碰撞中的粒子“喷射流”进行准确和快速的模拟。

在高能质子与质子碰撞中,会产生许多亚原子粒子。根据量子色动力学(Quantum Chromodynamics,QCD)定律,产生出的某些类型的粒子,如夸克,不能自由存在而因此强子化,产生并与其他粒子结合,导致狭窄的锥形“喷射流”。然后可以在粒子探测器中测量这些喷射流的能量和动量,以研究原始夸克的特性。

由于需要准确模拟大量粒子碰撞,欧洲核子研究组织(CERN)大型强子对撞机(Large Hadron Collider,LHC)的喷射流生产模拟突显了一个巨大的技术障碍。为了克服这一挑战,研究人员已经开始研究使用生成对抗网络(Generative Adversarial Network,GAN)以比使用传统蒙特卡罗方法更快地生成逼真的模拟数据。

通常,GAN由两个网络组成,一个生成器和一个鉴别器。生成器将随机噪声转化为数据样本,鉴别器尝试区分真实数据样本和生成的数据样本,每个网络都根据另一个网络的输出进行训练。长期以来,GAN一直能够生成照片般逼真的图像,并且越来越多地被用于粒子物理应用中,既用于生成模拟碰撞数据,也用于对粒子探测器的物理特性准确建模。

布里斯托大学的研究人员在LHC进行LHCb实验,他们比较了Graphcore IPU和现有基于GPU的解决方案的GAN训练和推理性能。在这种情况下,一个基于CNN的DiJetGAN模型被训练来模拟LHC中粒子喷射流的产生。

我们发现,和P100 GPU相比,单个GC2(第一代)IPU处理器能够提供高达5.4倍的性能提升,而功耗仅为其一半。借助最新、灵活、可有效训练大量此类模型的Bow Pod架构,在IPU上加速HEP中的模拟工作流的可能性是巨大的。

除了DiJetGAN模型外,布里斯托大学团队还在IPU上实施了用于粒子识别的循环神经网络(recurrent neural network,RNN)以及卡尔曼滤波器算法。更多细节请见他们的原始论文以及我们的博客

用于量子化学、药物研发和蛋白质折叠的人工智能

HEP中的这些和其他深度学习实验表明了人工智能在亚原子尺度上对量子相互作用准确建模的潜力,但在原子甚至分子尺度上表现如何呢?Graphcore工程师一直在与世界各地的研究人员合作,希望利用人工智能实现量子化学和模拟生物大分子等领域的革命性变化。

DeePMD-Kit:分子动力学模拟

我们已经看到深度学习有可能彻底改变亚原子物理学中模拟和建模的许多方面,但也存在对原子和分子尺度上微观物体的快速准确模拟的巨大需求。

分子动力学模拟是模拟分子和原子系统中的运动,通常涉及计算分子中原子的能量、作用在每个原子上的力,或两者兼而有之。自然而然地,随着所考虑的原子数量的增加,这种计算很快变得极其复杂。

虽然支配化学和大部分量子物理学的物理定律已经确立,但各自的方程往往过于复杂而无法准确求解。近似数值模拟通常需要大量时间,因此需要新的方法来加速这些模拟任务。最近,基于机器学习的方法在开发用于模拟复杂原子系统的工具中得到了更广泛的应用。

领先的中国药物研发分子动力学模拟公司深势科技最近宣布IPU为其获奖的模拟平台DeePMD-Kit提供支持。这项工作能够更准确地进行分子动力学模拟,比传统数值方法快几个数量级,为这个正在经历人工智能驱动的转型的领域开辟了新的可能性。

您可以阅读我们的深度技术博客或访问我们的DeePMD-Kit开源存储库以获取有关此项目的更多信息。

SchNet:模拟水分子中的原子

最近,几种基于深度神经网络的方法被开发以用于量子化学中的分子动力学模拟。

SchNet是一种基于CNN的模型,用于模拟分子中原子之间的量子相互作用。与图像中的像素不同,分子中的原子并不局限于规则的网格状结构。此外,它们的精确位置形成了计算分子间能量和力所必需的关键信息。因此,该模型利用连续过滤卷积层,从而不需要离散原子的位置。

使用连续滤波器卷积让模型能在任意位置考虑任意数量的相邻原子。该模型由一个嵌入层和三个包含这些连续滤波器卷积层的交互块组成,原子之间的交互由原子密集层计算,如下图所示。

图2:SchNet架构,取自ArXiv:1706.08566

Graphcore工程师在QM9分子数据集上成功地在IPU上训练了SchNet模型。该数据集被广泛用于对模型预测均衡状态下原子的各种特性的能力进行基准测试。

DeepDriveMD:使用人工智能加速蛋白质折叠 

除了在量子化学中的应用,深度学习在蛋白质折叠方面也显示出巨大的潜力,蛋白质折叠是指将蛋白质的氨基酸序列“折叠”成3D原子结构的过程。几十年来,更好地了解蛋白质如何折叠成其天然的3D结构一直是计算生物学的关注重点,准确高效地对这一行为建模的能力有助于更快、更先进的医药研发。

DeepDriveMD是一种深度学习驱动的蛋白质折叠分子动力学工作流,它将机器学习技术与原子论分子动力学模拟相结合。这种混合HPC/人工智能方法由基于HPC的数值模拟和人工智能代理模型组成,如图3所示。

图3:详细描述DeepDriveMD工具链的4个关键步骤的计算主旨,取自 ArXiv:1909.07817

首先,从大量MD模拟中生成初始数据池(1)。接下来,这些数据作为输入馈送到机器学习模型(2),然后在模型上运行推理以确定MD模拟的新起点(3)。最后,在(4)中生成了新的MD模拟。这些可以简单地添加到模拟数据池中,也可以替换现有的模拟;例如,已经陷入某种亚稳态的模拟。

最初作为DeepDriveMD的一部分实现的机器学习模型是卷积变分自动编码器(CVAE),并指出上述主旨不限于特定的深度学习架构。通过训练这个模型,作者能够在6微秒内完成Fs肽折叠状态,而不使用机器学习驱动的方法大约需要14微秒,从而实现超过2倍的加速。

Cray Labs的DeepDriveMD的CVAE实现是Cray的SmartSim存储库的一部分,在IPU-M2000上进行了训练,吞吐量比A100 GPU快约3倍。结合通过使用DeepDriveMD在非基于机器学习的实现上获得的加速,这种混合人工智能/HPC方法与Graphcore IPU-POD的结合在加速蛋白质折叠工作负载方面提供了巨大的潜力。

粘性伯格斯方程:用于求解偏微分方程的物理导引神经网络

正如我们最近在计算流体动力学中使用神经网络所看到的那样,基于人工智能的求解器正变得越来越流行,用于在加速时间范围内计算对复杂方程的良好近似。另一个最近越来越受欢迎的机器学习的焦点是物理导引神经网络(Physics-Informed Neural Network,PINN)。

在典型的监督学习场景中,神经网络包含一个损失函数,它代表了对网络预测与地面实况相距多远的某种衡量。诸如均方根误差(Root-Mean-Square Error,RMSE)之类的简单损失函数仅使用预测值与地面实况之间的差异,而不考虑物理系统的任何先验知识。在诸如图像分类的情况下,对于任意图像可能不存在此类知识,但是在科学研究的许多领域中,基础性物理通常是明确定义的,例如通过一组微分方程来定义。作为损失函数的一部分,这些已知方程已被PINN包含,使它们能够更好地学习特定系统的行为。

德克萨斯农工大学高性能研究计算(High Performance Research Computing,HPRC)的研究人员一直在研究使用PINN来解决“恶名远扬”的粘性伯格斯偏微分方程(PDE)。该PDE出现在流体力学和交通流等各种数学领域,可用于对不可压缩流体中的波演化进行建模。伯格斯的PDE已经被许多研究人员研究了一个多世纪,并且经常用于测试数值PDE求解程序的准确性。

使用准确的数值近似值作为测量PINN解决方案的参考。PDE由正弦初始条件和齐次狄利克雷边界条件构成,如下所示:

在流体粘性v小于~0.1π的情况下,在x=0处形成不连续的冲击波。

粘性伯格斯的PDE的PINN解决方案是使用TensorDiffEq计算的,TensorDiffEq是由德克萨斯农工大学的研究人员开发的基于TensorFlow 2.X的开源软件包。该解决方案与经典数值解决方案非常一致,两种解决方案在非常低的粘度下变得不稳定,同时完成时间更短。

粘性伯格斯的PDE实现和TensorDiffEq框架在IPU上运行,从而可以有效加速大量的PINN。

安捷中科:使用人工智能进行准确的气候建模

我们已经看到了几个人工智能模型加速HPC工作流的用例。虽然IPU旨在加速机器智能工作负载,但IPU架构的许多方面使其能够很好地执行经典HPC工作负载。

我们已经看到ECMWF的研究人员使用MLP和CNN模型进行天气预报应用所取得的出色成果,但在气候建模方面,IPU也有机会加速更传统的算法方法。

Graphcore工程师一直与中国数字化转型专家安捷中科合作,为蒸发蒸腾量建模,即水从植物和土壤等表面进入大气的速率。本案例的目的不是在IPU上运行整个端到端工具链,而是确定可以被有效加速的关键要素。

测量蒸发蒸腾量对于在农业中实现精确灌溉非常有用,这一方法正在被积极研究以用于森林防火和自然灾害管理。然而,在现实世界中此类测量的空间细粒度是有限度的,通常导致在地图上绘制时测量非常粗糙。为了给出某个位置的参考蒸发蒸腾值(ET0)的更细粒度的近似值,使用了一种称为克里金法(Kriging)的插值技术。该方法与回归分析密切相关,并且计算量很大。

图4:ET0总体流程

如上图所示,包括克里金算法在内的主要计算流水线在IPU上运行,将数据预处理和插值后应用步骤保持在CPU上。

PyKrige是克里金算法的Python实现,在TensorFlow中实施,目的是在IPU上执行底层矩阵求逆和乘法。这使得整个数据集的插值只需21秒,而在CPU上使用PyKrige需要2000秒。

您可以阅读我们的技术博客以获取更多信息,也可以在我们的组合示例存储库中找到项目源代码。

使用人工智能和Graphcore IPU加速HPC工作负载

虽然我们已经涵盖了用于模拟的人工智能领域中各种激动人心的应用,通过在IPU上运行的人工智能技术可以增强传统的HPC工作负载,但这只是冰山一角。随着欧洲核子研究组织的LHC等旨在在未来几年收集和分析更大数量级数据的大规模科学试验不断开展,加速经典流程的需求比以往任何时候都更大。

越来越多在药物研发、天气预报、气候建模和计算流体动力学等领域工作的研究人员正在寻求基于机器学习的方法来增强他们的工具链,无论是准确性还是结果效率。此外,PINN等新方法正在彻底改变神经网络如何学习模仿由定义明确但复杂的方程控制的物理系统。

随着这些和其他基于人工智能的新方法不断发展,对能够有效加速这些工作负载的专门硬件的需求正在增长。Graphcore的IPU专为机器智能从头设计,是构建、探索和发展下一代机器学习驱动的求解器、仿真器和模拟的理想平台。

More Posts

ChatGPT开源平替:OpenAssistant OASST1微调版Pythia-12B

Flan-T5:用更小且更高效的LLM实现出色效果

详细攻略:在IPU上以float16精度运行FLAN-T5-XL推理

较小模型,超高性能:DeBERTa和自然语言理解的未来

PackedBert:如何用打包的方式加速Transformer的自然语言处理任务

Pienso为企业提供由云上IPU支持的高效大型语言模型访问

获取最新的GRAPHCORE资讯

在下方注册以获取最新的资讯和更新:




    获取最新的GRAPHCORE资讯

    在下方注册以获取最新的资讯和更新: