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

Posted 百度大脑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了飞桨全量支持业内AI科学计算工具——DeepXDE!相关的知识,希望对你有一定的参考价值。


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

图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正在帮助用户快速解决复杂的科学计算问题,为各领域科学研究的进展作出了重要贡献。

图2 DeepXDE方法与Backends

飞桨全量支持DeepXDE

全量支持DeepXDE方法与算例

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

表1 飞桨支持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,支持开发者进行科学计算分析。

表2 默认测试环境

图3 飞桨支持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方法的完整训练过程,其中蓝色部分为每个阶段需要对齐的数据,黄色部分为算例实现的逻辑。对于算例的验证,主要从飞桨框架自测、多框架对比验证进行分阶段实现。

图4 DeepXDE支持的PINN方法原理

模型对齐问题排查流程

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

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

案例实践

问题定义

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

图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。

图6 芯片散热分析原理及主要构建步骤

针对5层芯片结构的散热案例,构建相应热自然对流控制方程的无量纲化形式,以提高模型训练的稳定性和精度。结合给定的计算域,采用NVIDIA V100-16G单卡训练约4小时,预测的无量纲时间为1s时的结果如图7所示。3D整体和2D中间截面的温度分布均表明,芯片内部的温度远高于周围空气的温度。这说明单纯靠空气热自然对流来将存在明显的热限制,从材料和散热结构等方面提升散热性能非常必要,此部分工作成果会在之后的专题中向大家呈现。

图7 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

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~

以上是关于飞桨全量支持业内AI科学计算工具——DeepXDE!的主要内容,如果未能解决你的问题,请参考以下文章

墨芯携手百度飞桨,共建稀疏化生态

墨芯携手百度飞桨,共建稀疏化生态

开源项目: 揭秘10分钟如何搞定开发部署全流程!

无需数学基础,AI项目全流程开发神器来了!(附亲妈级教程)

厉害了!10分钟搞定开发部署,这个霸榜 GitHub 的 AI 开源项目不一般

飞桨开发者又出新工具 让AI也能听懂你的话