AI for Science日益表现出打破传统科学研究才干瓶颈的巨大潜力,正在成为全球科学研究新范式。近年来,各学科不断参加,模型精度、泛化性逐渐前进,不同技术途径、不同运用场景的AI for Science成功运用不断涌现,深度融合领域知识的AI for Science基础软件也蓬勃发展,为各领域AI for Science研究人员供应了一大批简略易用的东西软件。

百度飞桨作为具有国内最大开源用户群体的深度学习平台,一向致力于将AI方法运用于基础科研,通过不断进步飞桨结构对科学问题的求解机制,并制作端到端的科学核算东西组件来加快AI与传统科学研究的融合。在以前的一年中,飞桨结构通过全量支撑开源科学核算东西DeepXDE以及对许多科学领域论文代码的重构,进一步完善了飞桨科学核算的机制,并形成了赛桨PaddleScience v1.0的四大特征才干:

  • 从易用性视点,统筹用户体会,进行了API架构的更新;
  • 支撑更广泛的底层模型,如CNN、U-Net、Transformer等;
  • 供应丰富的场景案例,如2D&3D圆柱绕流、涡激振动等基础案例以及气候预告、污染物分散等职业案例;
  • 更加全面的API支撑,如自定义偏微分方程及各类距离条件、支撑2D&3D基础几何定义等。

飞桨AI for Science功用全景如下图所示。

赛桨PaddleScience v1.0正式版发布,飞桨科学核算才干全面晋级!

图 飞桨AI4S全景图

飞桨结构的技术立异

为了有力支撑科学核算高阶微分方程求解等使命需求,飞桨结构对全体操练架构进行晋级,在不改变现有用户运用习气的基础上,用户能够运用飞桨结构API进行动态图组网调试,并通过动转静、算子组合、编译优化技术进步操练功用。

赛桨PaddleScience v1.0正式版发布,飞桨科学核算才干全面晋级!

图 结构技术立异

  • 飞桨结构 API

依据上述操练架构,飞桨能够低本钱方法支撑高阶自动微分,不再需求通过手写高阶微分算子,其时飞桨结构支撑50多个常用API高阶自动微分,并可持续扩展,已在EulerBeam、圆柱绕流等40+案例及模型验证。除此之外,飞桨支撑科学核算所需的通用一阶微分Jacobian、通用二阶微分Hessian、二阶优化器L-BFGS等开发接口。

  • 算子组合机制

组合机制为飞桨最新立异技术之一,旨在降低飞桨手写算子数量,低本钱完结高阶微分、硬件接入、编译器接入。该技术中心是定义少数基础算子集结,即加减乘除等基础处理运算,针对该少数算子集完结反向微分等规矩,然后将凌乱算子拆解为基础算子组合标明。预期毕竟态飞桨前向算子数量由600+降低到300左右,且大部分场景不再需求手写高阶算子,完结高阶微分、新硬件接入、编译器接入本钱的大幅降低。

  • 编译优化

编译器是上述技术路线中加快模型训推速度的关键技术。其首要技术点在于将基础算子IR标明映射到编译器高层IR标明,并通过高档其他PASS优化进行整图优化操作,如算子融合、常量折叠、代数化简、无关核算剪枝与变量开释等。然后将高层IR转成硬件无关的低层IR标明,自动生成适配不同硬件的代码。通过运用神经网络编译器技术,Laplace方程求解功用进步3倍。

  • 硬件支撑

其时飞桨针对科学核算算子,在国产硬件DCU和XPU上加快适配,其间DCU上已经能够全量运行以飞桨为后端的DeepXDE。

科学核算东西组件 赛桨 PaddleSciencev1.0

依据飞桨深度学习结构的高层API以及高阶自动微分机制,飞桨同步晋级并推出了科学核算东西组件赛桨PaddleScience v1.0。针对传统数值核算方法面临的维数高、耗时长、跨规范的应战,概括数学核算与物理数据相结合的处理方法,供应物理机理、数据驱动等范式来求解问题。一同环绕核算流体力学(CFD)、结构有限元仿真、气候猜想等领域构建经典的AI for Science领域案例,为宽广科研工作者供应可复用的案例开源代码以促进AI与基础科学的融合。

赛桨PaddleScience v1.0正式版包括了如下四方面的特征:

  • API架构更新

