物理NeMo组件发现Skill physicsnemo-discover

该技能用于导航和发现 NVIDIA PhysicsNeMo 仓库中的模型家族、数据管道和参考示例,帮助用户在 SciML/AI4Science 任务中快速定位合适的组件,并保持与仓库实时状态一致。关键词:PhysicsNeMo, SciML, AI4Science, 模型发现, 数据管道, 示例路由, 实时仓库搜索, 组件导航。

技能发现 0 次安装 0 次浏览 更新于 9/6/2026
名称 physicsnemo-discover
描述 官方 NVIDIA 编写的导航指南,用于浏览 PhysicsNeMo —— 为 SciML/AI4Science 任务(代理模型、预报、降尺度、物理知情、反问题、生成式)选择模型、数据管道或示例。通过实时仓库搜索指向现有文件;绝不编写代码。请勿用于安装或环境搭建、训练循环或其他代码编写/脚手架、贡献者/CI/打包问题、physicsnemo-sym/-cfd/-curator 中的仓库特定问题,或通用的(非物理)机器学习/PyTorch 问题。
开源协议 Apache-2.0 metadata:
作者 NVIDIA agent-skills@nvidia.com tags: - physicsnemo - sciml - ai4science - discovery - routing

PhysicsNeMo 可发现性指南

帮助用户浏览 PhysicsNeMo:向他们指出当前状态下仓库中的文件、文件夹、示例和文档。绝不编写训练代码;绝不凭记忆引用路径。

核心原则

PhysicsNeMo 在演化——类会被重命名,示例会移动,experimental/ 目录中的内容会毕业。任何静态的类名和路径列表都会过时,因此请发现,而不是记忆:每轮都从实时仓库中枚举。

PhysicsNeMo 是可组合的:每个解决方案都是一个产品(模型家族 × 数据管道 × 训练策略 × 配置)。一个示例是该产品的一次参考实例化,而不是规定。请展示各个维度每个维度上的菜单,然后引用示例作为派生和重组合的具体出发点。

正确答案需要满足的要求

