飛槳全量支持業內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}$⋅${m }^{-3}$),𝜆爲導熱係數(𝑊⋅${m}^{-1}$⋅${℃}^{-1}$),𝑔爲重力加速度(通常取9.8m⋅${s}^{-1}$),𝛽爲熱膨脹係數(1⋅${℃}^{-1}$),${T}{ref}$爲參考溫度(℃);𝑄爲體積熱源項(𝑊⋅${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芯片散熱案例預測結果

總結

[飛槳](https://www.oschina.net/action/visit/ad?id=1185 "飛槳")[PaddlePaddle](https://www.oschina.net/action/visit/ad?id=1185 "PaddlePaddle")目前已經全面支持科學計算工具DeepXDE,對DeepXDE中提供的模型、算例等進行了多框架精度對齊以及性能調優。目前[飛槳](https://www.oschina.net/action/visit/ad?id=1185 "飛槳")提供了完備的科學計算算子以及相關的網絡模型、優化器、分佈式並行等能力,可爲廣大用戶使用[飛槳](https://www.oschina.net/action/visit/ad?id=1185 "飛槳")+DeepXDE解決科學問題提供更多的可能。下一期我們會對[飛槳](https://www.oschina.net/action/visit/ad?id=1185 "飛槳")+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.oschina.net/action/visit/ad?id=1185 "飛槳")動態圖轉靜態圖實現流程
https://www.[paddlepaddle](https://www.oschina.net/action/visit/ad?id=1185 "paddlepaddle").org.cn/documentation/docs/zh/guides/jit/basic_usage_cn.html

[4] [飛槳](https://www.oschina.net/action/visit/ad?id=1185 "飛槳")L-BFGS優化器定義
https://www.[paddlepaddle](https://www.oschina.net/action/visit/ad?id=1185 "paddlepaddle").org.cn/documentation/docs/zh/develop/api/[paddle](https://www.oschina.net/action/visit/ad?id=1185 "paddle")/incubate/optimizer/LBFGS_cn.html

拓展閱讀

[1] 【[PaddlePaddle](https://www.oschina.net/action/visit/ad?id=1185 "PaddlePaddle") Hackathon 第四期】—[飛槳](https://www.oschina.net/action/visit/ad?id=1185 "飛槳")科學計算 [Paddle](https://www.oschina.net/action/visit/ad?id=1185 "Paddle")Science
https://github.com/[PaddlePaddle](https://www.oschina.net/action/visit/ad?id=1185 "PaddlePaddle")/[Paddle](https://www.oschina.net/action/visit/ad?id=1185 "Paddle")/issues/50629
[2] [飛槳](https://www.oschina.net/action/visit/ad?id=1185 "飛槳")AI for Science流體力學公開課第一期
https://aistudio.baidu.com/aistudio/course/introduce/27926 [3] AI+Science系列(三):賽槳PaddleScience底層核心框架技術創新詳解
[4] [飛槳](https://www.oschina.net/action/visit/ad?id=1185 "飛槳")科學計算實訓示例
https://aistudio.baidu.com/aistudio/projectoverview/public?topic=15

相關地址

[1] [飛槳](https://www.oschina.net/action/visit/ad?id=1185 "飛槳")AI for Science共創計劃
https://www.[paddlepaddle](https://www.oschina.net/action/visit/ad?id=1185 "paddlepaddle").org.cn/science [2] [飛槳](https://www.oschina.net/action/visit/ad?id=1185 "飛槳")PPISG-Science小組https://www.[paddlepaddle](https://www.oschina.net/action/visit/ad?id=1185 "paddlepaddle").org.cn/specialgroupdetail?id=9

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章