从用户运用习气视点,统筹深度学习及CFD&CAE用户体会,从数据预处理、模型选择、网络优化求解、作用后处理等视点更新API元素,进步用户运用感受。

  • 丰富的场景案例

供应2D & 3D圆柱绕流、涡激振动、对流散热及方程反演等基础案例,一同新增结构领域中2D & 3D结构受力分析案例,气候领域中气候预告、污染物分散等相关案例,支撑直接复用及二次开发,用户可从Github代码仓直接体会相关项目的AIStudio实践。

  • 底层模型更新

新增如CNN、U-Net、Transformer、GAN等经典神经网络模型以及FNO算子学习模型,并供应相应验证案例。

  • API晋级更新

供应全新规划的API供用户自定义偏微分方程及定义各类距离条件,支撑2D & 3D基础几何定义、STL凌乱外形解析及布尔操作等,并供应准随机采样、部分加密采样等功用。

详细功用可详见

paddlescience-docs-hss.readthedocs.io/zh/latest/

赛桨PaddleScience v1.0正式版发布,飞桨科学核算才干全面晋级!

图 PaddleScience v1.0产品全景(制作中)*

赛桨供应运用于科学核算问题的端到端API,结合常见CFD业务流程中涉及的前处理、求解、后处理等过程,供应核算域定义、深度学习求解、推理及可视化等模块,并细分为Equation 、Geometry 、Constraint、Arch等API,东西组件规划架构如下。

赛桨PaddleScience v1.0正式版发布,飞桨科学核算才干全面晋级!

图 PaddleScience科学核算东西组件规划架构

  • 方程(Equation)

赛桨支撑调用预置方程接口及自定义方程接口,支撑任意阶次的常微分(ODE)、偏微分(PDE)等方程定义,一同预置了如Navier-Stokes方程、Laplace方程等接口,可直接修改、运用。

  • 核算域(Geometry)

赛桨供应常用的2D & 3D 规矩几何,包括线段、圆、多边形、长方体、球体等。一同支撑外部CAD东西生成*.STL格局文件的导入、解析及部分加密采样等功用,并供应几何体之间的布尔运算,以支撑任意凌乱核算域的定义。

  • 捆绑(Constraint)

赛桨最新的Constraint捆绑模块,供应了任意数据源的核算捆绑定义。包括核算过程中的物理距离条件(Boundary Conditions)捆绑以及方针信息监督捆绑,支撑基础的三类距离条件(Dirichlet/Neumann/Robin BC)及用户自定义距离条件(General BC)定义,可支撑物理机理(数据首要来自几何)、数据驱动(数据首要来自数据文件)、数理融合(数据来自几何和数据文件)三种不同的操练范式。

  • 网络(Arch)

赛桨支撑多种网络模型结构,包括多层感知机(MLP)、Transformer等。供应网络参数初始化定义及预操练网络参数加载等功用,并支撑多种激活函数,包括Tanh、Silu、Relu等。

  • 损失函数(Loss)

赛桨供应了多种预置的Loss核算方法,如MSELoss、MAELoss、L2RelativeLoss,一同支撑多种粒度的Loss权重配备,如:

Loss=Lossequation+icLossic+bc∑(i,j)(out(i,j)−label(i,j))TeXLoss=Loss_{equation}+\omega _{ic}Loss_{ic}+\omega _{bc} {\textstyle \sum_{(i,j)}^{}} (out_{(i,j)} -label_{(i,j)} )\TeX
  • 优化器(Optimizer)

赛桨支撑常见的一阶优化器SGD、Momentum、Adam、AdamW,一同支撑二阶优化器L-BFGS进一步进步模型精度。

  • 点评与与可视化(Validator、Visualizer)

赛桨采用操练、点评、可视化别离的代码规划计划。通过开启点评、可视化功用,以在操练时自动点评其时模型在指定数据集上的精度,并可视化作用。也能够直接载入预操练好的模型,手动点评、可视化。

  • 高阶微分(AutoDiff)

赛桨依据飞桨结构的高阶微分才干,预置了一阶、二阶微分接口,并可进一步组合出三阶乃至更高阶的微分接口,以满意多种微分场景的需求。

飞桨AI forScience科学领域案例

