飞桨全量支持业内AI科学计算工具——DeepXDE!

news2024/9/25 19:24:19

AI技术在跨学科融合创新方面扮演着日益重要的角色,特别是在Al for Science领域,AI技术的发展为跨学科、跨领域的融合创新带来了巨大的机会。AI已成为一个关键的研究工具,改变了基础科学的研究范式。依托AI技术开发的科学计算工具,如DeepXDE、SciML等,正在解决传统科学计算过于复杂且难以理解的问题。未来将会有更多功能强大的科学计算工具出现,从而推动AI技术成为重要的科研辅助工具,在数学、物理、化学、生物、地理等基础科学以及材料、电子、医疗、制药等应用领域发挥独特价值[^1]

AI for Science跨领域应用

飞桨PaddlePaddle目前是国内市场综合份额第一的深度学习平台,且一直在为科学研究者提供优秀的AI技术支持。在AI for Science方面,飞桨已经发布了针对流体、结构、电磁等学科的工具组件——赛桨PaddleScience V1.0 Beta。同时,为了更好地支持AI for Science在科研领域的深入探索,飞桨也在同步拓展和支持一系列业内主流科学计算工具。本期我们将重点介绍飞桨全量支持的深度学习科学计算工具DeepXDE,从全量算例及模型支持、高性能的训推环境以及典型工程实践等方面进行说明。

科学计算工具-DeepXDE

DeepXDE是一款开源且高度模块化的科学计算工具,以深度学习为核心,提供多种数据、物理机理及数理融合的模型,如PINN、DeepONet、MFNN等,同时支持多种类型微分方程,如常微分方程、偏微分方程的定义及求解,可有效解决复杂科学计算问题。

基于所提供的深度学习求解模型,DeepXDE具备以下典型的功能特点:

高度模块化:DeepXDE提供多种支持调用、组合的模块,如计算域、边界条件、微分方程、神经网络、训练及预测等,方便用户组合构建物理系统;
多类微分方程:支持自定义常微分方程、偏微分方程、积分微分方程等来描述具体问题;
可扩展性:支持用户结合自身需求添加自定义的数值算法、模型或其他功能;
可视化:提供一系列丰富的可视化工具,可以帮助用户直观地理解计算结果。

在科学计算领域,DeepXDE的强大功能与高精度求解能力,使其成为国内外知名的科学计算工具之一。截止目前,DeepXDE的下载量已超过40万次,并被全球70多所知名大学、科研机构和企业采用,比如MIT、Stanford、美国西北太平洋国家实验室、通用汽车等。在实际应用中,DeepXDE正在帮助用户快速解决复杂的科学计算问题,为各领域科学研究的进展作出了重要贡献。
DeepXDE方法与Backends

飞桨全量支持DeepXDE

全量支持DeepXDE方法与算例

飞桨完全支持DeepXDE工具中提供的PINN、DeepONet等方法,并对工具中提供的各类算例进行了全面的精度对齐。采用PINN方法运行的42个算例涵盖多种方程和初值/边界条件,飞桨支撑情况如下表所示,相比PyTorch目前支持的算例(31个)多了11个。
飞桨支持DeepXDE中全部微分方程算例

飞桨科学计算支持能力

在支持科学计算方面,飞桨从神经网络、高阶微分、动转静技术等进行了全面改进,不仅能够全面支持DeepXDE提供的算例,也能够支持用户自定义的科学计算问题分析。

完备的训练网络
飞桨目前提供可覆盖PINN方法以及数据驱动方法的常用网络,如全连接网络、多尺度傅里叶特征网络及DeepONet、DeepONetCartesianProd等网络。

完整的微分方程体系
飞桨目前可支持多种类型微分方程的定义,如常微分方程、偏微分方程、积分微分方程、分数阶偏微分方程等。

动态图模式及“一键动转静”方案
飞桨支持用户基于动态图编码,同时支持一键动转静,可以使用户使用简单的转换语句同时享有动态图和静态图优势。

