NVIDIA PhysicsNeMo
요약
NVIDIA PhysicsNeMo는 AI4Science를 위한 오픈 소스 SciML 프레임워크로, 물리 AI 모델의 구축부터 배포까지 지원합니다. v2.0 업데이트를 통해 설치와 외부 패키지 통합이 더욱 용이해졌으며, 물리 지식과 데이터를 결합한 실시간 예측 모델 개발에 최적화되어 있습니다.
핵심 포인트
- 물리 지식과 데이터를 결합한 SciML 프레임워크 제공
- Neural Operators, GNN, Transformer 등 다양한 모델 아키텍처 지원
- 분산 컴퓨팅 기반의 확장 가능한 훈련 및 추론 파이프라인 구축
- SymPy를 활용한 기호 PDE 잔차 계산 및 물리 정보 기반 손실 계산 지원
📝 NVIDIA PhysicsNeMo가 v2.0으로 업데이트 중입니다 - 모든 기능이 포함되며, 설치와 외부 패키지 통합이 더욱 쉬워졌습니다. 자세한 내용은 마이그레이션 가이드(migration guide)를 참조하세요!
NVIDIA PhysicsNeMo
| 문서 (Documentation)
| 설치 가이드 (Install Guide)
| 시작하기 (Getting Started)
| 기여 가이드라인 (Contributing Guidelines)
| 개발 블로그 (Dev blog)
NVIDIA PhysicsNeMo는 AI4Science 및 엔지니어링을 위한 최첨단 SciML (Scientific Machine Learning) 방법을 사용하여 물리 AI (Physics AI) 모델을 구축, 훈련, 미세 조정(fine-tuning) 및 추론(inferring)하기 위한 오픈 소스 딥러닝 (deep-learning) 프레임워크입니다.
PhysicsNeMo는 물리 지식과 데이터를 결합하여 실시간 예측을 가능하게 하는 AI 모델을 탐색, 개발, 검증 및 배포할 수 있도록 확장 가능하고 최적화된 훈련 및 추론 파이프라인을 구성하는 Python 모듈을 제공합니다.
뉴럴 오퍼레이터 (neural operators), GNN (Graph Neural Networks) 또는 트랜스포머 (transformers)의 사용을 탐색하고 있거나, 물리 정보 신경망 (Physics-Informed Neural Networks, PINNs) 또는 그 사이의 하이브리드 접근 방식에 관심이 있든 관계없이, PhysicsNeMo는 모델을 대규모로 훈련할 수 있도록 최적화된 스택을 제공합니다.
- PhysicsNeMo에 대하여 더 알아보기
- PhysicsNeMo를 사용하고 기여하는 사람들
- PhysicsNeMo를 사용하는 이유
- 시작하기
- 리소스 (Resources)
- 설치 (Installation)
- 기여하기 (Contributing)
- 커뮤니케이션 (Communication)
- 라이선스 (License)
세부적인 수준에서 PhysicsNeMo는 모듈형 기능으로 개발되었으므로, 몇 가지 핵심 구성 요소로 패키징된 내장된 조합 가능한 모듈을 제공합니다:
| 구성 요소 | 설명 |
|---|---|
| physicsnemo.models (상세 정보) | Neural Operators (뉴럴 오퍼레이터), Graph Neural Networks (그래프 신경망, GNN), Diffusion models (확산 모델), Transformer models (트랜스포머 모델) 등 최적화되고 사용자 정의가 가능하며 사용하기 쉬운 모델 아키텍처 제품군 모음 |
| physicsnemo.datapipes | 포인트 클라우드(point clouds), 메쉬(meshes) 등과 같은 공학 및 과학 데이터 구조를 처리하도록 미세 조정된, 최적화되고 확장 가능한 내장 데이터 파이프라인 (data pipelines) |
| physicsnemo.distributed | 단 몇 단계만으로 병렬 학습 (parallel training)을 가능하게 하기 위해 torch.distributed를 기반으로 구축된 분산 컴퓨팅 (distributed computing) 서브 모듈 |
| physicsnemo.curator | 공학 데이터셋을 위한 데이터 큐레이션 (data curation) 프로세스를 간소화하고 가속화하는 서브 모듈 |
| physicsnemo.sym | 기호 PDE 잔차 계산 (Symbolic PDE residual computation) — SymPy를 통해 방정식을 정의하고 자동 공간 미분 (automatic spatial derivatives)을 통해 물리 정보 기반 손실 (physics-informed losses)을 계산합니다 (pip install "nvidia-physicsnemo[sym]"로 설치) |
전체 목록은 PhysicsNeMo API 문서를 참조하십시오.
일반적으로 PhysicsNeMo는 다음 중 하나로 사용됩니다:
- SciML (과학 기계 학습) 및 AI4Science 애플리케이션을 위한 AI를 탐색할 때 PyTorch를 보완하는 도구.
- NVIDIA GPU에서 규모 확장성(scale)과 최적의 성능을 제공하는 딥러닝 연구 플랫폼.
다음은 특정 커뮤니티의 도메인 전문가들을 위해 그들의 고유한 탐색 요구 사항을 충족하도록 설계된 전용 패키지입니다:
- PhysicsNeMo CFD: CFD 도메인 전문가들이 CFD 사용 사례를 위해 사전 학습된 AI 모델을 사용하여 탐색, 실험 및 검증할 수 있도록 하는 PhysicsNeMo의 추론 (Inference) 서브 모듈.
- PhysicsNeMo Curator: 공학 데이터셋을 위한 데이터 큐레이션 프로세스를 간소화하고 가속화하는 PhysicsNeMo의 추론 서브 모듈.
- Earth-2 Studio: 기후 연구자와 과학자들이 날씨 및 기후를 위한 사전 학습된 AI 모델을 탐색하고 실험할 수 있도록 하는 PhysicsNeMo의 추론 서브 모듈.
PhysicsNeMo는 NVIDIA GPU의 성능을 극대화하기 위해 고도로 최적화되고 확장 가능한 학습 라이브러리(training library)를 제공합니다. 분산 컴퓨팅 유틸리티(Distributed computing utilities)를 통해 단 몇 줄의 코드만으로 단일 GPU에서 멀티 노드 GPU 클러스터까지 효율적으로 확장할 수 있어, 대규모 물리 정보 기반 머신러닝 (Physics-informed ML) 모델을 빠르고 효과적으로 학습할 수 있도록 보장합니다. 이 프레임워크는 엔드 투 엔드 (end-to-end) 학습 속도를 향상시키기 위해 고급 최적화 유틸리티, 맞춤형 데이터 파이프 (datapipes), 그리고 기호적 편미분 방정식 (symbolic PDE) 유틸리티에 대한 지원을 포함합니다.
PhysicsNeMo는 물리 머신러닝 (Physics-ML) 애플리케이션을 위해 특별히 설계된 최첨단 모델 라이브러리를 제공합니다. 사용자는 기반이 되는 PyTorch 레이어를 사용하고 이를 엄선된 PhysicsNeMo 레이어와 결합함으로써 어떠한 모델 아키텍처도 구축할 수 있습니다.
모델 주 (Model Zoo)에는 뉴럴 오퍼레이터 (Neural Operators)와 같은 모델 아키텍처 제품군에 대한 최적화된 구현이 포함되어 있습니다:
- 푸리에 뉴럴 오퍼레이터 (Fourier Neural Operators, FNOs)
- DeepONet
- DoMINO
- 그래프 뉴럴 네트워크 (Graph Neural Networks, GNNs)
- MeshGraphNet
- Lagrangian을 위한 MeshGraphNet
- XAeroNet
- 확산 모델 (Diffusion Models)
- 보정 확산 모델 (Correction Diffusion Model)
- DDPM
- PhysicsNeMo GraphCast
- Transsolver
- 순환 신경망 (RNNs)
- SwinVRNN
- 물리 정보 신경망 (Physics-Informed Neural Networks, PINNs)
그 외 다수.
이 모델들은 전산 유체 역학 (computational fluid dynamics), 구조 역학 (structural mechanics), 전자기학 (electromagnetics)과 같은 다양한 물리 도메인에 최적화되어 있습니다. 사용자는 자신의 특정 요구 사항에 맞춰 이 모델들을 다운로드, 커스터마이징 및 확장하여 활용할 수 있으며, 이를 통해 고충실도 (high-fidelity) 시뮬레이션을 개발하는 데 필요한 시간을 크게 단축할 수 있습니다.
PhysicsNeMo는 PyTorch를 기반으로 구축되어, 이미 PyTorch에 능숙한 사용자들에게 친숙하고 사용자 친화적인 경험을 제공합니다. 여기에는 단순한 Python 인터페이스와 모듈형 설계 (modular design)가 포함되어 있어, 기존의 PyTorch 워크플로우에서 PhysicsNeMo를 쉽게 사용할 수 있습니다. 사용자는 PhysicsNeMo의 물리-ML (physics-ML) 특화 기능을 활용하는 동시에, 다양한 라이브러리와 도구를 포함한 광범위한 PyTorch 생태계의 이점을 누릴 수 있습니다. 이러한 원활한 통합은 사용자가 가파른 학습 곡선 없이 PhysicsNeMo를 빠르게 도입할 수 있도록 보장합니다.
더 자세한 정보는 'PyTorch 모델을 PhysicsNeMo 모델로 변환하기 (Converting PyTorch Models to PhysicsNeMo Models)'를 참조하십시오.
PhysicsNeMo는 높은 확장성을 갖도록 설계되어, 사용자가 최소한의 노력으로 새로운 기능을 추가할 수 있습니다. 이 프레임워크는 새로운 물리 모델 (physics models), 기하학적 구조 (geometries), 그리고 제약 조건 (constraints)을 정의하기 위한 Pythonic API를 제공하여, 새로운 사용 사례로 기능을 확장하는 것을 용이하게 합니다. PhysicsNeMo의 적응성은 유연한 모델 배포를 위한 ONNX 지원, 간소화된 오류 처리를 위한 강력한 로깅 유틸리티 (logging utilities), 그리고 모델 로딩 및 저장을 단순화하는 효율적인 체크포인팅 (checkpointing)과 같은 주요 기능에 의해 더욱 강화됩니다.
이러한 확장성은 PhysicsNeMo가 연구자와 엔지니어의 진화하는 요구 사항에 적응할 수 있도록 보장하며, 물리-ML (physics-ML) 분야에서 혁신적인 솔루션 개발을 촉진합니다.
기능 및 역량에 대한 자세한 정보는 PhysicsNeMo 문서에서 확인할 수 있습니다.
참조 샘플은 과학 및 공학 분야의 다양한 사용 사례에 맞추어, 물리적 제약 조건이 있는 워크플로우 (physics-constrained workflows)와 데이터 기반 워크플로우 (data-driven workflows)의 폭넓은 스펙트럼을 다룹니다.
팁
PhysicsNeMo가 어떻게 도움을 줄 수 있는지 궁금하신가요? 답변을 얻으려면 우리의 [실험적] 챗봇인 PhysicsNeMo Guide를 이용해 보세요.
다음과 같이 간단하게 PyTorch 코드에서 PhysicsNeMo 사용을 시작할 수 있습니다:
>>> import torch
>>> from physicsnemo.models.mlp.fully_connected import FullyConnected
>>> model = FullyConnected(in_features=32, out_features=64)
...
분산 모듈 (distributed module)을 사용하려면 다음과 같이 할 수 있습니다 (분산 데이터 병렬 (Distributed Data Parallel) 학습 예시이며, 더 심도 있는 튜토리얼은 PhysicsNeMo Distributed를 참조하십시오):
import torch
from torch.nn.parallel import DistributedDataParallel
from physicsnemo.distributed import DistributedManager
...
PDE 모듈을 사용하려면 다음과 같이 할 수 있습니다:
>>> from physicsnemo.sym.eq.pdes.navier_stokes import NavierStokes
>>> ns = NavierStokes(nu=0.01, rho=1, dim=2)
>>> ns.pprint()
...
PhysicsNeMo는 오픈 소스 프로젝트이며 SciML 및 AI4Science 분야의 연구자들로부터 기여를 받고 있습니다. PhysicsNeMo 팀이 기반 소프트웨어 스택을 최적화하는 동안, 커뮤니티는 모델 아키텍처 (model architectures), 데이터셋 (datasets), 그리고 레퍼런스 애플리케이션 (reference applications)을 협력하여 기여함으로써 우리가 일반화 가능한 모델 아키텍처와 알고리즘 개발을 추구하며 혁신할 수 있도록 돕습니다.
최근 커뮤니티 기여자의 예로는 HP Labs 3D Printing 팀, Stanford Cardiovascular 연구 팀, UIUC 팀, CMU 팀 등이 있습니다.
PhysicsNeMo를 사용하는 최근 연구 팀의 예로는 ORNL 팀, TU Munich CFD 팀 등이 있습니다.
PhysicsNeMo를 활용한 전체 연구 목록을 확인하려면 이 페이지로 이동하십시오. PhysicsNeMo를 사용하는 기업 목록은 PhysicsNeMo 웹페이지를 참조하십시오.
PhysicsNeMo를 사용 중이며 NVIDIA 블로그에 귀하의 작업물을 소개하고 싶으신가요? 이 제안 양식을 작성해 주시면 저희가 연락드리겠습니다!
다음은 SciML 모델 개발을 위한 PhysicsNeMo의 주요 이점 중 일부입니다:
동료 SciML 연구자들이 PhysicsNeMo에 대해 어떻게 말하는지 확인해 보세요 (출시 예정).
다음 리소스들은 PhysicsNeMo 사용법을 익히는 데 도움이 될 것입니다. 가장 좋은 방법은 레퍼런스 샘플 (reference sample)로 시작하여 귀하의 사용 사례 (use case)에 맞게 업데이트하는 것입니다.
-
귀하의 PyTorch 모델과 함께 PhysicsNeMo 사용하기
-
PhysicsNeMo 내장 모델 사용하기
-
시작 가이드 (Getting Started Guide)
-
레퍼런스 샘플 (Reference Samples)
-
사용자 가이드 문서 (User Guide Documentation)
-
Hugging Face에서 Jupyter Notebook 탐색
-
AI4Science PhysicsNeMo 부트캠프 (Bootcamp)
-
자기 주도형 DLI 교육 (Self-Paced DLI Training)
-
과학 및 공학을 위한 딥러닝 (Deep Learning for Science and Engineering) 강의 시리즈
-
비디오 튜토리얼 (Video Tutorials)
-
시작하기 웨비나 (Getting Started Webinar)
-
PhysicsNeMo: 목적 및 사용법
-
AI4Science PhysicsNeMo 부트캠프 (Bootcamp)
-
PhysicsNeMo 사전 학습된 모델 (Pretrained Models)
-
PhysicsNeMo 데이터셋 및 보충 자료
PhysicsNeMo는 지원되는 두 가지 방식, 즉 pip를 통한 설치 (native pip 또는 uv) 또는 NVIDIA 컨테이너 이미지 (NVIDIA container image) 사용을 통해 설치할 수 있습니다. 귀하의 환경과 워크플로에 적합한 방법을 선택하십시오.
다음 지침은 기본 PhysicsNeMo 모듈을 다룹니다. 선택적 의존성 (Optional dependencies)은 pyproject.toml에 나열되어 있습니다. 학습 레시피 (Training recipes)는 pip 휠 (wheels)이나 컨테이너에 포함되어 있지 않습니다. 저장소 (repo)를 클론(clone)하여 예제를 시작점으로 사용하십시오. 많은 예제에는 추가 의존성을 위한 requirements.txt가 포함되어 있습니다.
중요: GPU 가속 RAPIDS 패키지 (cuML, pylibraft, cupy) 및 CUDA와 일치하는 PyTorch 빌드를 얻으려면, 설치 시 반드시 cu13 또는 cu12를 포함해야 합니다. nn-extras 및 utils-extras와 같은 기능 확장 (Feature extras)은 추가적인 비-CUDA 패키지 (scipy, natten, wandb 등)를 제공하지만, 그 자체로 RAPIDS 의존성을 포함하지는 않습니다.
PhysicsNeMo는 CUDA 12 및 CUDA 13 백엔드 (backends)를 모두 지원합니다. 백엔드는 기능 확장 (feature extras)과 직교하는 별도의 확장(extra)을 통해 선택됩니다. 이들을 자유롭게 조합하여 사용하십시오:
| 확장 (Extra) | 제공 내용 |
|---|---|
cu13 | PyTorch (CUDA 13.0), cuML-cu13, pylibraft-cu13, cupy-cuda13x |
cu12 | PyTorch (CUDA 12.8), cuML-cu12, pylibraft-cu12, cupy-cuda12x |
| (없음) | PyPI의 PyTorch (기본 빌드), RAPIDS 패키지 없음 |
PyPI에서 최신 버전을 설치하십시오:
pip install nvidia-physicsnemo
python -c "import physicsnemo; print('PhysicsNeMo version:', physicsnemo.__version__)"
특정 CUDA 백엔드 및 선택적 기능 확장을 사용하여 설치하려면:
# nn-extras를 포함한 CUDA 13 백엔드
pip install "nvidia-physicsnemo[cu13,nn-extras]"
# nn-extras를 포함한 CUDA 12 백엔드
...
다른 기능 추가 항목들 (utils-extras, mesh-extras, model-extras, datapipes-extras, gnns)도 동일한 방식으로 조합할 수 있습니다.
설치 후에는 Hello World 예제를 실행하여 설치가 제대로 되었는지 확인할 수 있습니다.
개발을 하거나 소스 코드로부터 예제를 실행하려면, uv를 사용하여 저장소(repository)를 클론(clone)하고 의존성(dependencies)을 동기화할 수 있습니다:
git clone https://github.com/NVIDIA/physicsnemo.git
cd physicsnemo
uv sync --extra cu13
...
선택적 기능 추가 항목(예: nn-extras)과 함께 설치하려면:
uv sync --extra cu13 --extra nn-extras
CUDA 12 환경의 경우, cu13을 cu12로 교체하십시오:
uv sync --extra cu12 --extra nn-extras
PhysicsNeMo Docker 이미지는 NVIDIA Container Registry에서 가져올 수 있습니다 (최신 태그는 NGC registry를 참조하십시오):
docker pull nvcr.io/nvidia/physicsnemo/physicsnemo:25.06
컨테이너 내부에서 PhysicsNeMo git 저장소들을 클론하고 예제를 시작할 수 있습니다. 아래 명령어는 PhysicsNeMo 컨테이너를 실행하고 이 저장소의 예제들을 실행하는 방법을 보여줍니다:
docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --runtime nvidia \
--rm -it nvcr.io/nvidia/physicsnemo/physicsnemo:25.06 bash
git clone https://github.com/NVIDIA/physicsnemo.git
...
소스로부터 PhysicsNeMo Python 패키지를 로컬에서 빌드하려면 다음을 사용하십시오:
git clone git@github.com:NVIDIA/physicsnemo.git && cd physicsnemo
pip install --upgrade pip
pip install .
...
수정 가능한 설치(editable installs), 로컬에서의 변경 사항 테스트, 그리고 기여(contribution) 워크플로우에 대해서는 문서의 PhysicsNeMo 커스터마이징(Customizing PhysicsNeMo) 가이드를 참조하십시오. 풀 리퀘스트(pull requests), 코딩 스타일(coding style), CI에 대해서는 기여 가이드라인(contributing guidelines)을, 커뮤니티 및 기여 개요에 대해서는 개발자 위키(developer wiki)를 참조하십시오.
PhysicsNeMo Docker 이미지를 빌드하려면:
docker build -t physicsnemo:deploy \
--build-arg TARGETPLATFORM=linux/amd64 --target deploy -f Dockerfile .
또는 make container-deploy를 실행할 수도 있습니다.
CI 이미지를 빌드하려면:
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Research의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기