针对流体、结构、传热以及气候等领域,飞桨结构完结了领域中广泛问题的网络模型验证,如可运用于稳态问题的CNN/U-Net网络,可运用于瞬态问题的LSTM/Transformer/GNN网络,以及运用于物理场重构问题的VAE/GAN网络等。一同,上述网络模型正持续集成到赛桨PaddleScience v1.0,与机理求解方法PINN一同,形成了PaddleScience的中心求解器。下面别离介绍PaddleScience在流体和结构两个领域的实践。

流体领域案例

在流体领域,结合赛桨 PaddleScience 从**「物理机理驱动」以及「数据驱动」**两个维度对流体问题进行了分析与求解。

  • 其间物理机理驱动首要运用PINN方法,将物理机理方程作为神经网络优化操练的控制函数。
  • 数据驱动则利用经典神经网络或算子学习的方法构建署理模型。依据许多的操练数据,能够驱动经典神经网络模型,如Transformer、GNN、CNN等,一同也能够驱动算子学习,构建算子神经网络如FourCastNet、DeepONet等。

3D非定常圆柱绕流

赛桨PaddleScience v1.0现在可支撑任意凌乱外形的流场(如依据*STL外形文件的内、外流问题),并针对高雷诺流场问题,分析了Re=3900下,3D圆柱绕流的湍流特性。依据PINN方法以及半监督的操练方法(圆柱后端尾流区域采集了一定数量的监督点),完结对3D非定常不行紧缩NS方程的求解。在作用分析阶段,别离从流场的速度、压力以及涡管结构等与LBM核算的作用进行对比,二者相对误差在5%以内。其间流场信息的对比作用如下图所示。

赛桨PaddleScience v1.0正式版发布,飞桨科学核算才干全面晋级!

为了进一步分析流场作用的合理性,对神经网络模型的推理作用进行处理,得到涡管以及流线作用如下所示,作用从与LBM核算作用共同。

赛桨PaddleScience v1.0正式版发布,飞桨科学核算才干全面晋级!

赛桨PaddleScience v1.0正式版发布,飞桨科学核算才干全面晋级!

图3D圆柱绕流流场涡管结构及流线图

依据TransformerPHX的流场猜想

Transformer网络通过注意力机制核算模型输入与输出的隐含标明,现在已经广泛运用于NLP、CV等领域。在科学核算中,通过将物理信息(数据、图片等)映射为词向量,也可采用Transformer架构完结物理问题的拟合与作用猜想,如在数据驱动的气候预告中,Transformer已经展现出了令人瞩目的作用。
本案例为依据赛桨对论文Transformer-PHX中网络模型及相关案例进行的复现。环绕文中2D非定常圆柱绕流、Lorenz方程等,重构了Transformer网络模型并在别离对文中供应的案例进行了验证,网络结构如下图所示。

赛桨PaddleScience v1.0正式版发布,飞桨科学核算才干全面晋级!

图Transformer-PHX网络结构图(图片来源于[Genevaetal.,2020])

案例中所用的操练数据集依据OpenFoam生成的分辨率为64128,时间步长为0.5s,并在雷诺数100 ~ 750的范围内随机选取仿真作用。完结模型操练后可对100 ~ 750雷诺数范围内的任意工况下完结流场结构的推理。在Re=100工况下,依据Transformer模型推理与OpenFoam核算得到的流场中速度ux、速度uy、压力的对比作用下图所示,其间OpenFoam作用的前缀为“target_”,Transformer模型的猜想作用的前缀为“pred_”,图中展现了180个时间步的猜想作用。

赛桨PaddleScience v1.0正式版发布,飞桨科学核算才干全面晋级!

图 TransformerPHX作用与OpenFoam作用对比

案例链接

github.com/PaddlePaddl…

结构领域案例

在结构领域中,飞机机翼桁架、汽车底盘、轮船甲板等机械结构件的受力变形、破坏以及疲惫损害等都是最典型的“力学”工程难题,这类结构问题一般可由平衡微分方程、几何方程和物理方程来描绘。传统的结构分析方法包括有限元法、有限差分法、距离元法等,往往需求许多的核算资源和人力投入,这会限制模型的规划和精度。依据物理信息神经网络(PINN)的AI方法被证明可有效地求解结构领域的物理方程,兼具进步核算速度与减低人力投入的优势。

3D凌乱结构变形分析

