Earth-2モデル相互比較プロジェクト(MIP)は、気候の研究者と科学者が天候と気候のためにAIモデルの使用を探求し、実験できるようにするPythonベースのAIフレームワークです。 AIモデルが地球の大気の物理学をどのようにキャプチャし、従来の数値天候予測モデルでどのように動作できるかを理解するための参照ワークフローを提供します。たとえば、リポジトリは、事前に訓練されたモデルチェックポイントを使用して推論を実行し、特定の標準メトリックを使用してそのようなモデルのスキルを獲得するための均一なインターフェイスを提供します。このリポジトリは、天候と気候コミュニティを促進し、モデルをテストし、さまざまなデータソースで使用するためのイベントの優れた参照ベースラインを考え出すことを目的としています。
Earth-2 MIPは、一般リリース時にPypiにインストールできます。それまでの間、ソースからインストールできます。
git clone [email protected]:NVIDIA/earth2mip.git
cd earth2mip && pip install .
詳細やその他のオプションについては、インストールドキュメントを参照してください。
Earth-2 MIPは、さまざまなワークフローを開始するために使用できる例ドキュメントページで表示できる一連の例を提供します。これらの例は、JupyerノートブックとPythonスクリプトの両方としてダウンロードできます。ソースPythonスクリプトは、例フォルダーにあります。
Earth-2 MIPは、AIモデルを使用して推論を実行するための高レベルAPIを提供します。たとえば、次のことを使用して、気候データストア(CDS)の初期状態を使用してPangue Weatherを実行できます。
python
>>> import datetime
>>> from earth2mip.networks import get_model
>>> from earth2mip.initial_conditions import cds
>>> from earth2mip.inference_ensemble import run_basic_inference
>>> time_loop = get_model( " e2mip://dlwp " , device= " cuda:0 " )
>>> data_source = cds.DataSource(time_loop.in_channel_names)
>>> ds = run_basic_inference(time_loop, n=10, data_source=data_source, time=datetime.datetime(2018, 1, 1))
>>> ds.chunk ()
< xarray.DataArray (time: 11, history: 1, channel: 69, lat: 721, lon: 1440) >
dask.array < xarray- < this-array > , shape=(11, 1, 69, 721, 1440), dtype=float32, chunksize=(11, 1, 69, 721, 1440), chunktype=numpy.ndarray >
Coordinates:
* lon (lon) float32 0.0 0.25 0.5 0.75 1.0 ... 359.0 359.2 359.5 359.8
* lat (lat) float32 90.0 89.75 89.5 89.25 ... -89.25 -89.5 -89.75 -90.0
* time (time) datetime64[ns] 2018-01-01 ... 2018-01-03T12:00:00
* channel (channel) < U5 ' z1000 ' ' z925 ' ' z850 ' ' z700 ' ... ' u10m ' ' v10m ' ' t2m '
Dimensions without coordinates: history
そして、あなたはこのようなacc/rmseを取得することができます:
>>> from earth2mip.inference_medium_range import score_deterministic
>>> import numpy as np
>>> scores = score_deterministic(time_loop,
data_source=data_source,
n=10,
initial_times=[datetime.datetime(2018, 1, 1)],
# fill in zeros for time-mean, will typically be grabbed from data.
time_mean=np.zeros((7, 721, 1440))
)
>>> scores
<xarray.Dataset>
Dimensions: (lead_time: 11, channel: 7, initial_time: 1)
Coordinates:
* lead_time (lead_time) timedelta64[ns] 0 days 00:00:00 ... 5 days 00:...
* channel (channel) <U5 't850' 'z1000' 'z700' ... 'z300' 'tcwv' 't2m'
Dimensions without coordinates: initial_time
Data variables:
acc (lead_time, channel) float64 1.0 1.0 1.0 ... 0.9686 0.9999
rmse (lead_time, channel) float64 0.0 2.469e-05 0.0 ... 7.07 2.998
initial_times (initial_time) datetime64[ns] 2018-01-01
>>> scores.rmse.sel(channel='z500')
<xarray.DataArray 'rmse' (lead_time: 11)>
array([ 0. , 150.83014446, 212.07880612, 304.98592282,
381.36510987, 453.31516952, 506.01464974, 537.11092269,
564.79603347, 557.22871627, 586.44691243])
Coordinates:
* lead_time (lead_time) timedelta64[ns] 0 days 00:00:00 ... 5 days 00:00:00
channel <U5 'z500'
これらのノートブックは、いくつかのモデルでハウツー使用を示しており、これは互換性がある限り、独自のチェックポイントを持ち込むための参照として機能します。 Earth-2 MIPと互換性のあるものにするための追加の作業があるかもしれません。 Earth-2 MIPは、モジュラスでモデル動物園を活用して、ベースラインモデルの参照セットを提供します。目標は、下の表に示すように、コミュニティがこのモデルのコレクションを成長させることを可能にすることです。
id | モデル | 建築 | タイプ | 参照 | ソース | サイズ |
---|---|---|---|---|---|---|
FCN | fourcastnet | 適応フーリエ神経演算子 | 世界の天気 | arxiv | モジュラス | 300MB |
DLWP | 深い学習天気予測 | 畳み込みエンコーダデコーダー | 世界の天気 | Agu | モジュラス | 50MB |
パン | パン天気(階層6 + 24時間) | ビジョントランス | 世界の天気 | 自然 | onnx | 2GB |
Pangu_6 | Pangue Weather 6hrモデル | ビジョントランス | 世界の天気 | 自然 | onnx | 1GB |
Pangu_24 | パン天気24時間モデル | ビジョントランス | 世界の天気 | 自然 | onnx | 1GB |
fcnv2_sm | Fourcastnet v2 | 球状高調波フーリエ神経演算子 | 世界の天気 | arxiv | モジュラス | 3.5GB |
グラフキャスト | グラフキャスト、37レベル、0.25度 | グラフニューラルネットワーク | 世界の天気 | 科学 | github | 145MB |
graphcast_small | グラフキャスト、13レベル、1° | グラフニューラルネットワーク | 世界の天気 | 科学 | github | 144MB |
graphcast_operational | グラフキャスト、13レベル、0.25度 | グラフニューラルネットワーク | 世界の天気 | 科学 | github | 144MB |
spipitation_afno | fourcastnet降水 | 適応フーリエ神経演算子 | 診断 | arxiv | モジュラス | 300MB |
気候変動 | 気候セグメンテーションモデル | 畳み込みニューラルネットワーク | 診断 | GMD | モジュラス | 2MB |
* =すぐに来る
一部のモデルでは、デフォルトでインストールされていない追加の依存関係が必要です。詳細については、インストール手順を参照してください。
注:各モデルチェックポイントには、独自の一意のライセンスがある場合があります。特定のユースケースへの影響を理解するために、ユーザーがそれぞれに慣れることをお勧めします。
モデルをスコアボードに統合して、コミュニティを表示したいと考えています。これを行う最良の方法は、Nvidiaモジュラスを介してです。モデル(トレーニングコードの両方とモデルチェックポイントの両方)に貢献することができ、参照セットの一部として維持されることを確認できます。
Earth-2 MIPはオープンソースのコラボレーションであり、その成功はフィールドをさらに進めるためのコミュニティの貢献に根ざしています。他の人があなたの貢献に基づいて構築できるように、プロジェクトに貢献してくれてありがとう。 Earth-2 MIPへの貢献に関するガイダンスについては、貢献ガイドラインを参照してください。
この作業は、Nvidiaのチーム間の同様のエンゲージメントを促進するために触発されています。これは、新しいモデルを開発し、気候科学のドメイン専門家を開発しているMLの専門家が、そのようなモデルのスキルを評価しています。たとえば、正規化定数やハイパーパラメーター値などの必要な入力データは、モデルの重みと一緒にパッケージ化されていません。すべてのモデルは通常、わずかに異なるインターフェイスを実装します。スコアリングルーチンは、スコアが付けられているモデルに固有であり、グループ間で一貫していない場合があります。
Earth-2 MIPは、これらの課題に対処し、MLモデルをほとんど頻繁に評価しているドメインの専門家とそれらを生産するMLの専門家との間のギャップを橋渡しします。このスペースの他のプロジェクトと比較して、Earth-2 MIPはフライでスコアリングモデルに焦点を当てています。 Jupyter Bookの迅速なイテレーション、多くのGPUに分配されたスコアリングモデルのCLIS、および誰でも独自のMLモデルを使用できる柔軟なプラグインフレームワークに適したPython APIがあります。さらに重要なことに、Earth-2 MIPは、気候および気象シミュレーションにおけるAIモデルの可能性を評価するために、気候研究コミュニティ内での探査と協力を促進することを目指しています。
Earth-2 MIP、機能、APIなどに関する詳細情報については、ドキュメントページをご覧ください。
Earth-2 MIPはApacheライセンス2.0の下で提供されます。完全なライセンステキストについては、license.txtを参照してください。