完善的科学计算常用高阶算子
为了实现科学计算问题中控制方程的高阶表达,飞桨框架完善了如下算子及功能:

  • 提供部分算子的三阶计算,如全连接网络算子(matmul、add),激活函数(tanh, sin, cos等);
  • 提供标量与tensor的加减乘除幂运算;
  • 常用算子如assign、concat、cumsum、expand_v2、reverse、squeeze、unsqueeze、scale、tile、transpose、sign、sum、mean、flip、cast、slice等无限阶计算。

多优化器选择
飞桨提供如ADAM、L-BFGS等优化器,可覆盖广泛的科学计算应用,且针对DeepXDE中提供的科学计算算例,飞桨提供的L-BFGS 优化器可以达到更高精度的收敛效果。

此外,飞桨对DeepXDE部分算例已经实现了分布式并行,扩展数据集大小后可获得更高的性能提升。

飞桨性能优势

基于DeepXDE所提供算例的默认配置,在表2所示的测试环境中对其中20个算例进行了端到端的性能测试,结果如图3所示。左图表示飞桨(蓝色)与PyTorch(橙色)的算例对齐情况,其中横坐标为工具中的不同算例,纵坐标为算例达到收敛目标所需的训练时间,右图则直观的表示飞桨相比于PyTorch在不同算例对齐过程中的加速情况。可以看出,在所测试的75%个算例中,飞桨的性能均领先PyTorch,最高提速达25%,这说明飞桨可以作为DeepXDE全量算例的Backend,支持开发者进行科学计算分析。

默认测试环境

飞桨支持DeepXDE全量算例性能评估

飞桨DeepXDE开发验证学习文档

针对DeepXDE中提供的算例及相关模型,飞桨完成了大量精度对齐、验证工作,积累并形成了丰富的开发和验证经验,可以为用户提供应用指导,帮助用户正确使用DeepXDE工具进行新算例的开发和验证。

用户可以访问DeepXDE官方代码仓库体验飞桨对DeepXDE中全量算例及模型的支持,在完成DeepXDE的安装后,用户仅需设置DDE_BACKEND环境变量,即可执行相应的算例代码($ DDE_BACKEND=paddle; python pde.py)。

  • DeepXDE官方代码仓库网址
    [https://github.com/lululxvi/deepxde]

另外,在飞桨AI Studio-人工智能学习与实训社区提供的NoteBook环境下,用户仅需定义环境变量DDE_BACKEND=paddle,即可实现代码块的独立测试、执行。

围绕飞桨+DeepXDE算例的开发验证过程,主要包含如下算例验证标准、算例验证流程、模型对齐问题排查流程等工作:

算例验证标准

结合科学计算的正问题与逆问题,可以从单框架测试、多框架测试等途径进行网络参数、目标解、Loss的计算比对,且验证的优先级为:网络参数>目标解>Loss。

算例验证流程

算例验证流程主要分为算例实现和验证两个阶段。下图给出了PINN方法的完整训练过程,其中蓝色部分为每个阶段需要对齐的数据,黄色部分为算例实现的逻辑。对于算例的验证,主要从飞桨框架自测、多框架对比验证进行分阶段实现。
DeepXDE支持的PINN方法原理

模型对齐问题排查流程

围绕算例及模型对齐过程中出现的问题,我们也形成了一些可供用户参考的经验,如可以对比其他框架,进行前向和反向的逐步对齐验证,并逐次打印对齐流程中的中间结果。此外,也需要进行如“随机种子”、“数据类型”、“初始化参数”、“控制合理误差”等设置,从而降低对齐难度。

此部分内容会在下一期的AI for Science专题“飞桨DeepXDE算例及模型精度对齐学习”中进行详细展开说明,期待广大用户阅读、指正。

案例实践

问题定义

随着通过缩小电路线宽提高集成度的“微细化”速度放缓,三维(3D)堆叠技术将承担半导体持续提高性能的作用。在芯片国产自主的背景下,3D堆叠技术也成为缓解国外技术制裁的重要方式。热挑战是3D堆叠技术的主要障碍之一,复杂的架构和高度集成的器件增加了芯片功耗和热密度。基于AI的传热模型不仅可以评估3D堆叠芯片的散热性能,而且为芯片散热结构设计的自动优化提供了广泛的潜力。本节主要介绍采用飞桨+DeepXDE进行芯片散热分析的相关案例实践,如图5所示。

3D堆叠芯片JL Ayala,A Sridhar, Through silicon via-based grid for thermal control in 3D chips
针对图5-(a)所示的简化3D芯片结构,其散热过程可由如下热自然对流控制方程来描述:

质量守恒
在这里插入图片描述
动量守恒
在这里插入图片描述
能量守恒
在这里插入图片描述
式中,𝑢、𝑣、𝑤分别为𝑥、𝑦、𝑧方向的速度分量(m⋅s-1),𝑝为压力(𝑃𝑎),𝑇为温度(℃),𝑡为时间(s);𝜇为动力粘度(𝑃𝑎⋅𝑠),𝜌为密度(𝑘𝑔⋅m-3),𝑐p为比热容(𝐽⋅𝑘𝑔-1⋅℃-1),𝜆为导热系数(𝑊⋅𝑚-1⋅℃-1)),𝑔为重力加速度(通常取9.8m⋅s-1),𝛽为热膨胀系数(1⋅℃-1),Tref为参考温度(℃);𝑄为体积热源项(𝑊⋅m-3),与芯片的热功耗有关。

