CHAPTER 07 / LEARN BY UNDERSTANDING
检验预报与学习路线
工程正确和预报准确是两件事
工程正确包括数据未损坏、维序正确、坐标对应、单位一致和时间轴正确。预报准确则要用独立验证资料,按变量、区域、季节和时效评价误差。漂亮的动画只能证明某些像素被画出来。
确定性模型可以比较 RMSE、MAE、偏差和异常相关等;集合预报还需要 CRPS、可靠性、离散度与误差关系,以及具体事件的概率评分。不同指标回答不同问题:平均误差较小,不保证极端温度、强风或台风识别更好。
公平比较的条件
使用一致的起报日期集合、可比的初始资料、明确的验证资料、统一的重网格化和时间统计。数据归一化、气候基准、网格面积权重必须记录。对规则经纬网,简单逐格平均会过度强调高纬区域;全球统计常用纬度相关的面积权重。
官方 Scorecards 能帮助认识评估结构。FCN3 页面目前展示 16 成员、48 个初始条件、14 天时效的评估,并说明验证资料和加权方法;它不能直接替代你对目标区域和产品的独立验收。FCN3 Scorecard
一个可执行的评估计划
- 选多个季节的历史起报,并覆盖代表性的正常天气与极端事件。
- 固定模型、权重、初始资料及预测长度,建立可重复的任务清单。
- 先完成单位、时间、坐标与缺测检查,避免把软件错误当作模型偏差。
- 对温度、风、气压等分别评价;保存每个起报和时效的原始评分。
- 与业务基准比较;若改变初始资料,单独分析这一影响。
- 在真实的下载、推理、编码、上传条件下测量时延和资源。
- 影子运行若干周期,核对迟到输入、失败恢复与数据修订,再决定是否发布。
常见故障定位
| 现象 | 优先检查 |
|---|---|
| 包安装成功但模型加载失败 | 是否安装对应 extra;权重权限;默认 package 的来源 |
| CUDA 不可用 | 宿主机驱动、容器 GPU 暴露、torch 构建 |
| FCN3 比预期慢 | 扩展是否编译成功、CPU/GPU 数据搬运、精度、下载是否计入 |
| 同一例子换机器失败 | Python/CUDA/torch/额外依赖版本是否一致 |
| 地图南北倒置或日期线裂缝 | 坐标与数值是否同步重排,周期边界是否重复 |
| 气温上千或高度大十倍 | K/°C、Pa/hPa、位势/位势高度是否混淆 |
| 少了一帧/多了一天 | 初始帧是否计入、nsteps 是否被误当成天数 |
| gzip 解码失败 | 浏览器是否已经按 Content-Encoding 解压,避免重复解压 |
| 请求最新数据却看到旧图 | manifest 再验证、内容哈希、晚到请求是否污染当前运行 |
七次学习练习
| 次数 | 学习目标 | 完成标志 |
|---|---|---|
| 1 | 起报、时效、有效时间 | 能解释两次起报预测同一时刻的差别 |
| 2 | Random + Persistence | 能指出它为什么不是天气 AI |
| 3 | FCN + GFS | 得到一个可解释的 24 小时结果 |
| 4 | 数组与坐标 | 能在指定经纬度取值,核对单位 |
| 5 | 多变量与地图 | 温度、风、气压显示语义一致 |
| 6 | 异步任务与发布 | 模拟上传失败,已发布结果仍可读 |
| 7 | 模型评估 | 给出按变量和时效分解的对照结果 |
继续阅读
- 官方文档:查询组件与模型,注意主分支版本。
- 0.19.0 源码:本教程的固定实现基线。
- 评估 recipes:阅读完整评估流程。
- CF 约定:学习如何让时间、坐标和变量可被机器理解。
教程里的交互实验使用显式标注的数学示意数据,不在线执行 AI 模型,不代表实测天气预报。