시작하기 | 설치 가이드 | 기여 지침 | 자원 | 의사소통
NVIDIA Modulus는 AI4science 및 엔지니어링을 위한 최첨단 SciML 방법을 사용하여 딥 러닝 모델을 구축, 훈련 및 미세 조정하기 위한 오픈 소스 딥 러닝 프레임워크입니다.
Modulus는 물리 지식과 데이터를 결합하여 실시간 예측이 가능한 AI 모델을 개발하기 위한 유틸리티와 최적화된 파이프라인을 제공합니다.
신경 연산자, GNN 또는 변환기의 사용을 탐색 중이거나 물리 기반 신경망 또는 그 사이의 하이브리드 접근 방식에 관심이 있는 경우 Modulus는 모델을 규모에 맞게 교육할 수 있는 최적화된 스택을 제공합니다.
모듈러스에 대한 추가 정보
도메인별 패키지
확장 가능한 GPU 최적화 교육 라이브러리
물리학 기반 ML 모델 모음
원활한 PyTorch 통합
쉬운 사용자 정의 및 확장
AI4과학 도서관
Modulus에 기여하는 사람
모듈러스를 사용하는 이유
시작하기
자원
설치
기여
의사소통
특허
세부적인 수준에서 Modulus는 몇 가지 주요 구성 요소의 라이브러리를 제공합니다.
요소 | 설명 |
---|---|
모듈.모델 | 푸리에 신경 연산자, 그래프 신경망 등 최적화되고 사용자 정의 가능하며 사용하기 쉬운 모델 모음 |
모듈러스.데이터파이프 | 벤치마크 데이터파이프, 날씨 데이터파이프, 그래프 데이터파이프를 포함한 데이터 파이프라인 및 데이터 로더 라이브러리 |
모듈러스.분산 | 단 몇 단계만으로 병렬 교육이 가능하도록 torch.distributed 위에 구축된 분산 컴퓨팅 라이브러리 |
모듈러스.심칭.기하학 | Constructive Solid Geometry 모델링과 STL 형식의 CAD 파일을 사용하여 DL 교육용 형상을 처리하는 라이브러리입니다. |
모듈러스.sym.eq | 일반적으로 관찰되는 방정식의 여러 구현과 쉬운 사용자 정의 방법을 통해 DL 훈련에서 PDE를 사용하는 라이브러리입니다. |
전체 목록을 보려면 Modulus Core 및 Modulus Sym에 대한 Modulus API 문서를 참조하세요.
일반적으로 모듈러스는 다음 중 하나로 사용됩니다.
SciML 및 AI4Science 애플리케이션용 AI를 탐색할 때 Pytorch를 보완하는 도구입니다.
NVIDIA GPU에서 확장성과 최적의 성능을 제공하는 딥 러닝 연구 플랫폼입니다.
추가 설명:
Modulus는 NVIDIA GPU의 성능을 극대화하기 위해 고도로 최적화되고 확장 가능한 교육 라이브러리를 제공합니다. 분산 컴퓨팅 유틸리티를 사용하면 몇 줄의 코드만으로 단일 GPU에서 다중 노드 GPU 클러스터로 효율적으로 확장할 수 있으므로 대규모 확장이 가능합니다. 물리학 기반 기계 학습(ML) 모델은 빠르고 효과적으로 훈련될 수 있습니다. 프레임워크에는 고급 지원이 포함되어 있습니다. 최적화 유틸리티, 맞춤형 데이터파이프, 검증 유틸리티를 통해 종단 간 훈련 속도를 향상시킵니다.
Modulus는 물리학-ML 애플리케이션을 위해 특별히 설계된 포괄적인 최첨단 모델 라이브러리를 제공합니다. Model Zoo에는 FNO(Fourier Neural Operators), DeepONet, PINN(Physics-Informed Neural Networks), GNN(Graph Neural Networks), 확산 모델과 같은 생성 AI 모델과 같은 일반화 가능한 모델 아키텍처와 도메인별 모델이 포함되어 있습니다. 딥 러닝 날씨 예측(DLWP) 및 초해상도 네트워크(SrNN) 등이 있습니다. 이러한 모델은 전산유체역학, 구조역학, 전자기학과 같은 다양한 물리 영역에 최적화되어 있습니다. 사용자는 특정 요구 사항에 맞게 이러한 모델을 다운로드, 사용자 정의 및 구축할 수 있으므로 충실도가 높은 시뮬레이션을 개발하는 데 필요한 시간을 크게 줄일 수 있습니다.
Modulus는 PyTorch를 기반으로 구축되어 이미 PyTorch에 능숙한 사람들에게 친숙하고 사용자 친화적인 경험을 제공합니다. 여기에는 간단한 Python 인터페이스와 모듈식 설계가 포함되어 있어 기존 PyTorch 워크플로와 함께 Modulus를 쉽게 사용할 수 있습니다. 사용자는 라이브러리 및 도구를 포함한 광범위한 PyTorch 생태계를 활용하는 동시에 Modulus의 물리 ML에 대한 전문 기능의 이점을 누릴 수 있습니다. 이러한 원활한 통합을 통해 사용자는 가파른 학습 곡선 없이 Modulus를 빠르게 채택할 수 있습니다.
자세한 내용은 PyTorch 모델을 모듈러스 모델로 변환을 참조하세요.
Modulus는 확장성이 뛰어나도록 설계되어 사용자가 최소한의 노력으로 새로운 기능을 추가할 수 있습니다. 프레임워크는 새로운 물리 모델, 형상 및 제약 조건을 정의하기 위한 Pythonic API를 제공하므로 기능을 새로운 사용 사례로 쉽게 확장할 수 있습니다. 유연한 모델 배포를 위한 ONNX 지원, 간소화된 오류 처리를 위한 강력한 로깅 유틸리티, 모델 로드 및 저장을 단순화하는 효율적인 체크포인트와 같은 주요 기능을 통해 Modulus의 적응성이 더욱 향상되었습니다.
이러한 확장성은 Modulus가 연구원과 엔지니어의 변화하는 요구 사항에 적응할 수 있도록 보장하여 물리학-ML 분야의 혁신적인 솔루션 개발을 촉진합니다.
기능에 대한 자세한 내용은 Modulus 설명서에서 확인할 수 있습니다.
참조 샘플은 과학 및 엔지니어링 분야의 다양한 사용 사례에 맞게 물리적으로 제한된 광범위한 데이터 기반 워크플로를 포괄합니다.
팁
Modulus가 어떻게 도움을 줄 수 있는지 궁금한 점이 있으신가요? [실험용] 챗봇인 Modulus Guide를 통해 답변을 받아보세요.
다음과 같이 간단하게 PyTorch 코드에서 Modulus를 사용할 수 있습니다.
python>>> 토치 가져오기>>> modulus.models.mlp.full_connected에서 가져오기 FullyConnected>>> 모델 = FullyConnected(in_features=32, out_features=64)>>> 입력 = 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 Cardiovasive Research 팀, UIUC 팀, CMU 팀 등이 있습니다.
Modulus를 사용하는 연구팀의 최신 사례로는 ORNL 팀, TU 뮌헨 CFD 팀 등이 있습니다.
Modulus를 활용하는 연구 작업의 전체 목록을 보려면 이 페이지로 이동하십시오. Modulus를 사용하는 기업 목록은 여기를 참조하세요.
Modulus를 사용하고 있으며 NVIDIA 블로그에 귀하의 작업을 소개하는 데 관심이 있으십니까? 이 제안서를 작성하시면 연락드리겠습니다!
SciML 모델 개발을 위한 Modulus의 주요 이점은 다음과 같습니다.
SciML 벤치마킹 및 검증 | 이기종 데이터 세트와 함께 일반화된 SciML 레시피를 쉽게 사용할 수 있습니다. | 즉시 사용 가능한 성능 및 확장성 |
Modulus를 사용하면 연구원은 상세한 도메인별 검증 기준을 사용하여 표준 벤치마크 문제에 대해 입증된 아키텍처에 대해 AI 모델을 벤치마킹할 수 있습니다. | Modulus를 사용하면 연구자는 SOTA SciML 아키텍처 중에서 선택하고 사용 사례에 맞게 내장된 데이터 파이프라인을 사용할 수 있습니다. | Modulus는 이기종 엔지니어링 및 과학 데이터세트에 최적화된 ETL 파이프라인과 다중 GPU 및 다중 노드 GPU 전반에 걸친 기본 확장을 포함하여 즉시 사용 가능한 고성능 교육 파이프라인을 제공합니다. |
동료 SciML 연구원들이 Modulus(곧 제공 예정)에 대해 어떻게 말하는지 확인하세요.
다음 리소스는 Modulus 사용 방법을 배우는 데 도움이 될 것입니다. 가장 좋은 방법은 참조 샘플로 시작한 다음 자신의 사용 사례에 맞게 업데이트하는 것입니다.
PyTorch 모델에 Modulus 사용하기
Modulus 내장 모델 사용
시작하기 가이드
참조 샘플
사용자 가이드 문서
웹 세미나 시작하기
AI4Science 모듈러스 부트캠프
모듈러스 사전 학습된 모델
모듈러스 데이터세트 및 보충 자료
자기 주도형 모듈러스 DLI 교육
모듈러스를 사용한 과학 및 공학 강의 시리즈를 위한 딥 러닝
모듈러스: 목적 및 용도
비디오 튜토리얼
최신 버전의 Modulus를 설치하는 데 권장되는 방법은 PyPi를 사용하는 것입니다.
pip 설치 엔비디아 모듈러스
여기에 설명된 대로 hello world 예제를 실행하여 설치를 확인할 수 있습니다.
Modulus에는 특정 구성 요소에 사용되는 많은 선택적 종속성이 있습니다. pip를 사용하는 경우 Modulus에 사용되는 모든 종속성은 pip install nvidia-modulus[all]
로 설치할 수 있습니다. Modulus를 개발하는 경우 pip install nvidia-modulus[dev]
사용하여 개발자 종속성을 설치할 수 있습니다. 그렇지 않으면 경우에 따라 추가 종속성을 설치할 수 있습니다. 선택적 종속성 설치에 대한 자세한 내용은 시작 안내서에서 확인할 수 있습니다.
권장되는 모듈러스 도커 이미지는 NVIDIA 컨테이너 레지스트리에서 가져올 수 있습니다(최신 태그는 NGC 레지스트리 참조).
도커 풀 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 자식 클론 https://github.com/NVIDIA/modulus.gitcd modulus/examples/cfd/darcy_fno/ pip install warp-lang # NVIDIA Warp를 설치하여 darcy 실행 examplepython train_fno_darcy.py
기업 지원 NVAIE 컨테이너의 경우 Modulus Secured Feature Branch를 참조하세요.
소스 사용에서 Modulus Python 패키지의 로컬 빌드의 경우:
git clone [email protected]:NVIDIA/modulus.git && cd 모듈러스 pip 설치 - pip 업그레이드 핍 설치 .
Modulus Docker 이미지를 빌드하려면 다음 안내를 따르세요.
docker build -t 모듈러스:배포 --build-arg TARGETPLATFORM=linux/amd64 --target 배포 -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는 오픈 소스 협업이며 그 성공은 Physics-ML 분야를 발전시키기 위한 커뮤니티 기여에 뿌리를 두고 있습니다. 다른 사람들이 귀하의 기여를 바탕으로 발전할 수 있도록 프로젝트에 기여해 주셔서 감사합니다.
Modulus에 기여하는 방법에 대한 지침은 기여 지침을 참조하세요.
Modulus가 귀하의 연구에 도움이 되었고 인용하고 싶다면 가이드라인을 참조하세요.
Github 토론: 새로운 아키텍처, 구현, Physics-ML 연구 등에 대해 토론합니다.
GitHub 문제: 버그 보고서, 기능 요청, 설치 문제 등
Modulus 포럼: Modulus 포럼은 일반 채팅, 온라인 토론, 협업 등을 위해 신규 사용자부터 중간 수준 사용자 및 개발자로 구성된 청중을 호스팅합니다.
Modulus에 대한 몇 가지 개선 사항을 제안하고 싶으십니까? 여기에서 피드백 양식을 사용하세요.
모듈러스는 Apache License 2.0에 따라 제공됩니다. 전체 라이센스 텍스트를 보려면 LICENSE.txt를 참조하십시오.