NVIDIA/physicsnemo
GitHub: NVIDIA/physicsnemo
NVIDIA 推出的开源物理机器学习框架,提供从模型训练到推理部署的全流程优化能力,助力科学计算与工程仿真领域实现实时 AI 预测。
Stars: 2965 | Forks: 709
# NVIDIA PhysicsNeMo
📝 NVIDIA PhysicsNeMo 正在更新至 v2.0 —— 包含所有功能,且更易于安装并与外部包集成。详情请参阅[迁移指南](https://github.com/NVIDIA/physicsnemo/blob/main/v2.0-MIGRATION-GUIDE.md)!
[](https://www.repostatus.org/#active)
[](https://github.com/NVIDIA/physicsnemo/blob/master/LICENSE.txt)
[](https://github.com/psf/black)
[](https://github.com/NVIDIA/physicsnemo/actions/workflows/install-ci.yml)
[**NVIDIA PhysicsNeMo**](#what-is-physicsnemo)
| [**文档**](https://docs.nvidia.com/deeplearning/physicsnemo/physicsnemo-core/index.html)
| [**安装指南**](#installation)
| [**入门指南**](#getting-started-with-physicsnemo)
| [**贡献指南**](#contributing-to-physicsnemo)
| [**开发博客**](https://nvidia.github.io/physicsnemo/blog/)
## 什么是 PhysicsNeMo?
NVIDIA PhysicsNeMo 是一个开源深度学习框架,用于使用最先进的 SciML 方法为 AI4Science 和工程领域构建、训练、微调和推理 Physics AI 模型。
PhysicsNeMo 提供了 Python 模块,用于组合可扩展且优化的训练和推理 pipeline,以探索、开发、验证和部署结合了物理知识与数据的 AI 模型,从而实现实时预测。
无论您是在探索神经算子、GNNs 还是 transformers 的使用,或者对物理信息神经网络或介于两者之间的混合方法感兴趣,PhysicsNeMo 都提供了一个优化的技术栈,使您能够大规模地训练模型。
|
|
---|---|---|
|SciML 基准测试与验证|通过异构数据集使用通用 SciML 配方的便捷性 |开箱即用的性能与可扩展性
|PhysicsNeMo 使研究人员能够针对标准基准问题,根据详细的特定领域验证标准,将他们的 AI 模型与经过验证的架构进行基准比较。|PhysicsNeMo 使研究人员能够从最先进的 SciML 架构中进行选择,并为其用例使用内置的数据 pipeline。| PhysicsNeMo 提供了开箱即用的高性能训练 pipeline,包括针对异构工程和科学数据集优化的 ETL pipeline,以及跨多 GPU 和多节点 GPU 的开箱即用的扩展能力。
看看您的 SciML 研究员同行们对 PhysicsNeMo 有何评价(即将推出)。
## PhysicsNeMo 入门
以下资源将帮助您学习如何使用 PhysicsNeMo。最好的方法是从参考示例开始,然后针对您自己的用例进行更新。
- [在您的 PyTorch 模型中使用 PhysicsNeMo](https://docs.nvidia.com/deeplearning/physicsnemo/physicsnemo-core/tutorials/simple_training_example.html#using-custom-models-in-physicsnemo)
- [使用 PhysicsNeMo 内置模型](https://docs.nvidia.com/deeplearning/physicsnemo/physicsnemo-core/tutorials/simple_training_example.html#using-built-in-models)
- [入门指南](https://docs.nvidia.com/deeplearning/physicsnemo/getting-started/index.html)
- [参考示例](https://github.com/NVIDIA/physicsnemo/blob/main/examples/README.md)
- [用户指南文档](https://docs.nvidia.com/deeplearning/physicsnemo/physicsnemo-core/index.html)
## 学习 AI 物理
- [探索 Hugging Face 上的 Jupyter Notebooks](https://huggingface.co/collections/nvidia/physicsnemo)
- [AI4Science PhysicsNeMo 训练营](https://github.com/openhackathons-org/End-to-End-AI-for-Science)
- [自定进度的 DLI 培训](https://learn.nvidia.com/courses/course-detail?course_id=course-v1:DLI+S-OV-04+V1)
- [科学与工程深度学习系列讲座](https://www.nvidia.com/en-us/on-demand/deep-learning-for-science-and-engineering/)
- [视频教程](https://www.nvidia.com/en-us/on-demand/search/?facet.mimetype[]=event%20session&layout=list&page=1&q=physicsnemo&sort=relevance&sortDir=desc)
## 资源
- [入门网络研讨会](https://www.nvidia.com/en-us/on-demand/session/gtc24-dlit61460/?playlistId=playList-bd07f4dc-1397-4783-a959-65cec79aa985)
- [PhysicsNeMo:目的与用途](https://www.nvidia.com/en-us/on-demand/session/dliteachingkit-setk5002/)
- [AI4Science PhysicsNeMo 训练营](https://github.com/openhackathons-org/End-to-End-AI-for-Science)
- [PhysicsNeMo 预训练模型](https://catalog.ngc.nvidia.com/models?filters=&orderBy=scoreDESC&query=PhysicsNeMo&page=&pageSize=)
- [PhysicsNeMo 数据集和补充材料](https://catalog.ngc.nvidia.com/resources?filters=&orderBy=scoreDESC&query=PhysicsNeMo&page=&pageSize=)
## 安装
您可以通过两种受支持的方式安装 PhysicsNeMo:**通过 pip**(原生 pip 或 **uv**)或使用 **NVIDIA 容器镜像**。请选择适合您环境和工作流的方法。
以下说明涵盖了基础的 PhysicsNeMo 模块。可选依赖项列于
[`pyproject.toml`](./pyproject.toml) 中。[训练配方](./examples)
未捆绑在 pip wheels 或容器中;请克隆代码仓库并使用示例作为起点。许多示例包含一个 `requirements.txt`,用于说明额外的依赖项。
### CUDA 后端选择
PhysicsNeMo 支持 CUDA 12 和 CUDA 13 两种后端。后端是通过与功能附加组件正交的附加选项来选择的——您可以自由组合它们:
| 附加选项 | 提供的内容 |
| --- | --- |
| `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
从 PyPI 安装最新版本:
```
pip install nvidia-physicsnemo
python -c "import physicsnemo; print('PhysicsNeMo version:', physicsnemo.__version__)"
```
要安装特定的 CUDA 后端和可选的功能附加组件:
```
# 带 nn-extras 的 CUDA 13 backend
pip install "nvidia-physicsnemo[cu13,nn-extras]"
# 带 nn-extras 的 CUDA 12 backend
pip install "nvidia-physicsnemo[cu12,nn-extras]"
```
其他附加组件(`utils-extras`、`mesh-extras`、`model-extras`、
`datapipes-extras`、`gnns`)可以以相同的方式组合使用。
也可以通过运行 [Hello World](#hello-world) 示例来验证安装。
### uv
对于开发或从源码运行示例,您可以使用 [uv](https://docs.astral.sh/uv/)
来克隆代码仓库并同步依赖项:
```
git clone https://github.com/NVIDIA/physicsnemo.git
cd physicsnemo
uv sync --extra cu13
uv run python -c "import physicsnemo; print('PhysicsNeMo version:', physicsnemo.__version__)"
```
要安装可选的功能附加组件(例如 `nn-extras`):
```
uv sync --extra cu13 --extra nn-extras
```
对于 CUDA 12 环境,请将 `cu13` 替换为 `cu12`:
```
uv sync --extra cu12 --extra nn-extras
```
### NVCR 容器
可以从
[NVIDIA 容器注册表](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/physicsnemo/containers/physicsnemo)
拉取 PhysicsNeMo Docker 镜像(请参阅 NGC 注册表以获取最新标签):
```
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
cd physicsnemo/examples/cfd/darcy_fno/
pip install warp-lang # install NVIDIA Warp to run the Darcy example
python train_fno_darcy.py
```
### 从源码构建
要从源码本地构建 PhysicsNeMo Python 包,请使用:
```
git clone git@github.com:NVIDIA/physicsnemo.git && cd physicsnemo
pip install --upgrade pip
pip install .
python -c "import physicsnemo; print('PhysicsNeMo version:', physicsnemo.__version__)"
```
有关可编辑安装、在本地测试您的更改以及贡献工作流,请参阅文档中的
[自定义 PhysicsNeMo](https://docs.nvidia.com/physicsnemo/latest/resources/customization_guide.html)
指南。有关拉取请求、代码风格和 CI,另请参阅[贡献指南](CONTRIBUTING.md),
有关社区和贡献概述,请参阅[开发者 wiki](https://github.com/NVIDIA/physicsnemo/wiki)。
### 从源码构建 Docker
要构建 PhysicsNeMo Docker 镜像:
```
docker build -t physicsnemo:deploy \
--build-arg TARGETPLATFORM=linux/amd64 --target deploy -f Dockerfile .
```
或者,您可以运行 `make container-deploy`。
要构建 CI 镜像:
```
docker build -t physicsnemo:ci \
--build-arg TARGETPLATFORM=linux/amd64 --target ci -f Dockerfile .
```
或者,您可以运行 `make container-ci`。
### 平台支持
对于 pip 或 uv 安装,支持 Linux、macOS (ARM) 和 Windows 平台。
Docker 容器仅适用于 `linux/amd64` 和 `linux/arm64` 平台。
如果使用 `linux/arm64`,某些依赖项(如 `warp-lang`)可能无法正确安装。
## PhysicsNeMo 迁移指南
NVIDIA Modulus 已更名为 NVIDIA PhysicsNeMo。要进行迁移:
- 对于 PyPI wheels,请使用 `pip install nvidia-physicsnemo` 而不是 `pip install nvidia-modulus`。
- 对于 Docker 容器,请使用 `nvcr.io/nvidia/physicsnemo/physicsnemo:` 而不是 `nvcr.io/nvidia/modulus/modulus:`。
- 在您的 pip 需求文件(`requirements.txt`、`setup.py`、`setup.cfg`、`pyproject.toml` 等)中,将 `nvidia-modulus` 替换为 `nvidia-physicsnemo`。
- 在您的代码中,将导入语句从 `import modulus` 更改为 `import physicsnemo`。
旧的 PyPI 注册表和 NGC 容器注册表将很快被弃用,并且不会收到任何错误修复/更新。旧的 checkpoints 将保持与此更新兼容。
更多详情将很快公布。
## DGL 到 PyTorch Geometric 迁移指南
PhysicsNeMo 支持广泛的图神经网络,
包括 MeshGraphNet 等。
目前,PhysicsNeMo 使用 DGL 库作为其 GNN 后端,
并计划在未来的版本中完全过渡到 PyTorch Geometric (PyG)。
有关更多详细信息,请参阅 [DGL 到 PyG 迁移指南](https://github.com/NVIDIA/physicsnemo/blob/main/examples/dgl_to_pyg_migration.md)。
## 为 PhysicsNeMo 做贡献
PhysicsNeMo 是一项开源协作,其成功植根于社区的贡献,以推动 Physics-ML 领域的发展。感谢您对该项目的贡献,以便其他人能够在您的贡献之上进行构建。
有关为 PhysicsNeMo 贡献的指南,请参阅[贡献指南](CONTRIBUTING.md)
(拉取请求、代码风格、CI)。
有关从源码安装的步骤、可编辑安装以及测试您的更改,请参阅文档中的
[自定义 PhysicsNeMo](https://docs.nvidia.com/physicsnemo/latest/resources/customization_guide.html)
指南。有关社区和贡献概述,请参阅[开发者 wiki](https://github.com/NVIDIA/physicsnemo/wiki)。
## 引用 PhysicsNeMo
如果 PhysicsNeMo 对您的研究有所帮助,并且您想引用它,请参阅[指南](https://github.com/NVIDIA/physicsnemo/blob/main/CITATION.cff)。
如果您的工作使用了 PhysicsNeMo 中的领域并行组件(例如 `ShardTensor`),
请考虑引用:
```
@misc{pnm2026shardtensor,
title={ShardTensor: Domain Parallelism for Scientific Machine Learning},
author={Corey Adams
and Peter Harrington
and Akshay Subramaniam
and Mohammad Shoaib Abbas
and Jaideep Pathak
and Mike Pritchard
and Sanjay Choudhry},
year={2026},
eprint={2605.11111},
archivePrefix={arXiv},
primaryClass={cs.DC},
url={https://arxiv.org/abs/2605.11111},
}
```
## 交流
- GitHub Discussions:讨论新架构、实现、Physics-ML 研究等。
- GitHub Issues:错误报告、功能请求、安装问题等。
- PhysicsNeMo 论坛:[PhysicsNeMo 论坛](https://forums.developer.nvidia.com/t/welcome-to-the-physicsnemo-ml-model-framework-forum/178556)
面向初中级用户和开发者,用于进行常规聊天、在线讨论、协作等。
## 反馈
想要对 PhysicsNeMo 提出一些改进建议吗?请使用我们的[反馈表单](https://docs.google.com/forms/d/e/1FAIpQLSfX4zZ0Lp7MMxzi3xqvzX4IQDdWbkNh5H_a_clzIhclE2oSBQ/viewform?usp=sf_link)。
## License
PhysicsNeMo 是在 Apache License 2.0 下提供的。有关完整的许可文本,请参阅 [LICENSE.txt](./LICENSE.txt)
。企业级 SLA、支持和预览访问权限可通过 NVAIE 获得。
标签:AI4Science, CNCF毕业项目, Vectored Exception Handling, 凭据扫描, 模型训练, 深度学习, 物理信息神经网络, 科学计算, 逆向工具