针对实际芯片散热问题,通常假定温度为常温、周围空气静止,只要给定特定的边界条件就可以采用AI模型进行求解。其中,速度场通常采用无滑移边界条件,而温度场的边界条件则可描述如下:

Dirichlet条件
在这里插入图片描述
Neumann条件
在这里插入图片描述
Robin条件
在这里插入图片描述

案例建设及分析

基于DeepXDE的PINN方法,构建相应的芯片散热案例,如图6所示。其原理简要介绍如下,首先,针对待求解的时间(t)和实际的空间(x, y, z),采用合适的采样方法获得模型训练所需的时空离散点,这些点数据将作为AI网络模型的输入,并输出相应的流场和温度信息(u, v, w, p, T);然后,计算约束方程所需的流场和温度结果的时空导数,并获得对应于约束方程和初边值条件的Loss。
芯片散热分析原理及主要构建步骤
针对5层芯片结构的散热案例,构建相应热自然对流控制方程的无量纲化形式,以提高模型训练的稳定性和精度。结合给定的计算域,采用NVIDIA V100-16G单卡训练约4小时,预测的无量纲时间为1s时的结果如图7所示。3D整体和2D中间截面的温度分布均表明,芯片内部的温度远高于周围空气的温度。这说明单纯靠空气热自然对流来将存在明显的热限制,从材料和散热结构等方面提升散热性能非常必要,此部分工作成果会在之后的专题中向大家呈现。
3D芯片散热案例预测结果

总结

飞桨PaddlePaddle目前已经全面支持科学计算工具DeepXDE,对DeepXDE中提供的模型、算例等进行了多框架精度对齐以及性能调优。目前飞桨提供了完备的科学计算算子以及相关的网络模型、优化器、分布式并行等能力,可为广大用户使用飞桨+DeepXDE解决科学问题提供更多的可能。

下一期我们会对飞桨+DeepXDE算例及模型精度对齐的详细实现过程进行经验介绍,敬请期待。

引用

[1] 百度研究院2023科技趋势发布:AI向实而生,智能技术构筑科技变革主线
https://baijiahao.baidu.com/s?id=1754188096379901355&wfr=spider&for=pc。
[2] DeepXDE介绍文档
https://deepxde.readthedocs.io/en/latest/
[3] 飞桨动态图转静态图实现流程
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/jit/basic_usage_cn.html
[4] 飞桨L-BFGS优化器定义
https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/api/paddle/incubate/optimizer/LBFGS_cn.html

