Empezando | Guía de instalación | Directrices para contribuir | Recursos | Comunicación
NVIDIA Modulus es un marco de aprendizaje profundo de código abierto para crear, entrenar y ajustar modelos de aprendizaje profundo utilizando métodos SciML de última generación para AI4science e ingeniería.
Modulus proporciona utilidades y canales optimizados para desarrollar modelos de IA que combinan conocimientos de física con datos, lo que permite predicciones en tiempo real.
Ya sea que esté explorando el uso de operadores neuronales, GNN o transformadores o esté interesado en redes neuronales basadas en la física o en un enfoque híbrido intermedio, Modulus le proporciona una pila optimizada que le permitirá entrenar sus modelos a escala.
Más sobre el módulo
Paquetes específicos de dominio
Biblioteca de entrenamiento escalable optimizada para GPU
Un conjunto de modelos de aprendizaje automático basados en la física
Integración perfecta de PyTorch
Fácil personalización y extensión
Biblioteca AI4Science
¿Quién contribuye a Modulus?
¿Por qué utilizar el módulo?
Empezando
Recursos
Instalación
Contribuyendo
Comunicación
Licencia
A nivel granular, Modulus proporciona una biblioteca de algunos componentes clave:
Componente | Descripción |
---|---|
módulos.modelos | Una colección de modelos optimizados, personalizables y fáciles de usar, como operadores neuronales de Fourier, redes neuronales gráficas y muchos más. |
módulo.datapipes | Una biblioteca de canalización de datos y cargador de datos, que incluye tuberías de datos de referencia, tuberías de datos meteorológicas y tuberías de datos de gráficos. |
módulo.distribuido | Una biblioteca informática distribuida construida sobre torch.distributed para permitir la capacitación paralela con solo unos pocos pasos |
módulo.sym.geometry | Una biblioteca para manejar geometría para el entrenamiento DL utilizando el modelado de Geometría Sólida Constructiva y archivos CAD en formato STL. |
módulo.sym.eq | Una biblioteca para utilizar PDE en su capacitación de DL con varias implementaciones de ecuaciones comúnmente observadas y formas sencillas de personalización. |
Para obtener una lista completa, consulte la documentación de Modulus API para Modulus Core y Modulus Sym.
Normalmente, el módulo se utiliza como:
Una herramienta complementaria a Pytorch a la hora de explorar la IA para aplicaciones SciML y AI4Science.
Una plataforma de investigación de aprendizaje profundo que proporciona escala y rendimiento óptimo en las GPU NVIDIA.
Desarrollando más:
Modulus proporciona una biblioteca de formación altamente optimizada y escalable para maximizar la potencia de las GPU NVIDIA. Las utilidades informáticas distribuidas permiten un escalado eficiente desde una sola GPU hasta clústeres de GPU de múltiples nodos con unas pocas líneas de código, lo que garantiza una gran escala. Los modelos de aprendizaje automático (ML) basados en la física se pueden entrenar de forma rápida y eficaz. El marco incluye soporte para avanzados. utilidades de optimización, tuberías de datos hechas a medida, utilidades de validación para mejorar la velocidad de entrenamiento de principio a fin.
Modulus ofrece una biblioteca completa de modelos de última generación diseñados específicamente para aplicaciones de física-ML. Model Zoo incluye arquitecturas de modelos generalizables como operadores neuronales de Fourier (FNO), DeepONet, redes neuronales informadas por la física (PINN), redes neuronales de gráficos (GNN) y modelos de IA generativa como modelos de difusión, así como modelos de dominio específico como Predicción meteorológica de aprendizaje profundo (DLWP) y Red de superresolución (SrNN), entre otros. Estos modelos están optimizados para diversos dominios de la física, como la dinámica de fluidos computacional, la mecánica estructural y la electromagnética. Los usuarios pueden descargar, personalizar y desarrollar estos modelos para satisfacer sus necesidades específicas, lo que reduce significativamente el tiempo necesario para desarrollar simulaciones de alta fidelidad.
Modulus está construido sobre PyTorch, lo que proporciona una experiencia familiar y fácil de usar para aquellos que ya dominan PyTorch. Esto incluye una interfaz Python simple y un diseño modular, lo que facilita el uso de Modulus con los flujos de trabajo de PyTorch existentes. Los usuarios pueden aprovechar el extenso ecosistema de PyTorch, incluidas sus bibliotecas y herramientas, mientras se benefician de las capacidades especializadas de Modulus para física-ML. Esta perfecta integración garantiza que los usuarios puedan adoptar Modulus rápidamente sin una curva de aprendizaje pronunciada.
Para obtener más información, consulte Conversión de modelos de PyTorch a modelos de módulo.
Modulus está diseñado para ser altamente extensible, lo que permite a los usuarios agregar nuevas funciones con un mínimo esfuerzo. El marco proporciona API Pythonic para definir nuevos modelos físicos, geometrías y restricciones, lo que facilita la ampliación de sus capacidades a nuevos casos de uso. La adaptabilidad de Modulus se ve reforzada aún más por características clave como la compatibilidad con ONNX para la implementación flexible de modelos, sólidas utilidades de registro para un manejo optimizado de errores y puntos de control eficientes para simplificar la carga y el guardado de modelos.
Esta extensibilidad garantiza que Modulus pueda adaptarse a las necesidades cambiantes de investigadores e ingenieros, facilitando el desarrollo de soluciones innovadoras en el campo de la física-ML.
Puede encontrar información detallada sobre características y capacidades en la documentación de Modulus.
Las muestras de referencia cubren un amplio espectro de flujos de trabajo basados en datos y con restricciones físicas para adaptarse a la diversidad de casos de uso en las disciplinas de ciencia e ingeniería.
Consejo
¿Tiene preguntas sobre cómo Modulus puede ayudarle? Pruebe nuestro chatbot [Experimental], Modulus Guide, para obtener respuestas.
Puede comenzar a usar Modulus en su código PyTorch tan simple como se muestra aquí:
python>>> importar antorcha>>> desde modulus.models.mlp.fully_connected importar TotalmenteConectado>>> modelo = TotalmenteConectado(in_features=32, out_features=64)>>> entrada = torch.randn(128, 32)>>> salida = modelo (entrada) >>> salida.shapetorch.Size([128, 64])
Módulo simbólico: este repositorio de algoritmos y utilidades permite a los investigadores y desarrolladores de SciML informar sobre física el entrenamiento y la validación de modelos. También proporciona un nivel de abstracción más alto para los expertos en el campo que es nativo de la ciencia y la ingeniería.
Los siguientes son paquetes dedicados a expertos en dominios de comunidades específicas que satisfacen sus necesidades de exploración únicas.
Earth-2 Studio: proyecto de código abierto para permitir a los investigadores y científicos del clima explorar y experimentar con modelos de IA para el tiempo y el clima.
Los siguientes son paquetes de investigación que se empaquetan en Modulus una vez que están estables.
Modulus Makani: Biblioteca experimental diseñada para permitir la investigación y el desarrollo de modelos climáticos y meteorológicos basados en aprendizaje automático.
Earth2 Grid: Biblioteca experimental con utilidades para trabajar datos geográficos definidos en varias grillas.
Earth-2 MIP: Biblioteca experimental con utilidades para la intercomparación de modelos meteorológicos y climáticos.
Modulus es un proyecto de código abierto y recibe contribuciones de investigadores en los campos de SciML y AI4science. Mientras el equipo de Modulus trabaja para optimizar la pila de software subyacente, la comunidad colabora y aporta arquitecturas de modelos, conjuntos de datos y aplicaciones de referencia para que podamos innovar en la búsqueda de desarrollar algoritmos y arquitecturas de modelos generalizables.
Algunos ejemplos más recientes de contribuyentes de la comunidad son el equipo de impresión 3D de HP Labs, el equipo de investigación cardiovascular de Stanford, el equipo de UIUC, el equipo de CMU, etc.
Los últimos ejemplos de equipos de investigación que utilizan Modulus son el equipo ORNL, el equipo CFD de TU Munich, etc.
Navegue hasta esta página para obtener una lista completa de trabajos de investigación que aprovechan Modulus. Para obtener una lista de empresas que utilizan Modulus, consulte aquí.
¿Utilizas Modulus y estás interesado en mostrar tu trabajo en los blogs de NVIDIA? ¡Complete este formulario de propuesta y nos comunicaremos con usted!
Estos son algunos de los beneficios clave de Modulus para el desarrollo de modelos SciML:
Evaluación comparativa y validación de SciML | Facilidad de utilizar recetas SciML generalizadas con conjuntos de datos heterogéneos | Rendimiento y escalabilidad listos para usar |
Modulus permite a los investigadores comparar su modelo de IA con arquitecturas probadas para problemas de referencia estándar con criterios de validación detallados específicos del dominio. | Modulus permite a los investigadores elegir entre arquitecturas SOTA SciML y utilizar canales de datos integrados para su caso de uso. | Modulus proporciona canales de capacitación de alto rendimiento listos para usar, incluidos canales ETL optimizados para conjuntos de datos científicos y de ingeniería heterogéneos y escalamiento listo para usar en GPU de múltiples GPU y múltiples nodos. |
Vea lo que sus colegas investigadores de SciML dicen sobre Modulus (próximamente).
Los siguientes recursos le ayudarán a aprender a utilizar Modulus. La mejor manera es comenzar con una muestra de referencia y luego actualizarla para su propio caso de uso.
Usando Modulus con su modelo PyTorch
Uso de modelos integrados de Modulus
Guía de introducción
Muestras de referencia
Guía del usuario Documentación
Seminario web de introducción
Bootcamp del módulo AI4Science
Modelos preentrenados de módulo
Conjuntos de datos de módulo y materiales complementarios
Capacitación en módulo DLI a su propio ritmo
Serie de conferencias sobre aprendizaje profundo para ciencias e ingeniería con módulo
Módulo: finalidad y uso
Tutoriales en vídeo
El método recomendado para instalar la última versión de Modulus es utilizar PyPi:
pip instala el módulo nvidia
La instalación se puede verificar ejecutando el ejemplo de hola mundo como se muestra aquí.
Modulus tiene muchas dependencias opcionales que se utilizan en componentes específicos. Cuando se usa pip, todas las dependencias utilizadas en Modulus se pueden instalar con pip install nvidia-modulus[all]
. Si está desarrollando Modulus, las dependencias del desarrollador se pueden instalar usando pip install nvidia-modulus[dev]
. De lo contrario, se pueden instalar dependencias adicionales caso por caso. Puede encontrar información detallada sobre la instalación de las dependencias opcionales en la Guía de introducción.
La imagen de la ventana acoplable Modulus recomendada se puede extraer del Registro de contenedores de NVIDIA (consulte el registro de NGC para obtener la etiqueta más reciente):
extracción de la ventana acoplable nvcr.io/nvidia/modulus/modulus:24.09
Dentro del contenedor, puedes clonar los repositorios de Modulus git y comenzar con los ejemplos. El siguiente comando muestra las instrucciones para iniciar el contenedor del módulo y ejecutar ejemplos de este repositorio.
ejecución de la ventana acoplable --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --runtime nvidia --rm -it nvcr.io/nvidia/modulus/modulus:24.09 bash clon de git https://github.com/NVIDIA/modulus.gitcd modulus/examples/cfd/darcy_fno/ pip install warp-lang # instala NVIDIA Warp para ejecutar el ejemplo de darcypython train_fno_darcy.py
Para conocer el contenedor NVAIE compatible con empresas, consulte Modulus Secured Feature Branch
Para una compilación local del paquete Modulus Python desde el código fuente, utilice:
git clone [email protected]:NVIDIA/modulus.git && módulo de cd instalación de pip --actualizar pip instalación de pipas.
Para crear una imagen acoplable de Módulo:
Docker build -t módulo: implementar --build-arg TARGETPLATFORM=linux/amd64 --target implementar -f Dockerfile.
Alternativamente, puede ejecutar make container-deploy
Para crear una imagen de CI:
Docker build -t módulo:ci --build-arg TARGETPLATFORM=linux/amd64 --target ci -f Dockerfile.
Alternativamente, puedes ejecutar make container-ci
.
Actualmente, solo se admiten las plataformas linux/amd64
y linux/arm64
. Si usa linux/arm64
, es posible que algunas dependencias como warp-lang
no se instalen correctamente.
Modulus es una colaboración de código abierto y su éxito se basa en la contribución de la comunidad para promover el campo de Física-ML. Gracias por contribuir al proyecto para que otros puedan aprovechar su contribución.
Para obtener orientación sobre cómo contribuir a Modulus, consulte las pautas de contribución.
Si Modulus ayudó en su investigación y desea citarlo, consulte las pautas
Discusiones de Github: discuta nuevas arquitecturas, implementaciones, investigaciones de Física-ML, etc.
Problemas de GitHub: informes de errores, solicitudes de funciones, problemas de instalación, etc.
Foro Modulus: El Foro Modulus alberga una audiencia de desarrolladores y usuarios nuevos a nivel moderado para chat general, debates en línea, colaboración, etc.
¿Quiere sugerir algunas mejoras a Modulus? Utilice nuestro formulario de comentarios aquí.
El módulo se proporciona bajo la licencia Apache 2.0; consulte LICENSE.txt para obtener el texto completo de la licencia.