实践场景中的结构多为凌乱的拓扑外形,一般依据专业CAD东西绘制,如Catia/Cero/SolidWorks等,且在进行结构应力应变分析时,用户一般需求对结构进行恰当的网格区别,从而凭借专业的有限元仿真东西进行受力分析,如Abaqus/ANSYS等。赛桨针对凌乱结构外形规划了全新的几何API,支撑解析常见CAD东西导出的 *.STL中心格局,支撑对 *.STL文件进行布尔操作及部分加密采样。此外,针对各向同性资料的线弹性方程,也进行了详细定义与验证。

平衡方程:▽⋅+f=∂2u∂2t\bigtriangledown\sigma + f = \rho \frac{\partial ^{2 }{u} }{\partial ^{2 }{t} }

和谐方程:[xxyyzzxyyzzx]=[xxyyzzxyyzzx]\begin{bmatrix} \sigma _{xx} \\ \sigma _{yy} \\ \sigma _{zz} \\ \sigma _{xy} \\ \sigma _{yz} \\ \sigma _{zx} \\ \end{bmatrix} = \begin{bmatrix} \varepsilon _{xx} \\ \varepsilon _{yy} \\ \varepsilon _{zz} \\ \varepsilon _{xy} \\ \varepsilon _{yz} \\ \varepsilon _{zx} \\ \end{bmatrix}

本构方程:[xxyyzzxyyzzx]=[∂u∂x∂v∂y∂w∂z12(∂u∂y+∂v∂x)12(∂v∂z+∂w∂y)12(∂u∂z+∂w∂x)]\begin{bmatrix} \varepsilon _{xx} \\ \varepsilon _{yy} \\ \varepsilon _{zz} \\ \varepsilon _{xy} \\ \varepsilon _{yz} \\ \varepsilon _{zx} \\ \end{bmatrix} = \begin{bmatrix} \frac{\partial u}{\partial x} \\ \frac{\partial v}{\partial y} \\ \frac{\partial w}{\partial z} \\ \frac{1}{2} (\frac{\partial u }{\partial y}+\frac{\partial v }{\partial x}) \\ \frac{1}{2} (\frac{\partial v }{\partial z}+\frac{\partial w }{\partial y}) \\ \frac{1}{2} (\frac{\partial u }{\partial z}+\frac{\partial w }{\partial x}) \\ \end{bmatrix}

依据上述方程可对线弹性资料进行在小应变条件下的线性弹性行为分析,参照Modulus东西供应的线弹性结构变形案例Bracket,结构左端外表固定,右端外表施加 -Y方向的均布载荷,核算静平衡状态下整个结构的受力与变形。赛桨完结了在PINN方法下无监督的求解结构变形,且得到的作用与Modulus共同。作用如下,别离为结构在X, Y, Z方向的变形以及三个方向的主应力。因为遭到-Y方向的均布载荷,所以结构的右端(X方向)沿着-Z方向变形位移最大。同样在结构左边衔接方位遭到的载荷()最大。(详细代码之后会同步在AIStduio 科学核算项目集中)。

赛桨PaddleScience v1.0正式版发布,飞桨科学核算才干全面晋级!

图 PINN方法求解作用(上:x,y,z方向结构变形位移作用;下:结构主应力作用)

总结

近几年,百度飞桨持续全力投入AI for Science的产品立异和交叉型科研生态制作。在产品层面,飞桨结构持续进步对泛科研场景的支撑才干,一同从凌乱科研场景的快速完结、科研领域用户运用习气无差别搬迁等方面不断迭代科学核算东西组件赛桨PaddleScience。咱们本次为咱们带来飞桨最新的结构机制以及开源的赛桨PaddleScience v1.0正式版,希望能够进一步推进AI for Science基础软件的开源活跃度,促进多学科交叉复合型人才制作及加快完善基础软件技术生态系统制作。

拓宽阅读

  • AI for Science 大众号

reurl.cc/b9WZyo

  • 飞桨PaddleScience东西组件

github.com/PaddlePaddl…

  • 飞桨AI for Science流体力学公开课第一期

aistudio.baidu.com/aistudio/co…

  • 飞桨科学核算实训示例

aistudio.baidu.com/aistudio/pr…

  • 飞桨AI for Science共创计划

www.paddlepaddle.org.cn/science

  • 飞桨PPSIG-Science小组

www.paddlepaddle.org.cn/specialgrou…

  • 怎么注册AI Studio

aistudio.baidu.com/aistudio/in…