拓展阅读
[1] 【PaddlePaddle Hackathon 第四期】—飞桨科学计算 PaddleScience
https://github.com/PaddlePaddle/Paddle/issues/50629
[2] 飞桨AI for Science流体力学公开课第一期
https://aistudio.baidu.com/aistudio/course/introduce/27926
[3] AI+Science系列(三):赛桨PaddleScience底层核心框架技术创新详解
[4] 飞桨科学计算实训示例
https://aistudio.baidu.com/aistudio/projectoverview/public?topic=15

相关地址
[1] 飞桨AI for Science共创计划
https://www.paddlepaddle.org.cn/science
[2] 飞桨PPISG-Science小组
https://www.paddlepaddle.org.cn/specialgroupdetail?id=9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/382340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【教学类-07-06】20230302《破译电话号码-图形篇(图形固定列不重复)》(两款输入版)

效果展示1、适合中班默写学号——有姓名 有班级,无学号,适合中班幼儿2、适合大班幼儿默写名字——有学号,有班级,无姓名,适合初学者描字(小班、中班、大班)——名字、学号、班级都有&#xff08…

Java面试总结(三)

类加载的流程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。其中验证、准备、解析3个部分统称为连接。 如果想要详细了解类加载的过程,可以参考我…

【同步工具类:CyclicBarrier】

同步工具类:CyclicBarrier介绍源码分析CyclicBarrier 基于ReetrantLock Condition实现。构造函数await() 函数业务场景方案一:代码实现测试截图方案二代码实现测试打印总结介绍 官方介绍: 一种同步辅助工具,允许一组线程都等待对方到达共同的障碍点。CyclicBarrie…

完全彻底卸载Oracle

一、停止使用Oracle的服务停用oracle服务,进入计算机管理,在服务中,找到oracle开头的所有服务,右击选择停止。二、打开Universal Installer工具运行卸载Oracle数据库程序(1)、一般情况运行Oracle自带的卸载…

代谢组学:Microbiome又一篇!绘制重症先天性心脏病新生儿肠道微生态全景图谱

文章标题:Mapping the early life gut microbiome in neonates with critical congenital heart disease: multiomics insights and implications for host metabolic and immunological health 发表期刊:Microbiome 影响因子:16.837…

热烈祝贺|酒事有鲤盛装亮相2023中国(山东)精酿啤酒产业发展创新论坛暨展览会

酒事有鲤(济南)品牌管理有限公司是一家致力于将世界顶级精酿啤酒技术和理念与“ 在地”文化有机融合,做世界认 可的多元化好啤酒,通过精致 舒适的家门口酒馆,让啤酒的 世界观更为完整。 中国生物发酵产业协会联合齐鲁…

Gitlab普通用户转管理员

GitLab是常用的分部式代码库版本开源软件,默认系统中只有一个管理员。在工作中,如果有多个项目,则需要多个管理员分别管理各个的代码仓库,需要把多个普通用户配置成管理员,在Gitlab页面上,不能直接通过操作…

【编程基础之Python】7、Python基本数据类型

【编程基础之Python】7、Python基本数据类型Python基本数据类型整数(int)基本的四则运算位运算比较运算运算优先级浮点数(float)布尔值(bool)字符串(str)Python数据类型变换隐式类型…

tensorflow2.4--2.回归问题分析

文章目录前言流程案例操作前言 流程 回归问题预测连续值,在某个区间内变动. 常见的线性回归问题模型是yaxb,然而现实世界由于大量的数据偏差以及复杂度,同时还有大量的噪声,往往达不到如此的精确解,实际解决问题时需要考虑噪声的存在 对于噪声,往往我们已经假设了它符合高斯…

springboot内嵌Tomcat 安全漏洞修复

漏洞扫描提示的是tomcat-embed-core[CVE-2020-1938]&#xff0c;解决方式是升级tomcat的版本。 该漏洞影响的版本&#xff1a; Apache Tomcat 9.x < 9.0.31 Apache Tomcat 8.x < 8.5.51 Apache Tomcat 7.x < 7.0.100 Apache Tomcat 6.x 其余的安全漏洞也可以通过…

hometown-h5-template 一个开箱即用的前端H5解决方案 【无标题】

