Erste Schritte | Installationsanleitung | Richtlinien zum Beitragen | Ressourcen | Kommunikation
NVIDIA Modulus ist ein Open-Source-Deep-Learning-Framework zum Erstellen, Trainieren und Feinabstimmen von Deep-Learning-Modellen unter Verwendung modernster SciML-Methoden für KI4-Wissenschaft und -Technik.
Modulus bietet Dienstprogramme und optimierte Pipelines zur Entwicklung von KI-Modellen, die physikalisches Wissen mit Daten kombinieren und so Echtzeitvorhersagen ermöglichen.
Ganz gleich, ob Sie die Verwendung neuronaler Operatoren, GNNs oder Transformatoren erforschen oder sich für physikalisch-informierte neuronale Netze oder einen Hybridansatz dazwischen interessieren, Modulus bietet Ihnen einen optimierten Stack, mit dem Sie Ihre Modelle im großen Maßstab trainieren können.
Mehr über Modul
Domänenspezifische Pakete
Skalierbare GPU-optimierte Trainingsbibliothek
Eine Reihe von physikinformierten ML-Modellen
Nahtlose PyTorch-Integration
Einfache Anpassung und Erweiterung
AI4Science-Bibliothek
Wer trägt zu Modulus bei?
Warum Modul verwenden?
Erste Schritte
Ressourcen
Installation
Mitwirken
Kommunikation
Lizenz
Auf granularer Ebene stellt Modulus eine Bibliothek mit einigen Schlüsselkomponenten bereit:
Komponente | Beschreibung |
---|---|
module.models | Eine Sammlung optimierter, anpassbarer und benutzerfreundlicher Modelle wie neuronale Fourier-Operatoren, graphische neuronale Netze und viele mehr |
modulus.datapipes | Eine Datenpipeline und Datenladebibliothek, einschließlich Benchmark-Datapipes, Wetter-Daptapipes und Diagramm-Datapipes |
modulus.distributed | Eine verteilte Computerbibliothek, die auf torch.distributed aufbaut, um paralleles Training in nur wenigen Schritten zu ermöglichen |
modulus.sym.geometry | Eine Bibliothek zur Handhabung von Geometrie für DL-Training unter Verwendung der Constructive Solid Geometry-Modellierung und CAD-Dateien im STL-Format. |
modulus.sym.eq | Eine Bibliothek zur Verwendung von PDEs in Ihrem DL-Training mit mehreren Implementierungen häufig beobachteter Gleichungen und einfachen Möglichkeiten zur Anpassung. |
Eine vollständige Liste finden Sie in der Modulus-API-Dokumentation für Modulus Core und Modulus Sym.
Normalerweise wird Modulus entweder wie folgt verwendet:
Ein ergänzendes Tool zu Pytorch bei der Erforschung von KI für SciML- und AI4Science-Anwendungen.
Eine Deep-Learning-Forschungsplattform, die Skalierbarkeit und optimale Leistung auf NVIDIA-GPUs bietet.
Weitere Erläuterung:
Modulus bietet eine hochoptimierte und skalierbare Trainingsbibliothek zur Maximierung der Leistung von NVIDIA-GPUs. Distributed-Computing-Dienstprogramme ermöglichen eine effiziente Skalierung von einer einzelnen GPU zu GPU-Clustern mit mehreren Knoten mit wenigen Codezeilen und stellen so eine große Skalierung sicher. Physikinformierte Modelle des maschinellen Lernens (ML) können schnell und effektiv trainiert werden. Das Framework umfasst Unterstützung für Fortgeschrittene. Optimierungsdienstprogramme, maßgeschneiderte Datenpipes und Validierungsdienstprogramme zur Verbesserung der End-to-End-Trainingsgeschwindigkeit.
Modulus bietet eine umfassende Bibliothek hochmoderner Modelle, die speziell für Physik-ML-Anwendungen entwickelt wurden. Der Model Zoo umfasst verallgemeinerbare Modellarchitekturen wie Fourier Neural Operators (FNOs), DeepONet, Physics-Informed Neural Networks (PINNs), Graph Neural Networks (GNNs) und generative KI-Modelle wie Diffusionsmodelle sowie domänenspezifische Modelle wie z Unter anderem Deep Learning Weather Prediction (DLWP) und Super Resolution Network (SrNN). Diese Modelle sind für verschiedene Bereiche der Physik optimiert, beispielsweise numerische Strömungsmechanik, Strukturmechanik und Elektromagnetik. Benutzer können diese Modelle herunterladen, anpassen und darauf aufbauen, um sie an ihre spezifischen Bedürfnisse anzupassen, wodurch sich der Zeitaufwand für die Entwicklung von High-Fidelity-Simulationen erheblich verkürzt.
Modulus basiert auf PyTorch und bietet eine vertraute und benutzerfreundliche Erfahrung für diejenigen, die bereits mit PyTorch vertraut sind. Dazu gehören eine einfache Python-Schnittstelle und ein modulares Design, wodurch Modulus problemlos mit vorhandenen PyTorch-Workflows verwendet werden kann. Benutzer können das umfangreiche PyTorch-Ökosystem einschließlich seiner Bibliotheken und Tools nutzen und gleichzeitig von den speziellen Funktionen von Modulus für Physik-ML profitieren. Diese nahtlose Integration stellt sicher, dass Benutzer Modulus schnell und ohne steile Lernkurve einführen können.
Weitere Informationen finden Sie unter Konvertieren von PyTorch-Modellen in Modulus-Modelle
Modulus ist auf hohe Erweiterbarkeit ausgelegt, sodass Benutzer mit minimalem Aufwand neue Funktionen hinzufügen können. Das Framework bietet Pythonic-APIs zum Definieren neuer physikalischer Modelle, Geometrien und Einschränkungen und erleichtert so die Erweiterung seiner Funktionen auf neue Anwendungsfälle. Die Anpassungsfähigkeit von Modulus wird durch Schlüsselfunktionen wie ONNX-Unterstützung für eine flexible Modellbereitstellung, robuste Protokollierungsdienstprogramme für eine optimierte Fehlerbehandlung und effizientes Checkpointing zur Vereinfachung des Ladens und Speicherns von Modellen weiter verbessert.
Diese Erweiterbarkeit stellt sicher, dass sich Modulus an die sich verändernden Bedürfnisse von Forschern und Ingenieuren anpassen kann und erleichtert so die Entwicklung innovativer Lösungen im Bereich Physik-ML.
Detaillierte Informationen zu Funktionen und Fähigkeiten finden Sie in der Modulus-Dokumentation.
Referenzbeispiele decken ein breites Spektrum physikalisch eingeschränkter und datengesteuerter Arbeitsabläufe ab, um der Vielfalt der Anwendungsfälle in den Wissenschafts- und Ingenieurdisziplinen gerecht zu werden.
Tipp
Haben Sie Fragen dazu, wie Modulus Sie unterstützen kann? Probieren Sie unseren [experimentellen] Chatbot Modulus Guide aus, um Antworten zu erhalten.
Sie können Modulus ganz einfach in Ihrem PyTorch-Code verwenden, wie hier gezeigt:
Python>>> Torch importieren>>> aus modulus.models.mlp.fully_connected, FullyConnected importieren>>> model = FullyConnected(in_features=32, out_features=64)>>> input = Torch.randn(128, 32)>>> Ausgabe = Modell (Eingabe) >>> Ausgabe.Shapetorch.Size ([128, 64])
Modulus Symbolic: Dieses Repository mit Algorithmen und Dienstprogrammen ermöglicht es SciML-Forschern und -Entwicklern, physikalisch fundiertes Modelltraining und Modellvalidierung durchzuführen. Es bietet außerdem eine Abstraktion auf höherer Ebene für Fachexperten, die ursprünglich aus Wissenschaft und Technik stammt.
Im Folgenden finden Sie Pakete, die sich an Fachexperten bestimmter Communities richten und auf deren individuelle Erkundungsbedürfnisse eingehen.
Earth-2 Studio: Open-Source-Projekt, das es Klimaforschern und Wissenschaftlern ermöglicht, KI-Modelle für Wetter und Klima zu erforschen und damit zu experimentieren.
Im Folgenden finden Sie Forschungspakete, die in Modulus gepackt werden, sobald sie stabil sind.
Modulus Makani: Experimentelle Bibliothek, die die Forschung und Entwicklung von auf maschinellem Lernen basierenden Wetter- und Klimamodellen ermöglichen soll.
Earth2 Grid: Experimentelle Bibliothek mit Dienstprogrammen zum Bearbeiten geografischer Daten, die in verschiedenen Gittern definiert sind.
Earth-2 MIP: Experimentelle Bibliothek mit Dienstprogrammen für den Modellvergleich für Wetter- und Klimamodelle.
Modulus ist ein Open-Source-Projekt und erhält Beiträge von Forschern aus den Bereichen SciML und AI4science. Während das Modulus-Team an der Optimierung des zugrunde liegenden SW-Stacks arbeitet, arbeitet die Community zusammen und steuert Modellarchitekturen, Datensätze und Referenzanwendungen bei, damit wir bei der Entwicklung verallgemeinerbarer Modellarchitekturen und Algorithmen innovativ sein können.
Einige aktuelle Beispiele für Community-Mitwirkende sind das 3D-Druckteam von HP Labs, das kardiovaskuläre Forschungsteam von Stanford, das UIUC-Team, das CMU-Team usw.
Neueste Beispiele für Forschungsteams, die Modulus verwenden, sind das ORNL-Team, das CFD-Team der TU München usw.
Bitte navigieren Sie zu dieser Seite für eine vollständige Liste der Forschungsarbeiten, die Modulus nutzen. Eine Liste der Unternehmen, die Modulus verwenden, finden Sie hier.
Sie nutzen Modulus und möchten Ihre Arbeit in NVIDIA-Blogs präsentieren? Füllen Sie dieses Angebotsformular aus und wir werden uns bei Ihnen melden!
Hier sind einige der wichtigsten Vorteile von Modulus für die SciML-Modellentwicklung:
SciML-Benchmarking und Validierung | Einfache Verwendung verallgemeinerter SciML-Rezepte mit heterogenen Datensätzen | Sofort einsatzbereite Leistung und Skalierbarkeit |
Mit Modulus können Forscher ihr KI-Modell mit bewährten Architekturen für Standard-Benchmark-Probleme mit detaillierten domänenspezifischen Validierungskriterien vergleichen. | Mit Modulus können Forscher aus SOTA-SciML-Architekturen auswählen und integrierte Datenpipelines für ihren Anwendungsfall verwenden. | Modulus bietet sofort einsatzbereite, leistungsstarke Trainingspipelines, einschließlich optimierter ETL-Pipelines für heterogene technische und wissenschaftliche Datensätze sowie sofort einsatzbereite Skalierung über Multi-GPU- und Multi-Node-GPUs hinweg. |
Sehen Sie, was Ihre SciML-Forscherkollegen über Modulus sagen (in Kürze verfügbar).
Die folgenden Ressourcen helfen Ihnen beim Erlernen der Verwendung von Modulus. Am besten beginnen Sie mit einem Referenzbeispiel und aktualisieren es dann für Ihren eigenen Anwendungsfall.
Verwenden von Modulus mit Ihrem PyTorch-Modell
Verwendung integrierter Modulus-Modelle
Leitfaden „Erste Schritte“.
Referenzmuster
Benutzerhandbuch Dokumentation
Webinar zum Einstieg
AI4Science Modulus Bootcamp
Modul Vorab trainierte Modelle
Moduldatensätze und ergänzende Materialien
Modulus DLI-Schulung im Selbststudium
Vorlesungsreihe „Deep Learning for Science and Engineering“ mit Modulus
Modul: Zweck und Nutzung
Video-Tutorials
Die empfohlene Methode zur Installation der neuesten Version von Modulus ist die Verwendung von PyPi:
pip install nvidia-modulus
Die Installation kann überprüft werden, indem das hier gezeigte Hallo-Welt-Beispiel ausgeführt wird.
Modulus verfügt über viele optionale Abhängigkeiten, die in bestimmten Komponenten verwendet werden. Bei Verwendung von pip können alle in Modulus verwendeten Abhängigkeiten mit pip install nvidia-modulus[all]
installiert werden. Wenn Sie Modulus entwickeln, können Entwicklerabhängigkeiten mit pip install nvidia-modulus[dev]
installiert werden. Ansonsten können im Einzelfall weitere Abhängigkeiten installiert werden. Detaillierte Informationen zur Installation der optionalen Abhängigkeiten finden Sie im Getting Started Guide.
Das empfohlene Modulus-Docker-Image kann aus der NVIDIA Container Registry abgerufen werden (das neueste Tag finden Sie in der NGC-Registrierung):
Docker Pull nvcr.io/nvidia/modulus/modulus:24.09
Innerhalb des Containers können Sie die Modulus-Git-Repositorys klonen und mit den Beispielen beginnen. Der folgende Befehl zeigt die Anweisungen zum Starten des Modulus-Containers und zum Ausführen von Beispielen aus diesem Repo.
docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --runtime nvidia --rm -it nvcr.io/nvidia/modulus/modulus:24.09 Bash Git-Klon https://github.com/NVIDIA/modulus.gitcd modulus/examples/cfd/darcy_fno/ pip install warp-lang # NVIDIA Warp installieren, um das Darcy-Beispielpython train_fno_darcy.py auszuführen
Informationen zum von Unternehmen unterstützten NVAIE-Container finden Sie unter Modulus Secured Feature Branch
Für einen lokalen Build des Modulus-Python-Pakets aus dem Quellcode verwenden Sie:
git clone [email protected]:NVIDIA/modulus.git && cd modulus pip install --upgrade pip pip install .
So erstellen Sie ein Modulus-Docker-Image:
docker build -t modulus:deploy --build-arg TARGETPLATFORM=linux/amd64 --targetploy -f Dockerfile .
Alternativ können Sie make container-deploy
ausführen
So erstellen Sie ein CI-Image:
docker build -t modulus:ci --build-arg TARGETPLATFORM=linux/amd64 --target ci -f Dockerfile .
Alternativ können Sie make container-ci
ausführen.
Derzeit werden nur die Plattformen linux/amd64
und linux/arm64
unterstützt. Bei Verwendung von linux/arm64
werden einige Abhängigkeiten wie warp-lang
möglicherweise nicht korrekt installiert.
Modulus ist eine Open-Source-Zusammenarbeit und sein Erfolg basiert auf dem Beitrag der Gemeinschaft zur Weiterentwicklung des Bereichs Physik-ML. Vielen Dank für Ihren Beitrag zum Projekt, damit andere auf Ihrem Beitrag aufbauen können.
Hinweise zum Beitragen zu Modulus finden Sie in den Beitragsrichtlinien.
Wenn Modulus Ihrer Forschung geholfen hat und Sie es zitieren möchten, lesen Sie bitte die Richtlinien
Github-Diskussionen: Besprechen Sie neue Architekturen, Implementierungen, Physik-ML-Forschung usw.
GitHub-Probleme: Fehlerberichte, Funktionsanfragen, Installationsprobleme usw.
Modulus-Forum: Das Modulus-Forum beherbergt ein Publikum neuer bis mittelschwerer Benutzer und Entwickler für allgemeine Chats, Online-Diskussionen, Zusammenarbeit usw.
Möchten Sie einige Verbesserungen für Modulus vorschlagen? Nutzen Sie hier unser Feedback-Formular.
Modulus wird unter der Apache-Lizenz 2.0 bereitgestellt. Den vollständigen Lizenztext finden Sie in LICENSE.txt.