Agent Skills
返回列表
💻

Earth2Studio 创建预报模型

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/earth2studio-create-prognostic。

技能介绍

要解决什么问题

Earth2Studio 需要把第三方 ML 天气预报模型接进统一运行时:模型做的是时间积分前向推进——给定初始场,按固定步长(例如 6 小时)逐步推到未来状态。若缺少规范的 PrognosticMixin 封装,坐标、批维、迭代器与 HuggingFace 权重加载很容易和框架约定不一致,测试与文档也会脱节。

技能如何工作

本技能按固定清单驱动实现,核心是让新模型同时继承 torch.nn.Module、AutoModelMixin、PrognosticMixin,并在 earth2studio/models/px/ 下落地完整类。

  • 依赖与可选 extra:分析包、I/O 形状、时间步与检查点,在 pyproject.toml 中为每个模型增加可选依赖组(可为空,但需存在)。
  • 坐标:input_coords / output_coords 遵循 Earth2Studio 公开约定(如纬度 90→-90、经度 0→360);变量映射到 E2STUDIO_VOCAB;用 handshake_dim / handshake_coords 做输入校验。
  • 前向与迭代:__call__ 使用 @batch_func,形状为 (batch, time, lead_time, var, lat, lon);create_iterator 在 step 0 重置边界条件,并通过 front_hook / rear_hook 注入扰动。
  • 加载:load_default_package 锁定 hf://org/repo@commit;load_model 经 package.resolve()、map_location="cpu"、eval(),并用 @check_optional_dependencies() 装饰。
  • 测试与注册:在 test/models/px/ 编写 test__call、test__iter、坐标异常与 @pytest.mark.package 等用例;按需更新 __init__.py、RST API 页、安装说明与 CHANGELOG.md。

执行 Python 相关命令时优先 uv run(如 uv run pytest),避免裸 pytest 缺依赖;格式化与 lint 走 make format && make lint。

适用边界与注意点

  • 不要为复用而抽通用基类;每个 .py 文件需 SPDX 头;日志用 loguru.logger,避免 print()。
  • 纬度若与检查点内部顺序相反,应在模型核心前后内部翻转张量,不要在 input_coords / output_coords 里写反转后的纬度。
  • 验证/PR 阶段遵循 references/validation-guide.md:勿提交 API 密钥、对比脚本产物或从 evals/targets/ 读取尺寸;卡住时不要重复同一无效修复,应先按技能内的自我改进流程排错。

使用场景

  • 第三方 ML 天气模型已有检查点,需在 `earth2studio/models/px/` 实现三重继承封装并通过 `uv run pytest` 验收
  • 新模型接入后 `handshake_coords` 报错,需按规范重写 `input_coords`/`output_coords` 与 E2STUDIO_VOCAB 变量映射
  • 团队自研全球或区域预报模型,要按 SKILL 清单补齐可选 extra、HF 锁定 URL 与 `load_model` 加载逻辑
  • 准备向上游 Earth2Studio 提 PR,需同步 `docs/modules/models_px.rst`、安装说明与 CHANGELOG,并按 validation-guide 做对比验证

适合人员

  • 维护 Earth2Studio 模型包、需把 HuggingFace 气象权重接进统一前向积分接口的 Python 工程师
  • 发表或部署自研 NWP/ML 混合模型、希望产出符合 PrognosticMixin 契约的上游贡献者
  • 负责 `test/models/px/` 中 package 级真实权重测试与迭代器多步推理回归的气象 ML 工程师
  • 在 monorepo 内管理 `pyproject.toml` 可选依赖组与 SPDX 头、并跑 `make format && make lint` 的仓库维护者