はじめに|インストールガイド|貢献ガイドライン|リソース|コミュニケーション
NVIDIA Modulus は、AI4 サイエンスとエンジニアリング向けの最先端の SciML メソッドを使用してディープ ラーニング モデルを構築、トレーニング、微調整するためのオープンソースのディープ ラーニング フレームワークです。
Modulus は、物理知識とデータを組み合わせた AI モデルを開発するためのユーティリティと最適化されたパイプラインを提供し、リアルタイムの予測を可能にします。
ニューラル オペレーター、GNN、トランスフォーマーの使用を検討している場合でも、物理学に基づいたニューラル ネットワークやその中間のハイブリッド アプローチに興味がある場合でも、Modulus はモデルを大規模にトレーニングできる最適化されたスタックを提供します。
モジュラスの詳細
ドメイン固有のパッケージ
スケーラブルな GPU に最適化されたトレーニング ライブラリ
物理学に基づいた ML モデルのスイート
シームレスな PyTorch 統合
簡単なカスタマイズと拡張
AI4サイエンスライブラリー
モジュラスに貢献しているのは誰ですか
モジュラスを使用する理由
はじめる
リソース
インストール
貢献する
コミュニケーション
ライセンス
詳細なレベルでは、Modulus はいくつかの主要コンポーネントのライブラリを提供します。
成分 | 説明 |
---|---|
モジュール.モデル | フーリエ ニューラル演算子、グラフ ニューラル ネットワークなど、最適化されカスタマイズ可能で使いやすいモデルのコレクション |
モジュラス.データパイプ | データ パイプラインとデータ ローダー ライブラリ (ベンチマーク データパイプ、天気データパイプ、グラフ データパイプなど) |
モジュラス.分布 | torch.distributed 上に構築された分散コンピューティング ライブラリにより、わずか数ステップで並列トレーニングが可能になります |
モジュラス.sym.ジオメトリ | 構築的固体幾何モデリングと STL 形式の CAD ファイルを使用して、DL トレーニング用のジオメトリを処理するためのライブラリ。 |
係数.sym.eq | DL トレーニングで偏微分方程式を使用するためのライブラリ。一般的に観察される方程式のいくつかの実装と簡単なカスタマイズ方法が含まれます。 |
完全なリストについては、Modulus Core および Modulus Sym の Modulus API ドキュメントを参照してください。
通常、モジュラスは次のいずれかとして使用されます。
SciML および AI4Science アプリケーション向けの AI を探索する際の Pytorch を補完するツールです。
NVIDIA GPU でスケールと最適なパフォーマンスを提供する深層学習研究プラットフォーム。
さらに詳しく:
Modulus は、NVIDIA GPU のパワーを最大化するために、高度に最適化されたスケーラブルなトレーニング ライブラリを提供します。分散コンピューティング ユーティリティを使用すると、数行のコードで単一 GPU からマルチノード GPU クラスターへの効率的なスケーリングが可能になり、大規模なスケールが保証されます。物理学に基づいた機械学習 (ML) モデルは、迅速かつ効果的にトレーニングできます。フレームワークには高度なサポートが含まれています。最適化ユーティリティ、オーダーメイドのデータパイプ、エンドツーエンドのトレーニング速度を向上させる検証ユーティリティ。
Modulus は、物理学 ML アプリケーション向けに特別に設計された最先端のモデルの包括的なライブラリを提供します。 Model Zoo には、フーリエ ニューラル オペレーター (FNO)、DeepONet、物理情報に基づいたニューラル ネットワーク (PINN)、グラフ ニューラル ネットワーク (GNN) などの一般化可能なモデル アーキテクチャ、拡散モデルなどの生成 AI モデル、および次のようなドメイン固有のモデルが含まれています。ディープラーニング天気予報 (DLWP) や超解像度ネットワーク (SrNN) など。これらのモデルは、数値流体力学、構造力学、電磁気学などのさまざまな物理領域向けに最適化されています。ユーザーは、特定のニーズに合わせてこれらのモデルをダウンロード、カスタマイズ、構築できるため、高忠実度のシミュレーションの開発に必要な時間を大幅に短縮できます。
Modulus は PyTorch 上に構築されており、すでに PyTorch に精通している人にとって、使い慣れたユーザーフレンドリーなエクスペリエンスを提供します。これには、シンプルな Python インターフェイスとモジュール設計が含まれており、既存の PyTorch ワークフローで Modulus を簡単に使用できるようになります。ユーザーは、Modulus の物理学 ML に特化した機能の恩恵を受けながら、そのライブラリやツールを含む広範な PyTorch エコシステムを活用できます。このシームレスな統合により、ユーザーは急な学習曲線を必要とせずに、Modulus をすぐに導入できるようになります。
詳細については、「PyTorch モデルからモジュラス モデルへの変換」を参照してください。
Modulus は拡張性が高いように設計されており、ユーザーは最小限の労力で新しい機能を追加できます。このフレームワークは、新しい物理モデル、ジオメトリ、制約を定義するための Python API を提供し、その機能を新しいユースケースに簡単に拡張できるようにします。 Modulus の適応性は、柔軟なモデル展開のための ONNX サポート、合理化されたエラー処理のための堅牢なログ ユーティリティ、モデルの読み込みと保存を簡素化する効率的なチェックポイントなどの主要な機能によってさらに強化されています。
この拡張性により、Modulus は研究者やエンジニアの進化するニーズに確実に適応し、物理学 ML の分野での革新的なソリューションの開発を促進します。
機能の詳細については、Modulus のドキュメントを参照してください。
参照サンプルは、科学および工学分野の多様なユースケースに適合する、物理的制約がありデータ駆動型のワークフローを広範囲にカバーしています。
ヒント
Modulus がどのようにお手伝いできるかについてご質問がありますか?答えを得るには、[実験的] チャットボットである Modulus Guide を試してください。
ここに示すように、PyTorch コードで Modulus の使用を簡単に開始できます。
Python>>> import torch>>> modulus.models.mlp.full_connected から import FullyConnected>>> モデル = FullyConnected(in_features=32, out_features=64)>>> input = torch.randn(128, 32)>>>出力 = モデル(入力)>>> 出力.shapetorch.Size([128, 64])
Modulus Symbolic: このアルゴリズムとユーティリティのリポジトリにより、SciML 研究者と開発者はモデルのトレーニングとモデルの検証に物理的な情報を提供できます。また、科学と工学に固有の、より高いレベルの抽象化をドメインの専門家に提供します。
以下は、独自の探索ニーズに応える、特定のコミュニティのドメイン エキスパート専用のパッケージです。
Earth-2 Studio: 気候研究者や科学者が気象と気候の AI モデルを探索および実験できるようにするオープンソース プロジェクト。
以下は、安定すると Modulus にパッケージ化される研究パッケージです。
Modulus Makani: 機械学習ベースの気象および気候モデルの研究開発を可能にするように設計された実験ライブラリ。
Earth2 Grid: さまざまなグリッド上で定義された地理データを操作するためのユーティリティを備えた実験用ライブラリ。
Earth-2 MIP: 気象モデルと気候モデルのモデル相互比較のためのユーティリティを備えた実験ライブラリ。
Modulus はオープンソース プロジェクトであり、SciML および AI4science 分野の研究者からの貢献を受けています。 Modulus チームが基盤となる SW スタックの最適化に取り組んでいる一方で、コミュニティはモデル アーキテクチャ、データセット、リファレンス アプリケーションを協力して提供することで、一般化可能なモデル アーキテクチャとアルゴリズムの開発を追求して革新できるようにしています。
コミュニティ貢献者の最新の例としては、HP Labs 3D Printing チーム、Stanford Cardiovascular Research チーム、UIUC チーム、CMU チームなどがあります。
Modulus を使用している研究チームの最新の例としては、ORNL チーム、ミュンヘン工科大学 CFD チームなどがあります。
Modulus を活用した研究成果の完全なリストについては、このページに移動してください。 Modulus を使用している企業のリストについては、こちらを参照してください。
Modulus を使用していて、NVIDIA ブログで自分の作品を紹介することに興味がありますか?この提案フォームに記入してください。折り返しご連絡させていただきます。
SciML モデル開発における Modulus の主な利点の一部を以下に示します。
SciML のベンチマークと検証 | 異種データセットに対する一般化された SciML レシピの使いやすさ | すぐに使えるパフォーマンスと拡張性 |
Modulus を使用すると、研究者は、詳細なドメイン固有の検証基準を使用して、標準的なベンチマーク問題について実証済みのアーキテクチャに対して AI モデルのベンチマークを行うことができます。 | Modulus を使用すると、研究者は SOTA SciML アーキテクチャから選択し、ユースケースに組み込みのデータ パイプラインを使用できます。 | Modulus は、異種エンジニアリングおよび科学データセット向けに最適化された ETL パイプラインや、マルチ GPU およびマルチノード GPU にわたるすぐに使用できるスケーリングなど、すぐに使用できるパフォーマンスの高いトレーニング パイプラインを提供します。 |
同僚の SciML 研究者が Modulus について何と言っているかをご覧ください (近日公開予定)。
次のリソースは、Modulus の使用方法を学習するのに役立ちます。最善の方法は、参照サンプルから始めて、それを独自のユースケースに合わせて更新することです。
PyTorch モデルでの Modulus の使用
Modulus 組み込みモデルの使用
入門ガイド
参考サンプル
ユーザーガイド ドキュメント
はじめにウェビナー
AI4サイエンスモジュラスブートキャンプ
係数事前学習済みモデル
係数データセットと補足資料
自分のペースで進められるモジュラス 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 clone https://github.com/NVIDIA/modulus.gitcd modulus/examples/cfd/darcy_fno/ pip install warp-lang # darcy サンプルを実行するには NVIDIA Warp をインストールしますpython train_fno_darcy.py
エンタープライズでサポートされている NVAIE コンテナーについては、「Modulus Secured Feature」ブランチを参照してください。
ソースからの Modulus Python パッケージのローカル ビルドの場合は、次を使用します。
git clone [email protected]:NVIDIA/modulus.git && cd モジュラス pip install --upgrade pip pip インストール 。
Modulus Docker イメージをビルドするには:
docker build -t modulus:デプロイ --build-arg TARGETPLATFORM=linux/amd64 --targetdeploy -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 はオープンソース コラボレーションであり、その成功は物理学-ML 分野の発展へのコミュニティへの貢献に根ざしています。他の人があなたの貢献を基にしてプロジェクトを構築できるように、プロジェクトに貢献していただきありがとうございます。
Modulus への貢献に関するガイダンスについては、貢献ガイドラインを参照してください。
Modulus があなたの研究に役立ち、引用したい場合は、ガイドラインを参照してください。
Github ディスカッション: 新しいアーキテクチャ、実装、Physics-ML 研究などについて話し合います。
GitHub の問題: バグレポート、機能リクエスト、インストールの問題など。
Modulus フォーラム: Modulus フォーラムは、一般的なチャット、オンライン ディスカッション、コラボレーションなどのために、新規から中程度のレベルのユーザーおよび開発者をホストします。
Modulus にいくつかの改善を提案したいですか?こちらのフィードバック フォームをご利用ください。
Modulus は Apache License 2.0 に基づいて提供されます。ライセンスの全文については LICENSE.txt を参照してください。