Primeiros passos | Guia de instalação | Diretrizes de contribuição | Recursos | Comunicação
NVIDIA Modulus é uma estrutura de aprendizagem profunda de código aberto para construção, treinamento e ajuste fino de modelos de aprendizagem profunda usando métodos SciML de última geração para ciência e engenharia AI4.
Modulus fornece utilitários e pipelines otimizados para desenvolver modelos de IA que combinam conhecimento de física com dados, permitindo previsões em tempo real.
Esteja você explorando o uso de operadores neurais, GNNs ou transformadores ou esteja interessado em redes neurais com base na física ou em uma abordagem híbrida intermediária, o Modulus fornece uma pilha otimizada que permitirá treinar seus modelos em escala.
Mais sobre módulo
Pacotes Específicos de Domínio
Biblioteca de treinamento escalável e otimizada para GPU
Um conjunto de modelos de ML com base na física
Integração perfeita com PyTorch
Fácil personalização e extensão
Biblioteca AI4Science
Quem está contribuindo para o Módulo
Por que usar Módulo
Começando
Recursos
Instalação
Contribuindo
Comunicação
Licença
Em um nível granular, o Modulus fornece uma biblioteca de alguns componentes principais:
Componente | Descrição |
---|---|
módulos.modelos | Uma coleção de modelos otimizados, personalizáveis e fáceis de usar, como operadores neurais de Fourier, redes neurais de grafos e muito mais |
módulo.datapipes | Um pipeline de dados e uma biblioteca de carregador de dados, incluindo datapipes de benchmark, daptapipes meteorológicos e datapipes gráficos |
módulo.distribuído | Uma biblioteca de computação distribuída construída sobre torch.distributed para permitir treinamento paralelo com apenas algumas etapas |
módulo.sym.geometry | Uma biblioteca para lidar com geometria para treinamento EAD usando a modelagem de Geometria Sólida Construtiva e arquivos CAD em formato STL. |
módulo.sym.eq | Uma biblioteca para usar PDEs em seu treinamento EAD com diversas implementações de equações comumente observadas e maneiras fáceis de customização. |
Para obter uma lista completa, consulte a documentação da API Modulus para Modulus Core e Modulus Sym.
Normalmente, Módulo é usado como:
Uma ferramenta complementar ao Pytorch ao explorar IA para aplicações SciML e AI4Science.
Uma plataforma de pesquisa de aprendizagem profunda que oferece escalabilidade e desempenho ideal em GPUs NVIDIA.
Elaborando ainda mais:
Modulus fornece uma biblioteca de treinamento altamente otimizada e escalável para maximizar o poder das GPUs NVIDIA. Os utilitários de computação distribuída permitem o escalonamento eficiente de uma única GPU para clusters de GPU de vários nós com algumas linhas de código, garantindo grande escala. modelos de aprendizado de máquina (ML) com base na física podem ser treinados de forma rápida e eficaz. A estrutura inclui suporte para avançado. utilitários de otimização, datapipes feitos sob medida, utilitários de validação para aumentar a velocidade de treinamento de ponta a ponta.
Modulus oferece uma biblioteca abrangente de modelos de última geração projetados especificamente para aplicações de ML de física. O Model Zoo inclui arquiteturas de modelos generalizáveis, como operadores neurais de Fourier (FNOs), DeepONet, redes neurais informadas por física (PINNs), redes neurais de grafos (GNNs) e modelos de IA generativos, como modelos de difusão, bem como modelos específicos de domínio, como como Deep Learning Weather Prediction (DLWP) e Super Resolution Network (SrNN), entre outros. Esses modelos são otimizados para vários domínios da física, como dinâmica de fluidos computacional, mecânica estrutural e eletromagnetismo. Os usuários podem baixar, personalizar e desenvolver esses modelos para atender às suas necessidades específicas, reduzindo significativamente o tempo necessário para desenvolver simulações de alta fidelidade.
O Modulus é construído com base no PyTorch, proporcionando uma experiência familiar e fácil de usar para aqueles que já são proficientes no PyTorch. Isso inclui uma interface Python simples e design modular, facilitando o uso do Modulus com fluxos de trabalho PyTorch existentes. Os usuários podem aproveitar o extenso ecossistema PyTorch, incluindo suas bibliotecas e ferramentas, enquanto se beneficiam dos recursos especializados do Modulus para ML de física. Essa integração perfeita garante que os usuários possam adotar rapidamente o Modulus sem uma curva de aprendizado acentuada.
Para obter mais informações, consulte Convertendo modelos PyTorch em modelos Modulus
O Modulus foi projetado para ser altamente extensível, permitindo aos usuários adicionar novas funcionalidades com o mínimo de esforço. A estrutura fornece APIs Pythonic para definir novos modelos físicos, geometrias e restrições, facilitando a extensão de seus recursos para novos casos de uso. A adaptabilidade do Modulus é aprimorada ainda mais por recursos importantes, como suporte ONNX para implantação flexível de modelos, utilitários de registro robustos para tratamento simplificado de erros e pontos de verificação eficientes para simplificar o carregamento e o salvamento do modelo.
Esta extensibilidade garante que o Modulus possa se adaptar às crescentes necessidades de pesquisadores e engenheiros, facilitando o desenvolvimento de soluções inovadoras no campo da física-ML.
Informações detalhadas sobre recursos e capacidades podem ser encontradas na documentação do Modulus.
As amostras de referência cobrem um amplo espectro de fluxos de trabalho limitados pela física e orientados por dados para atender à diversidade de casos de uso nas disciplinas de ciência e engenharia.
Dica
Tem dúvidas sobre como o Modulus pode ajudá-lo? Experimente nosso chatbot [Experimental], Guia de Módulo, para obter respostas.
Você pode começar a usar o Modulus em seu código PyTorch tão simples quanto mostrado aqui:
python >>> importar tocha >>> de modulus.models.mlp.fully_connected importar FullyConnected >>> modelo = FullyConnected(in_features=32, out_features=64)>>> input = torch.randn(128, 32)>>> saída = modelo (entrada) >>> saída.shapetorch.Size([128, 64])
Módulo Simbólico: Este repositório de algoritmos e utilitários permite que pesquisadores e desenvolvedores de SciML informem a física do treinamento e validação do modelo. Ele também fornece uma abstração de nível superior para especialistas de domínio nativos da ciência e da engenharia.
A seguir estão pacotes dedicados a especialistas de domínio de comunidades específicas que atendem às suas necessidades exclusivas de exploração.
Earth-2 Studio: Projeto de código aberto para permitir que pesquisadores e cientistas climáticos explorem e experimentem modelos de IA para tempo e clima.
A seguir estão os pacotes de pesquisa que são empacotados no Modulus assim que estiverem estáveis.
Modulus Makani: Biblioteca experimental projetada para permitir a pesquisa e desenvolvimento de modelos meteorológicos e climáticos baseados em aprendizado de máquina.
Earth2 Grid: Biblioteca experimental com utilitários para trabalhar dados geográficos definidos em diversas grades.
Earth-2 MIP: Biblioteca experimental com utilitários para intercomparação de modelos meteorológicos e climáticos.
Modulus é um projeto de código aberto e recebe contribuições de pesquisadores das áreas SciML e AI4science. Enquanto a equipe do Modulus trabalha na otimização da pilha de SW subjacente, a comunidade colabora e contribui com arquiteturas de modelos, conjuntos de dados e aplicativos de referência para que possamos inovar na busca pelo desenvolvimento de arquiteturas e algoritmos de modelos generalizáveis.
Alguns exemplos mais recentes de colaboradores da comunidade são a equipe de impressão 3D do HP Labs, a equipe de pesquisa cardiovascular de Stanford, a equipe UIUC, a equipe CMU, etc.
Os exemplos mais recentes de equipes de pesquisa que usam Modulus são a equipe ORNL, a equipe TU Munich CFD, etc.
Navegue até esta página para obter uma lista completa de trabalhos de pesquisa que utilizam o Modulus. Para obter uma lista de empresas que usam o Modulus, consulte aqui.
Você usa o Modulus e está interessado em apresentar seu trabalho nos blogs da NVIDIA? Preencha este formulário de proposta e entraremos em contato com você!
Aqui estão alguns dos principais benefícios do Modulus para desenvolvimento de modelo SciML:
Benchmarking e validação SciML | Facilidade de uso de receitas SciML generalizadas com conjuntos de dados heterogêneos | Desempenho e escalabilidade prontos para uso |
O Modulus permite que os pesquisadores comparem seu modelo de IA com arquiteturas comprovadas para problemas de benchmark padrão com critérios de validação detalhados específicos de domínio. | O Modulus permite que os pesquisadores escolham arquiteturas SOTA SciML e usem pipelines de dados integrados para seu caso de uso. | O Modulus fornece pipelines de treinamento de alto desempenho prontos para uso, incluindo pipelines ETL otimizados para engenharia heterogênea e conjuntos de dados científicos e escalonamento pronto para uso em GPUs multi-GPU e multi-nós. |
Veja o que seus colegas pesquisadores do SciML estão dizendo sobre o Modulus (em breve).
Os recursos a seguir irão ajudá-lo a aprender como usar o Modulus. A melhor maneira é começar com um exemplo de referência e depois atualizá-lo para seu próprio caso de uso.
Usando Modulus com seu modelo PyTorch
Usando modelos integrados do Modulus
Guia de primeiros passos
Amostras de referência
Guia do usuário Documentação
Webinar de primeiros passos
Bootcamp do Módulo AI4Science
Modelos pré-treinados de módulo
Conjuntos de dados de módulo e materiais suplementares
Treinamento Modulus DLI individualizado
Série de palestras sobre aprendizado profundo para ciência e engenharia com módulo
Módulo: finalidade e uso
Tutoriais em vídeo
O método recomendado para instalar a versão mais recente do Modulus é usando PyPi:
pip instalar módulo nvidia
A instalação pode ser verificada executando o exemplo hello world conforme demonstrado aqui.
Modulus possui muitas dependências opcionais que são usadas em componentes específicos. Ao usar o pip, todas as dependências usadas no Modulus podem ser instaladas com pip install nvidia-modulus[all]
. Se você estiver desenvolvendo o Modulus, as dependências do desenvolvedor podem ser instaladas usando pip install nvidia-modulus[dev]
. Caso contrário, dependências adicionais poderão ser instaladas caso a caso. Informações detalhadas sobre a instalação das dependências opcionais podem ser encontradas no Guia de primeiros passos.
A imagem docker Modulus recomendada pode ser extraída do NVIDIA Container Registry (consulte o registro NGC para obter a tag mais recente):
docker pull nvcr.io/nvidia/modulus/modulus:24.09
Dentro do contêiner, você pode clonar os repositórios git do Modulus e começar com os exemplos. O comando abaixo mostra as instruções para iniciar o contêiner módulo e executar exemplos deste repositório.
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 # instala NVIDIA Warp para executar o exemplo darcypython train_fno_darcy.py
Para contêiner NVAIE com suporte empresarial, consulte Modulus Secured Feature Branch
Para uma construção local do pacote Modulus Python a partir da fonte, use:
git clone [email protected]:NVIDIA/modulus.git && cd modulus pip instalar --atualizar pip instalação do pip.
Para construir a imagem do Docker Modulus:
docker build -t módulo: implantar --build-arg TARGETPLATFORM=linux/amd64 --target implantar -f Dockerfile .
Alternativamente, você pode executar make container-deploy
Para construir a imagem CI:
docker build -t módulo:ci --build-arg TARGETPLATFORM=linux/amd64 --target ci -f Dockerfile .
Alternativamente, você pode executar make container-ci
.
Atualmente, apenas as plataformas linux/amd64
e linux/arm64
são suportadas. Se estiver usando linux/arm64
, algumas dependências como warp-lang
podem não ser instaladas corretamente.
Modulus é uma colaboração de código aberto e seu sucesso está enraizado na contribuição da comunidade para promover o campo da Física-ML. Obrigado por contribuir com o projeto para que outros possam desenvolver sua contribuição.
Para obter orientação sobre como contribuir para o Modulus, consulte as diretrizes de contribuição.
Se o Modulus ajudou sua pesquisa e você gostaria de citá-lo, consulte as diretrizes
Discussões no Github: discuta novas arquiteturas, implementações, pesquisas de física-ML, etc.
Problemas do GitHub: relatórios de bugs, solicitações de recursos, problemas de instalação, etc.
Fórum Modulus: O Fórum Modulus hospeda um público de usuários e desenvolvedores de nível novo a moderado para bate-papo geral, discussões online, colaboração, etc.
Quer sugerir algumas melhorias no Modulus? Use nosso formulário de feedback aqui.
O módulo é fornecido sob a licença Apache 2.0; consulte LICENSE.txt para obter o texto completo da licença.