開始使用|安裝指南|貢獻指南|資源|溝通
NVIDIA Modulus 是一個開源深度學習框架,用於使用最先進的 SciML 方法為 AI4 科學和工程構建、訓練和微調深度學習模型。
Modulus 提供實用程式和最佳化的管道來開發將物理知識與數據結合的人工智慧模型,從而實現即時預測。
無論您是在探索神經運算子、GNN 或Transformer 的使用,還是對基於物理的神經網路或兩者之間的混合方法感興趣,Modulus 都可以為您提供優化的堆疊,使您能夠大規模訓練模型。
有關模數的更多信息
特定領域的包
可擴充的 GPU 最佳化訓練庫
一套基於物理的 ML 模型
無縫 PyTorch 集成
輕鬆自訂和擴展
AI4科學庫
誰在為 Modulus 做出貢獻
為什麼要使用模數
入門
資源
安裝
貢獻
溝通
執照
在粒度等級上,Modulus 提供了一個包含幾個關鍵元件的函式庫:
成分 | 描述 |
---|---|
模組.模型 | 一系列經過最佳化、可自訂且易於使用的模型,例如傅立葉神經運算子、圖神經網路等等 |
模數數據管道 | 資料管道和資料載入器庫,包括基準資料管道、天氣 daptapipes 和圖形資料管道 |
模分佈 | 建立在torch.distributed 之上的分散式計算庫,只需幾個步驟即可實現平行訓練 |
模對稱幾何 | 使用建構實體幾何建模和 STL 格式的 CAD 檔案來處理 DL 訓練幾何的函式庫。 |
模量符號方程 | 一個在深度學習訓練中使用偏微分方程的庫,具有常見觀察方程的多種實現和簡單的定制方法。 |
有關完整列表,請參閱 Modulus Core 和 Modulus Sym 的 Modulus API 文件。
通常,模數用作:
在探索 SciML 和 AI4Science 應用程式的 AI 時,Pytorch 的補充工具。
一個深度學習研究平台,可在 NVIDIA GPU 上提供規模和最佳效能。
進一步闡述:
Modulus 提供高度優化且可擴展的訓練庫,可最大限度地發揮 NVIDIA GPU 的能力。分散式運算實用程式允許透過幾行程式碼從單一 GPU 高效擴展到多節點 GPU 集群,從而確保大規模。基於物理的機器學習 (ML) 模型可以快速有效地進行訓練。該框架包括對高級的支援。優化實用程式、客製化資料管道、驗證實用程序,以提高端到端訓練速度。
Modulus 提供了專為實體機器學習應用而設計的綜合性最先進模型庫。 Model Zoo 包括可泛化的模型架構,例如傅立葉神經算子(FNO)、DeepONet、物理資訊神經網路(PINN)、圖神經網路(GNN)、生成式AI 模型(例如擴散模型)以及特定領域模型(例如深度學習天氣預報 (DLWP) 和超解析度網路 (SrNN) 等。這些模型針對各種物理領域進行了最佳化,例如計算流體動力學、結構力學和電磁學。使用者可以下載、自訂和建立這些模型以滿足他們的特定需求,從而顯著減少開發高保真模擬所需的時間。
Modulus 構建在 PyTorch 之上,為已經精通 PyTorch 的人員提供熟悉且用戶友好的體驗。這包括簡單的 Python 介面和模組化設計,使得可以輕鬆地將 Modulus 與現有 PyTorch 工作流程一起使用。使用者可以利用廣泛的 PyTorch 生態系統,包括其函式庫和工具,同時受益於 Modulus 的物理 ML 專業功能。這種無縫整合確保用戶可以快速採用 Modulus,而無需經歷陡峭的學習曲線。
有關更多信息,請參閱將 PyTorch 模型轉換為模數模型
Modulus 的設計具有高度可擴展性,允許使用者以最少的努力添加新功能。該框架提供了 Pythonic API,用於定義新的實體模型、幾何形狀和約束,從而可以輕鬆地將其功能擴展到新的用例。 Modulus 的適應性透過關鍵功能進一步增強,例如 ONNX 對靈活模型部署的支援、用於簡化錯誤處理的強大日誌實用程式以及用於簡化模型載入和保存的高效檢查點。
這種可擴展性確保 Modulus 能夠適應研究人員和工程師不斷變化的需求,並促進實體機器學習領域創新解決方案的開發。
有關特性和功能的詳細資訊可以在 Modulus 文件中找到。
參考範例涵蓋了廣泛的物理約束和資料驅動的工作流程,以適應科學和工程學科中用例的多樣性。
提示
對 Modulus 如何為您提供協助有疑問嗎?試試我們的[實驗]聊天機器人,模數指南,尋找答案。
您可以開始在 PyTorch 程式碼中使用 Modulus,如下所示:
python>>> 導入火炬>>> from modulus.models.mlp.filled_connected 導入FullyConnected>>> model = FullConnected(in_features=32, out_features=64)>>> input = torch.randn(128, 32)>>輸出= 模型(輸入)>>> 輸出.shapetorch.Size([128, 64])
Modulus Symbolic:這個演算法和實用程式儲存庫允許 SciML 研究人員和開發人員從物理角度為模型訓練和模型驗證提供資訊。它也為科學和工程領域的專家提供了更高層次的抽象。
以下是專門針對特定社群的領域專家的軟體包,可滿足他們獨特的探索需求。
Earth-2 Studio:開源項目,使氣候研究人員和科學家能夠探索和實驗天氣和氣候的人工智慧模型。
以下是穩定後會打包到 Modulus 中的研究包。
Modulus Makani:實驗庫,旨在支持基於機器學習的天氣和氣候模型的研究和開發。
Earth2 Grid:實驗庫,具有用於處理在各種網格上定義的地理資料的實用程式。
Earth-2 MIP:實驗庫,具有用於天氣和氣候模型模型相互比較的實用程式。
Modulus 是一個開源項目,並得到了 SciML 和 AI4science 領域研究人員的貢獻。當 Modulus 團隊致力於優化底層軟體堆疊時,社群進行協作並貢獻模型架構、資料集和參考應用程序,以便我們能夠在開發通用模型架構和演算法方面進行創新。
社區貢獻者的一些最新例子包括 HP 實驗室 3D 列印團隊、史丹佛大學心血管研究團隊、UIUC 團隊、CMU 團隊等。
使用 Modulus 的研究團隊的最新例子有 ORNL 團隊、慕尼黑工業大學 CFD 團隊等。
請導覽至此頁面,以取得利用 Modulus 的研究工作的完整清單。有關使用 Modulus 的企業列表,請參閱此處。
使用 Modulus 並有興趣在 NVIDIA 部落格上展示您的作品嗎?填寫此提案表,我們將盡快回覆您!
以下是 Modulus 用於 SciML 模型開發的一些主要優勢:
SciML 基準測試與驗證 | 輕鬆使用具有異質資料集的通用 SciML 配方 | 開箱即用的性能和可擴展性 |
Modulus 使研究人員能夠根據經過驗證的架構對他們的 AI 模型進行基準測試,以解決標準基準測試問題,並具有詳細的特定領域驗證標準。 | Modulus 使研究人員能夠從 SOTA SciML 架構中進行選擇,並針對其用例使用內建資料管道。 | Modulus 提供開箱即用的高效能訓練管道,包括針對異質工程和科學資料集的最佳化 ETL 管道,以及跨多 GPU 和多節點 GPU 的開箱即用擴充。 |
了解您的同行 SciML 研究人員對 Modulus 有何看法(即將推出)。
以下資源將幫助您學習如何使用 Modulus。最好的方法是從參考範例開始,然後根據您自己的用例進行更新。
將 Modulus 與 PyTorch 模型結合使用
使用 Modulus 內建模型
入門指南
參考樣品
使用者指南 文件
入門網路研討會
AI4Science模數訓練營
模數預訓練模型
模量資料集和補充資料
自訂進度的模數 DLI 培訓
科學與工程深度學習模數系列講座
模數:目的和用途
影片教學
安裝最新版本 Modulus 的建議方法是使用 PyPi:
pip 安裝 nvidia-modulus
可以透過執行 hello world 範例來驗證安裝,如此處所示。
Modulus 有許多在特定元件中使用的可選依賴項。使用 pip 時,Modulus 中使用的所有依賴項都可以使用pip install nvidia-modulus[all]
安裝。如果您正在開發 Modulus,則可以使用pip install nvidia-modulus[dev]
安裝開發人員依賴項。否則,可以根據具體情況安裝其他依賴項。有關安裝可選依賴項的詳細資訊可以在入門指南中找到。
建議的 Modulus docker 映像可以從 NVIDIA 容器註冊表中取得(請參閱 NGC 註冊表以取得最新標籤):
docker pull nvcr.io/nvidia/modulus/modulus:24.09
在容器內,您可以複製 Modulus git 儲存庫並開始使用範例。以下命令顯示了啟動模數容器並執行此儲存庫中的範例的說明。
docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --runtime nvidia --rm -it nvcr.io/nvidia/modulus/modulus:24.09 bash git克隆 https://github.com/NVIDIA/modulus.gitcd modulus/examples/cfd/darcy_fno/ pip install warp-lang # 安裝 NVIDIA Warp 來執行 darcy 範例python train_fno_darcy.py
企業支援的 NVAIE 容器,請參閱 Modulus 安全功能分支
對於從原始碼使用的 Modulus Python 套件的本地建置:
git clone [email protected]:NVIDIA/modulus.git && cd 模數 pip 安裝 --升級 pip 點安裝。
建置 Modulus docker 映像:
docker build -t 模數:部署 --build-arg TARGETPLATFORM=linux/amd64 --target 部署 -f Dockerfile 。
或者,您可以執行make container-deploy
建置 CI 鏡像:
docker build -t 模數:ci --build-arg TARGETPLATFORM=linux/amd64 --target ci -f Dockerfile 。
或者,您可以運行make container-ci
。
目前僅支援linux/amd64
和linux/arm64
平台。如果使用linux/arm64
,某些依賴項(例如warp-lang
可能無法正確安裝。
Modulus 是一項開源合作項目,其成功源自於社群對實體機器學習領域進一步發展的貢獻。感謝您對該專案的貢獻,以便其他人可以在您的貢獻的基礎上繼續發展。
有關為 Modulus 貢獻的指南,請參閱貢獻指南。
如果 Modulus 對您的研究有幫助並且您想引用它,請參閱指南
Github 討論:討論新的架構、實作、實體機器學習研究等。
GitHub 問題:錯誤回報、功能請求、安裝問題等。
Modulus 論壇:Modulus 論壇為新用戶和中等程度的用戶和開發人員提供一般聊天、線上討論、協作等服務。
想要對 Modulus 提出一些改進建議嗎?請在此處使用我們的回饋表。
Modulus 在 Apache License 2.0 下提供,請參閱 LICENSE.txt 以取得完整的許可證文字。