ECMWF(欧州中期予報センター)が2025年に公開したAIFS-Singleという気象予報モデルがある。物理法則を解くのではなく、過去の気象データから学習したニューラルネットが直接次の状態を予測する方式で、従来の物理モデルの1/1000程度の計算コストで動くという。無料でモデルも初期値データも公開されている。ゲーミングPC(RTX3080、10GB)で動くかどうか、実際に試してみた。
動かすまで
結論から言うと、動いた。GPUメモリはほぼ限界(9.9GB/10GB)まで使うが、6時間先を1ステップとして、15日先までの予報を計算だけで15〜20分ほどで出せる。
素直には動かなかった。学習時のライブラリバージョンとの食い違い、Windows特有のパス・DLLの問題など、いくつもの壁があった。特に手間取ったのは初期値データの作り方で、必要な変数名を自己流で組み立てたところ、土壌の温度・水分量のパラメータ名を間違えて「取得できないデータ」と誤判断したり、ジオポテンシャルの単位変換を見落としたりした。ECMWFが公式に配布しているノートブックを最初から読んでいれば避けられた遠回りだった。
実際の天気と比べてみる
動いたところで、広島の予報を出してみた。ちょうど猛暑が続いていた時期で、報道の予報では8月23日から25日にかけて連日快晴・最高気温36〜37℃だった。
対してAIFSの出力は、初日こそ近い値だったが、2日目には最高気温24℃・雲量ほぼ100%・雨ありという、まったく逆方向の予報になった。台風の接近も疑ったが、この時期の台風は台湾方面に向かっており、広島には無関係だった。
原因を順に確認した。緯度経度から格子点を探す処理、経度の基準をずらす処理は、陸海判定(海か陸か)と標高を使って検証し、正しく動作していることを確認した。倍精度(FP32)での再計算も試みたが、こちらはGPUメモリが足りず実行できなかった。
結局、明確なバグは見つからなかった。このモデルはファイル名に「mse」とある通り、平均二乗誤差を最小化するように学習されている。この種の学習方法は、極端な気象を平均的な状態に近づけて予測してしまう傾向が知られており、6時間ごとに自分の出力を次の入力として使う自己回帰の仕組みでは、そのズレが繰り返し積み重なる。今回のような「統計的に珍しい猛暑の継続」は、まさにこの弱点が出やすい条件だった、というのが今のところの見立てである。
今、できること
精度の限界を確認した上で、任意の地点・任意の時刻の予報を見られる小さなツールを作った。AIFSは常に地球全体を1回のGPU計算で予報するため、都市ごとに計算をやり直す必要はない。1回分の計算結果をまるごと保存しておけば、以後はどの都市を選んでもGPU無しで瞬時に取り出せる。気温・湿度・風速・降水量のグラフに加えて、気圧配置と風向を示す天気図も同じ仕組みで描ける。

天気図はこんな感じで、等圧線・気温分布・地上風を重ねて描ける。

このモデルを実用の天気予報として使うには、今回見つかった限界を踏まえる必要がある。ただ、無料のデータと個人のGPUだけで、ここまでの実験ができること自体は、ひとつの発見だった。
コード
今回作った主なスクリプトを置いておく。動かすには何をどこから取得すればよいか、必要なライブラリ、Windows特有のはまりどころは README にまとめた。
- README.md — セットアップ手順・必要なライブラリ・はまりどころ
- aifs_run_global.py — AIFS-Singleを1回実行し、全球分の予報を保存する
- extract_city_from_global.py — 保存済みデータから任意の地点の時系列を取り出す(GPU不要)
- draw_weather_map.py — 保存済みデータから天気図を描く(GPU不要)
- aifs_weather_app.py — 上記をまとめたStreamlit GUI
- aifs_fetch_and_run.py — 単一地点向けの取得〜推論スクリプト