Commencer | Guide d'installation | Lignes directrices de contribution | Ressources | Communication
NVIDIA Modulus est un framework d'apprentissage profond open source permettant de créer, de former et d'affiner des modèles d'apprentissage profond à l'aide de méthodes SciML de pointe pour AI4science et l'ingénierie.
Modulus fournit des utilitaires et des pipelines optimisés pour développer des modèles d'IA qui combinent les connaissances physiques avec les données, permettant ainsi des prédictions en temps réel.
Que vous exploriez l'utilisation d'opérateurs neuronaux, de GNN ou de transformateurs ou que vous soyez intéressé par les réseaux de neurones basés sur la physique ou par une approche hybride entre les deux, Modulus vous fournit une pile optimisée qui vous permettra d'entraîner vos modèles à grande échelle.
En savoir plus sur le module
Forfaits spécifiques au domaine
Bibliothèque de formation évolutive optimisée pour le GPU
Une suite de modèles ML basés sur la physique
Intégration transparente de PyTorch
Personnalisation et extension faciles
Bibliothèque AI4Science
Qui contribue à Module
Pourquoi utiliser Module
Commencer
Ressources
Installation
Contribuer
Communication
Licence
À un niveau granulaire, Modulus fournit une bibliothèque de quelques composants clés :
Composant | Description |
---|---|
modules.modèles | Une collection de modèles optimisés, personnalisables et faciles à utiliser tels que les opérateurs neuronaux de Fourier, les réseaux de neurones graphiques et bien d'autres. |
module.datapipes | Un pipeline de données et une bibliothèque de chargeurs de données, comprenant des datapipes de référence, des daptapipes météorologiques et des datapipes graphiques |
module.distribué | Une bibliothèque informatique distribuée construite sur torch.distributed pour permettre une formation parallèle en quelques étapes seulement |
module.sym.geometry | Une bibliothèque pour gérer la géométrie pour la formation DL à l'aide de la modélisation Constructive Solid Geometry et des fichiers CAO au format STL. |
module.sym.eq | Une bibliothèque pour utiliser les PDE dans votre formation DL avec plusieurs implémentations d'équations couramment observées et des moyens simples de personnalisation. |
Pour une liste complète, reportez-vous à la documentation de l'API Modulus pour Modulus Core et Modulus Sym.
Habituellement, Module est utilisé comme :
Un outil complémentaire à Pytorch pour explorer les applications AI pour SciML et AI4Science.
Une plateforme de recherche d'apprentissage profond qui offre une évolutivité et des performances optimales sur les GPU NVIDIA.
Élaborer davantage :
Modulus fournit une bibliothèque de formation hautement optimisée et évolutive pour maximiser la puissance des GPU NVIDIA. Les utilitaires de calcul distribué permettent une mise à l'échelle efficace d'un seul GPU à des clusters GPU multi-nœuds avec quelques lignes de code, garantissant ainsi une grande échelle. Les modèles d'apprentissage automatique (ML) basés sur la physique peuvent être formés rapidement et efficacement. Le framework inclut la prise en charge des versions avancées. utilitaires d'optimisation, datapipes sur mesure, utilitaires de validation pour améliorer la vitesse de formation de bout en bout.
Modulus propose une bibliothèque complète de modèles de pointe spécialement conçus pour les applications de physique-ML. Le zoo modèle comprend des architectures de modèles généralisables telles que les opérateurs neuronaux de Fourier (FNO), DeepONet, les réseaux de neurones informés par la physique (PINN), les réseaux de neurones graphiques (GNN) et des modèles d'IA génératifs tels que les modèles de diffusion ainsi que des modèles spécifiques à un domaine tels que Deep Learning Weather Prediction (DLWP) et Super Resolution Network (SrNN), entre autres. Ces modèles sont optimisés pour divers domaines physiques, tels que la dynamique des fluides computationnelle, la mécanique des structures et l'électromagnétique. Les utilisateurs peuvent télécharger, personnaliser et développer ces modèles pour répondre à leurs besoins spécifiques, réduisant ainsi considérablement le temps nécessaire au développement de simulations haute fidélité.
Modulus est construit sur PyTorch, offrant une expérience familière et conviviale à ceux qui maîtrisent déjà PyTorch. Cela inclut une interface Python simple et une conception modulaire, ce qui facilite l'utilisation de Modulus avec les flux de travail PyTorch existants. Les utilisateurs peuvent tirer parti du vaste écosystème PyTorch, y compris ses bibliothèques et outils, tout en bénéficiant des capacités spécialisées de Modulus pour la physique-ML. Cette intégration transparente garantit que les utilisateurs peuvent adopter rapidement Modulus sans une courbe d'apprentissage abrupte.
Pour plus d'informations, consultez Conversion de modèles PyTorch en modèles de modules.
Modulus est conçu pour être hautement extensible, permettant aux utilisateurs d'ajouter de nouvelles fonctionnalités avec un minimum d'effort. Le framework fournit des API Pythonic pour définir de nouveaux modèles physiques, géométries et contraintes, facilitant ainsi l'extension de ses capacités à de nouveaux cas d'utilisation. L'adaptabilité de Modulus est encore améliorée par des fonctionnalités clés telles que la prise en charge d'ONNX pour un déploiement flexible de modèles, des utilitaires de journalisation robustes pour une gestion rationalisée des erreurs et des points de contrôle efficaces pour simplifier le chargement et l'enregistrement du modèle.
Cette extensibilité garantit que Modulus peut s'adapter aux besoins changeants des chercheurs et des ingénieurs, facilitant ainsi le développement de solutions innovantes dans le domaine de la physique-ML.
Des informations détaillées sur les fonctionnalités et les capacités peuvent être trouvées dans la documentation de Modulus.
Les échantillons de référence couvrent un large spectre de flux de travail contraints par la physique et basés sur les données pour s'adapter à la diversité des cas d'utilisation dans les disciplines scientifiques et techniques.
Conseil
Vous avez des questions sur la façon dont Modulus peut vous aider ? Essayez notre chatbot [expérimental], Modulus Guide, pour obtenir des réponses.
Vous pouvez commencer à utiliser Modulus dans votre code PyTorch aussi simplement que indiqué ici :
python>>> importer la torche>>> depuis modulus.models.mlp.fully_connected importer FullyConnected>>> model = FullyConnected(in_features=32, out_features=64)>>> input = torch.randn(128, 32)>>> sortie = modèle (entrée) >>> sortie.shapetorch.Size ([128, 64])
Module Symbolique : ce référentiel d'algorithmes et d'utilitaires permet aux chercheurs et développeurs de SciML d'éclairer la physique sur la formation et la validation des modèles. Il fournit également un niveau d'abstraction plus élevé pour les experts du domaine, natif de la science et de l'ingénierie.
Les packages suivants sont dédiés aux experts de domaine de communautés spécifiques répondant à leurs besoins d'exploration uniques.
Earth-2 Studio : projet open source visant à permettre aux chercheurs et scientifiques du climat d'explorer et d'expérimenter des modèles d'IA pour la météo et le climat.
Les packages de recherche suivants sont intégrés dans Modulus une fois qu'ils sont stables.
Modulus Makani : bibliothèque expérimentale conçue pour permettre la recherche et le développement de modèles météorologiques et climatiques basés sur l'apprentissage automatique.
Earth2 Grid : Bibliothèque expérimentale avec des utilitaires pour travailler des données géographiques définies sur diverses grilles.
Earth-2 MIP : bibliothèque expérimentale avec des utilitaires pour la comparaison de modèles météorologiques et climatiques.
Modulus est un projet open source et reçoit les contributions de chercheurs dans les domaines SciML et AI4science. Pendant que l'équipe Modulus travaille à l'optimisation de la pile logicielle sous-jacente, la communauté collabore et fournit des architectures de modèles, des ensembles de données et des applications de référence afin que nous puissions innover dans la poursuite du développement d'architectures de modèles et d'algorithmes généralisables.
Quelques exemples récents de contributeurs de la communauté sont l'équipe d'impression 3D de HP Labs, l'équipe de recherche cardiovasculaire de Stanford, l'équipe UIUC, l'équipe CMU, etc.
Les derniers exemples d'équipes de recherche utilisant Modulus sont l'équipe ORNL, l'équipe TU Munich CFD, etc.
Veuillez naviguer vers cette page pour une liste complète des travaux de recherche tirant parti de Modulus. Pour une liste des entreprises utilisant Modulus, reportez-vous ici.
Vous utilisez Modulus et souhaitez présenter votre travail sur les blogs NVIDIA ? Remplissez ce formulaire de proposition et nous vous répondrons !
Voici quelques-uns des principaux avantages de Modulus pour le développement de modèles SciML :
Analyse comparative et validation SciML | Facilité d'utilisation de recettes SciML généralisées avec des ensembles de données hétérogènes | Performances et évolutivité prêtes à l'emploi |
Modulus permet aux chercheurs de comparer leur modèle d'IA à des architectures éprouvées pour des problèmes de référence standard avec des critères de validation détaillés spécifiques au domaine. | Modulus permet aux chercheurs de choisir parmi les architectures SOTA SciML et d'utiliser des pipelines de données intégrés pour leur cas d'utilisation. | Modulus fournit des pipelines de formation performants prêts à l'emploi, notamment des pipelines ETL optimisés pour des ensembles de données techniques et scientifiques hétérogènes et une mise à l'échelle prête à l'emploi sur des GPU multi-GPU et multi-nœuds. |
Découvrez ce que disent vos pairs chercheurs SciML à propos de Modulus (à venir).
Les ressources suivantes vous aideront à apprendre à utiliser Modulus. La meilleure façon est de commencer avec un échantillon de référence, puis de le mettre à jour pour votre propre cas d'utilisation.
Utiliser Modulus avec votre modèle PyTorch
Utilisation des modèles intégrés de Modulus
Guide de démarrage
Échantillons de référence
Guide d'utilisation Documentation
Webinaire de démarrage
Bootcamp du module AI4Science
Modèles pré-entraînés Module
Ensembles de données de module et documents supplémentaires
Formation module DLI à votre rythme
Série de conférences sur l'apprentissage profond pour les sciences et l'ingénierie avec Modulus
Module : objectif et utilisation
Tutoriels vidéo
La méthode recommandée pour installer la dernière version de Modulus consiste à utiliser PyPi :
pip installer nvidia-modulus
L'installation peut être vérifiée en exécutant l'exemple hello world comme démontré ici.
Modulus possède de nombreuses dépendances facultatives utilisées dans des composants spécifiques. Lors de l'utilisation de pip, toutes les dépendances utilisées dans Modulus peuvent être installées avec pip install nvidia-modulus[all]
. Si vous développez Modulus, les dépendances du développeur peuvent être installées à l'aide de pip install nvidia-modulus[dev]
. Sinon, des dépendances supplémentaires peuvent être installées au cas par cas. Des informations détaillées sur l'installation des dépendances facultatives sont disponibles dans le Guide de démarrage.
L'image Docker Modulus recommandée peut être extraite du registre de conteneurs NVIDIA (reportez-vous au registre NGC pour la dernière balise) :
docker pull nvcr.io/nvidia/modulus/modulus:24.09
À l'intérieur du conteneur, vous pouvez cloner les référentiels git Modulus et commencer avec les exemples. La commande ci-dessous montre les instructions pour lancer le conteneur modulus et exécuter des exemples à partir de ce dépôt.
docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --runtime nvidia --rm -it nvcr.io/nvidia/modulus/modulus:24.09 bash clone git https://github.com/NVIDIA/modulus.gitcd modulus/examples/cfd/darcy_fno/ pip install warp-lang # installez NVIDIA Warp pour exécuter l'exemple de Darcypython train_fno_darcy.py
Pour le conteneur NVAIE pris en charge par l'entreprise, reportez-vous à la branche des fonctionnalités sécurisées de Modulus.
Pour une version locale du package Modulus Python à partir des sources, utilisez :
git clone [email protected]:NVIDIA/modulus.git && module cd pip install --upgrade pip pip installer.
Pour créer une image Docker Modulus :
docker build -t module: déployer --build-arg TARGETPLATFORM=linux/amd64 --target déployer -f Dockerfile .
Alternativement, vous pouvez exécuter make container-deploy
Pour créer une image CI :
docker build -t module: ci --build-arg TARGETPLATFORM=linux/amd64 --target ci -f Dockerfile .
Vous pouvez également exécuter make container-ci
.
Actuellement, seules les plates-formes linux/amd64
et linux/arm64
sont prises en charge. Si vous utilisez linux/arm64
, certaines dépendances comme warp-lang
pourraient ne pas s'installer correctement.
Modulus est une collaboration open source et son succès est enraciné dans la contribution de la communauté pour faire progresser le domaine de la physique-ML. Merci d'avoir contribué au projet afin que d'autres puissent s'appuyer sur votre contribution.
Pour obtenir des conseils sur la contribution à Modulus, veuillez vous référer aux directives de contribution.
Si Modulus a aidé votre recherche et que vous souhaitez le citer, veuillez vous référer aux lignes directrices
Discussions Github : discutez des nouvelles architectures, des implémentations, de la recherche Physics-ML, etc.
Problèmes GitHub : rapports de bogues, demandes de fonctionnalités, problèmes d'installation, etc.
Forum Modulus : le forum Modulus héberge un public d'utilisateurs et de développeurs de niveau nouveau à modéré pour un chat général, des discussions en ligne, une collaboration, etc.
Vous souhaitez suggérer des améliorations à Modulus ? Utilisez notre formulaire de commentaires ici.
Le module est fourni sous la licence Apache 2.0, veuillez consulter LICENSE.txt pour le texte complet de la licence.