NVIDIA Modulus 是一个用于构建、训练和微调物理系统深度学习模型的框架,也称为物理信息机器学习 (physical-ML) 模型。 Modulus 可作为 OSS(Apache 2.0 许可证)提供,以支持不断发展的物理 ML 社区。
最新的 Modulus 软件更新版本 23.05 汇集了新功能,使研究社区和行业能够通过开源协作将研究开发为企业级解决方案。
此更新的两个主要组成部分是 1) 支持新的网络架构,包括图神经网络 (GNN) 和循环神经网络 (RNN),2) 提高人工智能从业者的易用性。
图神经网络支持
GNN 正在改变研究人员应对涉及复杂图结构的挑战的方式,例如在物理、生物学和社交网络中遇到的挑战。通过利用图的结构,GNN 能够根据图中节点之间的关系进行学习和预测。
通过应用 GNN,研究人员可以对系统进行建模以表示为图形或网格。此功能在计算流体动力学、分子动力学模拟和材料科学等应用中非常有用。
使用 GNN,研究人员可以更好地理解具有复杂几何形状的复杂系统的行为,并根据学习到的模式和数据中的交互生成更准确的预测。
最新版本的 NVIDIA Modulus 包含对 GNN 的支持。这使您能够针对特定用例开发自己的基于 GNN 的模型。 Modulus 包括使用 MeshGraphNet 架构的配方,该架构基于使用图网络学习基于网格的模拟中介绍的工作。现在可以在 Modulus 中训练此类架构,其中包括在参数化涡旋脱落数据集上预训练的 MeshGraphNet 模型。此预训练模型可通过 NVIDIA NGC 获得。
Modulus 还包括 GraphCast: Learning Skillful Medium-Range Global Weather Forecasting 中提出的 GraphCast 架构。 GraphCast 是一种新颖的基于 GNN 的全球天气预报架构。它通过有效捕获天气数据中的时空关系,显着改进了一些现有模型。天气数据被建模为图表,其中节点代表地球网格单元。这种基于图形的表示使模型能够捕获数据中的本地和非本地依赖性。
GraphCast 的架构由四个主要组件组成:嵌入器、编码器、处理器和解码器。嵌入器组件将输入特征嵌入到潜在表示中。编码器将网格潜在特征的局部区域映射到多网格图表示的节点中。处理器使用学习的消息传递来更新每个多网格节点。
最后,解码器将处理后的多网格特征映射回网格表示。多重网格是一组分辨率不断增加的二十面体网格,可在全球范围内提供统一的分辨率。 Modulus-Launch 中提供了在 ERA-5 数据集上训练 GraphCast 并支持数据并行性的方法。图 1 显示了使用在 ERA-5 数据集的 34 变量子集上以 Modulus 进行训练的 GraphCast 模型对 2 米温度的样本外预测。
GraphCast 实现支持梯度检查点以减少内存开销。它还提供了多种优化,包括 CuGraphOps 支持、融合层规范和使用 Apex 的 Adam 优化器、高效的边缘特征更新等等。
循环神经网络支持
时间序列预测是许多领域的一项关键任务。深度学习架构(尤其是 RNN、长短期记忆网络 (LSTM) 和类似网络)的应用显着增强了预测能力。
这些模型的独特之处在于它们能够捕获时间依赖性并随着时间的推移学习复杂的模式,这使得它们非常适合预测随时间变化的关系。在物理机器学习中,这些模型对于预测动态物理系统的演化、实现更好的模拟、理解复杂的自然现象以及帮助发现至关重要。
最新版本的 Modulus 添加了对 RNN 类型层和模型的支持。这使您能够在模型预测工作流程中将 RNN 用于 2D 空间域和 3D 空间域。图 2 显示了 Modulus 中 RNN 模型的预测与 Gray-Scott 系统的基本事实之间的比较。
易于使用的模块
Modulus 代码库已重新构建为模块,以方便使用。这与 PyTorch 是一致的,由于其易用性,PyTorch 在过去几年中已成为研究人员最流行的深度学习框架之一。
核心 Modulus 模块由物理 ML 模型的核心框架和算法组成。 Modulus-Launch 模块包含优化的训练配方,用于加速训练模型的类似 PyTorch 的工作流程。该模块使人工智能研究人员能够获得类似 PyTorch 的体验。 NVIDIA Modulus Sym 是一个基于符号偏微分方程 (PDE) 的模块,领域专家可以使用该模块来训练基于 PDE 的物理 ML 模型。
现代深度学习框架的一个关键特征是它们的互操作性。此 Modulus 版本使 AI 开发人员可以更轻松地将 PyTorch 模型引入 Modulus,反之亦然。这有助于确保模型可以在不同平台和环境之间共享和重用。
有关 Modulus 23.05 中所有新功能的更多详细信息,请参阅 Modulus 发行说明。
立即开始使用 GNN 进行物理机器学习
要了解更多信息并开始使用 NVIDIA Modulus,请参阅 NVIDIA 深度学习学院课程《基于物理的 Modulus 机器学习简介》。通过 LaunchPad for Modulus 免费动手实验室开始您的 Modulus 体验。通过提供短期访问,无需设置您自己的计算环境。
要在您自己的环境中尝试 Modulus,请下载最新的 Modulus 容器或安装 Modulus pip 轮。要自定义 Modulus 开源框架并为其做出贡献,请访问 GitHub 上的 NVIDIA/modulus 存储库。