前言 大家好&#xff0c;我是 HoMeTown&#xff0c;最近不很忙&#xff0c;整理一套架子出来&#xff0c;有兴趣朋友可以看看&#xff0c;我自己已经投入生产使用了&#xff0c;大家看个人情况&#xff0c;选择性使用 GitHub仓库。 ✨ hometown-h5-template &#x1f4a5; 轻…

JavaSE21-集合1-set

文章目录一、集合概念二、set集合1、set集合的特点2、HashSet2.1 特点2.2 创建对象2.3 常用方法2.4 遍历2.4.1 foreach遍历2.4.2 使用迭代器遍历2.4.3 转换为数组遍历一、集合概念 集合就是用于存储多个数据的容器。相对于具有相同功能的数组来说&#xff0c;集合的长度可变会…

速度计算-课后程序(JAVA基础案例教程-黑马程序员编著-第十二章-课后作业)

【案例12-2】&#xff1a;速度计算 【案例介绍】 1.案例描述 本案例要求使用反射技术编写一个速度计算程序&#xff0c;计算某种交通工具的行驶速度。现有两种工具&#xff1a;Bike和 Plane&#xff0c;其中Bike的速度运算公式为&#xff1a;A*B/C&#xff0c;Plane的速度运…

Maven多模块开发

POM主要功能 maven学习教程很多&#xff0c;就不在赘述可以参考以下网站&#xff0c;这里只说明maven实际运用。 https://blog.csdn.net/xwh3165037789/article/details/121545762 菜鸟教程 Maven POM POM是在使用Maven构建项目最重要的部分&#xff0c; POM 中所有信息位于&l…

史上体积最小、功能最多的VxRail即将上市!

有史以来      最小、最灵活、最多的      VxRail集群      Dell VxRail VD-4000重磅登场!    戴尔即将全球推出VxRail超融合基础架构系统——基于PowerEdge XR4000的VxRail VD-4000(计划今年2月底全球同步上市)。      VD-4000具备小型专用外形,这种新的外…

帮助小型企业实现业务增长的7种数字营销策略

数字营销一直在不断地变化和发展&#xff0c;在过去的几年里我们已经见识到了其迅猛的发展速度。虽然我们在数字营销中看到了一些新的趋势&#xff0c;但对于小型企业来说很难利用并发挥其优势。相比较大型企业&#xff0c;小型企业的预算和资源通常有限&#xff0c;所以他们很…

Qt插件开发总结5--主界面嵌入插件UI

文章目录一、前言二、效果展示三、嵌入插件UI1、插件接口文件添加UI指针2、插件子项目工程建立UI类3、插件类中创建UI类、使UI指针指向创建的UI类4、插件元信息中添加widget键值对&#xff0c;指示插件UI嵌入主界面中的位置5、主界面中预留接入点tabWidget6、插件管理器中元数据…

9 怎么登录VNC

1&#xff09;首先在ssh登录后启动vncserver。登陆后输入下面的指令来创建自己的VNC。 命令vncserver :16 –geometry 1900x1000 其中&#xff1a;16是分配的端口号&#xff0c;1900x1000是分辨率。如果没有响应&#xff0c;建议执行下面操作后再次重复上面操作。 命令&#xf…

拦截器和过滤器的区别是什么

过滤器 过滤器Filter是基于Servlet实现。Servlet的工作原理是拦截配置好的客户端请求&#xff0c;然后对Request和Response进行处理。Filter过滤器随着web应用的启动而启动&#xff0c;只初始化一次。 过滤器的配置比较简单&#xff0c;直接实现Filter 接口就可以了&#xff…

Python 虚拟环境的使用

PyCharm 创建的虚拟环境与使用 workon 命令创建的虚拟环境在本质上没有区别&#xff0c;它们都是 Python 的虚拟环境。 使用 PyCharm 创建工程时&#xff0c;使用可以使用曾经工程的虚拟环境&#xff0c;或者新建一个虚拟环境来安装 Python 的库&#xff0c;又或者使用 workon…