Earth2Studio 中文学习手册0.19.0交互实验 ↗
CHAPTER 06 / LEARN BY UNDERSTANDING

从试验走向生产

推荐运行方式

对固定周期发布的天气产品,先用独立 GPU 批处理任务运行 Earth2Studio。调度器检查输入到齐,启动一次预测,校验输出并发布;网站只读取成功发布的结果。规模较小时,systemd timer 或已有作业调度器加一个受控 worker 足够,不必先引入 Kubernetes。

如果需要多人按需提交不同模型、区域或集合请求,可参考仓库 serve:它提供基于 FastAPI、Redis/RQ 和 worker 的异步服务结构。它是推理作业基础,不等于已经具备你的产品权限、数据发布事务与用户体系。服务说明

生产链路

观察初始资料
    ↓ 到齐且稳定
创建唯一任务 → 等待 GPU → 预测 → 科学校验
                                   ↓
                              编码和打包
                                   ↓
                         上传临时区 → 服务端校验
                                         ↓
                                  完整发布 → 网站读取

每个阶段都有明确状态、截止时间与失败原因。输入没到齐属于等待,网络失败可以重试,单位或坐标不明应停止发布。失败不能清空上次成功结果。

作业身份与幂等

一个任务的逻辑身份至少包含模型/权重版本、起报时间、初始资料身份、预报配置和随机种子。网络重试不应重复创建不同的业务起报;但权重、输入或处理规则改变,应当被识别为不同内容。

调度器要防止同一 GPU 上无上限地同时运行模型。并发成员数由实测峰值显存决定;顺序运行成员、并发保存少量结果,比一次把所有成员塞进显存更容易稳定。大输出分步落盘,不在内存堆积整个运行结果。

运行环境和目录

推荐将程序镜像、模型缓存、初始场缓存、任务工作目录与待上传目录分别管理。镜像内保存程序和依赖,不塞入原始资料、巨大权重或每天变化的预报文件。

失败怎样处理

失败点 建议行为
初始资料缺变量/缺历史帧 等待并告警,不以其他日期冒充
模型下载失败 在发布前处理缓存;不启动不完整权重
GPU OOM 降低成员批量或更换环境,经验证后重跑
任务中断 从经过验证的 checkpoint 恢复,或整次重跑
输出含异常非有限值 记录位置、变量和阶段,阻止发布
上传中断 保留本地完整产物、分片续传,避免重新预测
新结果延迟 网站继续提供上次成功起报,并显示真实起报时间
模型版本升级 历史回报对照、影子运行、通过后再切换

Checkpoint 不是自动获得的可靠性:需要确认模型隐藏状态、随机数状态、输出游标及 IO 写入均可恢复。尤其是概率模型,不能只保存当前物理场就假定可重现原来的后续轨迹。工作流与 checkpoint

监控哪些指标

除了 CPU、GPU、显存和磁盘,还应记录输入资料迟到时长、预报产生时长、最新成功起报、各变量缺测率、上传积压、发布失败率以及不同阶段重试次数。日志关联 job ID 与 run ID,但不记录凭据、访问令牌或带签名的 URL。

为 meteo 业务制定的 SLA 应以“完整结果什么时候可被读取”为终点,而不是以最后一次 GPU 调用结束为终点。数据服务、身份服务和存储需要备份恢复演练;单台服务器上的多个容器不是多机容灾。

不建议第一次就做的事

同时部署所有模型;从零训练全球模型;把全球高分辨率多成员数据全部送到浏览器;让网站请求触发推理;用临近预报的区域模型替代全球中期模型;在没有验证初始场和统计定义时直接发布异常或事件概率。