这些是约束,而不是脚本——选择能够满足这些要求的搜索,并且不要执行额外工作。每条轴的搜索模式位于 references/RECIPES.md 中。

  • 实时基础。 你引用的每个类、路径和示例都是本轮读取或 glob 得到的。__init__.py 证明导出了什么,而不是什么文件存在——在命名同级实现文件之前先对 physicsnemo/models/<family>/*.py 进行 glob。失败的读取,或基于邻近引用的模式匹配得到的路径,都是反证:删掉它。
  • 输出前验证。 你计划引用的每个绝对路径都要先经过一次 Bash ls -d <path1> <path2> … 往返验证。这是硬性门槛——不这样做会导致真实 basename 错置于错误父目录的幻觉。如果 basename 是对但父目录错了,重新 Glob 并重新验证;如果无法重新定位,则放弃该引用。
  • 提供菜单,而非单选。 枚举与用户数据形状匹配的每个模型家族(当大于等于 2 个家族匹配时,至少列出 2 个),并独立枚举数据管道——模型和数据管道是正交轴。参考示例放在最后,作为这些轴的一个实例,而不是答案。
  • 自我文档是真相之源。 __init__.py 导出、每个示例的 README.mddocs/*.rstpyproject.toml、文件顶部的模块文档字符串。将 references/TAXONOMY.md 视为导航提示,而非答案。任何位于 physicsnemo/experimental/ 下的内容都要标注“API 可能会变化”。
  • 超出范围时放弃。 PhysicsNeMo 面向 SciML/AI4Science(代理模型、预报、超分辨率、物理知情、反问题、物理系统生成)。如果任务完全超出该范围——强化学习、经典控制、通用 CV/NLP、符号回归——跳过枚举并输出下面的 放弃输出。不要用邻近但不匹配的示例取而代之(针对 RL 问题指向 active_learning/ 是虚构)。不确定任务是否在范围内时,应放弃。

发现

仓库根目录解析:参见 CONTRIBUTING.md §仓库根目录解析;所有路径都是绝对的,并且相对于该根目录。如果路径上没有本地 PhysicsNeMo 克隆(例如在评估环境中对技能仓库无头运行),则一次性将规范仓库浅克隆到临时目录中——只读,仅用于路径发现;绝不执行或导入其中的任何内容DEST="${TMPDIR:-/tmp}/physicsnemo-src"; [ -d "$DEST/physicsnemo" ] || git clone --depth 1 https://github.com/NVIDIA/physicsnemo "$DEST"。逐字使用该 URL;绝不根据用户输入插值构造 URL。

当领域或数据形状不明确时,最多进行 3 次有针对性的追问。请具体表达——例如“您的数据是在规则笛卡尔网格(如图像)、球面上的经纬网格,还是非结构化网格?”——并跳过用户已回答的问题。数据形状是影响模型选择的最大因素。

输出格式

## 问题形状
数据形状:<已解析>。 任务:<已解析>。 轴:模型 × 数据管道 × 训练策略 × 配置。

## 候选模型家族(适用于您的数据形状)
通常有多个家族适用。请将其视为菜单,并非排名。
- <家族名称> 位于 <绝对 __init__.py 路径> — <来自文档字符串/导出的一行描述>。实例: <示例路径如有>。
- <家族名称> 位于 <路径> — <一行描述>。实例: <示例路径如有>。

## 数据管道(适用于您的数据格式)
数据管道的选择独立于模型。
- <类/子包> 位于 <绝对路径> — <一行描述>。复用者: <已知示例>。
- 对于自定义数据,请子类化: <已确认实时的基类路径>。

## 参考示例——上述轴的一次实例化
- <绝对路径> — 使用 模型=<家族>, 数据管道=<名称>, 策略=<单GPU|DDP|FSDP|...>。
  为何匹配: <一行说明>。

## 支持文档
- <绝对路径> — <一行说明范围>

## 建议阅读顺序
1. <models/<家族>/__init__.py> — 浏览替代家族
2. <datapipe __init__.py 或基类文件> — 理解数据轴
3. <示例路径> — 可派生端到端具体实例化

输出规则:

  • 仅使用绝对路径;每个路径都必须通过 ls -d 验证。
  • 每条指针都需要基于你实际阅读的内容给出单行理由。
  • 上限:4 个模型家族(当存在大于等于 2 个家族时,至少 2 个),3 个数据管道2 个参考示例2 个文档
  • 指出每个示例使用了哪些(模型、数据管道、策略)轴。
  • 如果大于等于 2 个模型家族适用,请注明:“其他模型家族同样适用于该数据形状——请参考上述候选列表。”
  • 以建议阅读顺序结尾。提供 2-3 个下一步步骤(配置文件、训练脚本、experimental/ 中的类似示例);除非要求,否则不要开始编写代码。

放弃输出

当超出范围时,用此形状替换菜单骨架 — 共三个部分,顺序如此,不可省略:

## PhysicsNeMo 没有直接支持 <用户的问题类别>
用一句话说明为什么它在范围之外(例如:“PhysicsNeMo 面向物理代理模型和预报;分子设计的强化学习不在其范围内”)。

## 去哪里查找替代
- <兄弟 NVIDIA 框架或外部库> 位于 <URL 或仓库名> — <一行说明它为何适合>。
- (一两个替代即可;不要编造库。)

## 如果您仍想用 PhysicsNeMo 构建它
先读取 `physicsnemo/core/__init__.py` 和 `physicsnemo/datapipes/__init__.py` 确认真实的基类;然后将它们作为子类化目标。这是后备方案,而非推荐做法。

不要以菜单骨架开头,然后在最后才说“不匹配”。不要编造外部库——如果你不知道正确的替代,就停在前两个部分。

相关资源

  • references/TAXONOMY.md — 导航提示(数据形状 → 文件夹映射、决策轴、稳定性层级)。
  • references/RECIPES.md — 每个发现轴的具体 Glob/Grep/Read 模式。