Earth-2 Model Intercomparison Project (MIP) adalah kerangka kerja AI berbasis Python yang memungkinkan para peneliti dan ilmuwan iklim untuk mengeksplorasi dan bereksperimen dengan penggunaan model AI untuk cuaca dan iklim. Ini memberikan alur kerja referensi untuk memahami bagaimana model AI menangkap fisika atmosfer bumi dan bagaimana mereka dapat bekerja dengan model peramalan cuaca numerik tradisional. Misalnya, repo menyediakan antarmuka yang seragam untuk menjalankan inferensi menggunakan pos pemeriksaan model pra-terlatih dan mencetak keterampilan model tersebut menggunakan metrik standar tertentu. Repositori ini dimaksudkan untuk memfasilitasi cuaca dan komunitas iklim untuk menghasilkan dasar referensi yang baik dari acara untuk menguji model terhadap dan digunakan dengan berbagai sumber data.
Earth-2 MIP akan dapat diinstal pada PYPI pada saat rilis umum. Sementara itu, seseorang dapat menginstal dari sumber:
git clone [email protected]:NVIDIA/earth2mip.git
cd earth2mip && pip install .
Lihat Dokumentasi Instalasi untuk detail lebih lanjut dan opsi lainnya.
Earth-2 MIP memberikan satu set contoh yang dapat dilihat pada halaman Dokumentasi Contoh yang dapat digunakan untuk memulai dengan berbagai alur kerja. Contoh -contoh ini dapat diunduh baik sebagai notebook Jupyer dan skrip Python. Sumber skrip Python dapat ditemukan di folder contoh.
Earth-2 MIP menyediakan API tingkat tinggi untuk menjalankan inferensi dengan model AI. Misalnya, berikut ini dapat digunakan untuk menjalankan cuaca pangu menggunakan keadaan awal dari Store Data Iklim (CDS):
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
Dan Anda bisa mendapatkan ACC/RMSE seperti ini:
>>> 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'
Buku catatan ini menggambarkan cara-cara menggunakan dengan beberapa model dan ini dapat berfungsi sebagai referensi untuk membawa pos pemeriksaan Anda sendiri selama itu kompatibel. Mungkin ada pekerjaan tambahan untuk membuatnya kompatibel dengan Earth-2 MIP. Earth-2 MIP memanfaatkan zoo model dalam modulus untuk memberikan set referensi model garis dasar. Tujuannya adalah untuk memungkinkan bagi masyarakat untuk menumbuhkan kumpulan model ini seperti yang ditunjukkan pada tabel di bawah ini.
PENGENAL | Model | Arsitektur | Jenis | Referensi | Sumber | Ukuran |
---|---|---|---|---|---|---|
fcn | FourcastNet | Operator saraf fourier adaptif | cuaca global | Arxiv | modulus | 300MB |
DLWP | Prediksi cuaca belajar yang mendalam | Convolutional Encoder-Decoder | cuaca global | Agu | modulus | 50MB |
Pangu | Cuaca pangu (hierarkis 6 + 24 jam) | Transformator Visi | cuaca global | Alam | onnx | 2GB |
pangu_6 | Model Pangu Weather 6hr | Transformator Visi | cuaca global | Alam | onnx | 1GB |
pangu_24 | Model Pangu Weather 24 jam | Transformator Visi | cuaca global | Alam | onnx | 1GB |
fcnv2_sm | FourcastNet v2 | Operator Saraf Fourier Harmonik Bulat | cuaca global | Arxiv | modulus | 3.5GB |
Graphcast | Graphcast, 37 level, 0,25 derajat | Grafik Jaringan Saraf | cuaca global | Sains | GitHub | 145MB |
graphcast_small | Graphcast, 13 level, 1 derajat | Grafik Jaringan Saraf | cuaca global | Sains | GitHub | 144MB |
graphcast_operational | Graphcast, 13 level, 0,25 derajat | Grafik Jaringan Saraf | cuaca global | Sains | GitHub | 144MB |
presipitasi_afno | Curah hujan Fourcastnet | Operator saraf fourier adaptif | diagnostik | Arxiv | modulus | 300MB |
klimatenet | Model Segmentasi Climatenet | Jaringan Saraf Konvolusional | diagnostik | GMD | modulus | 2MB |
* = segera hadir
Beberapa model memerlukan dependensi tambahan yang tidak diinstal secara default. Lihat instruksi instalasi untuk detailnya.
Catatan : Setiap pos pemeriksaan model mungkin memiliki lisensi uniknya sendiri. Kami mendorong pengguna untuk membiasakan diri dengan masing -masing untuk memahami implikasi untuk kasus penggunaan khusus mereka.
Kami ingin mengintegrasikan model Anda ke dalam papan skor untuk menampilkan komunitas! Cara terbaik untuk melakukan ini adalah melalui modulus nvidia. Anda dapat menyumbangkan model Anda (baik kode pelatihan maupun pos pemeriksaan model) dan kami dapat memastikan bahwa itu dipertahankan sebagai bagian dari set referensi.
Earth-2 MIP adalah kolaborasi open source dan keberhasilannya berakar pada kontribusi masyarakat untuk melanjutkan lapangan. Terima kasih telah berkontribusi pada proyek sehingga orang lain dapat membangun kontribusi Anda. Untuk panduan untuk memberikan kontribusi ke Earth-2 MIP, silakan merujuk pada Pedoman yang berkontribusi.
Pekerjaan ini terinspirasi untuk memfasilitasi keterlibatan serupa antara tim di sini di NVIDIA - para ahli ML yang mengembangkan model baru dan para ahli domain dalam ilmu iklim mengevaluasi keterampilan model tersebut. Misalnya, data input yang sering diperlukan seperti konstanta normalisasi dan nilai hiperparameter tidak dikemas di samping bobot model. Setiap model biasanya mengimplementasikan antarmuka yang sedikit berbeda. Rutinitas penilaian khusus untuk model yang dicetak dan mungkin tidak konsisten di seluruh kelompok.
Earth-2 MIP mengatasi tantangan ini dan menjembatani kesenjangan antara para ahli domain yang paling sering menilai model ML, dan para ahli ML yang memproduksinya. Dibandingkan dengan proyek lain di ruang ini, Earth-2 MIP berfokus pada model penilaian saat terbang. Ini memiliki API Python yang cocok untuk iterasi cepat dalam buku Jupyter, CLIS untuk mencetak model yang didistribusikan pada banyak GPU, dan kerangka kerja plugin fleksibel yang memungkinkan siapa pun untuk menggunakan model ML mereka sendiri. Lebih penting lagi Earth-2 MIP bercita-cita untuk memfasilitasi eksplorasi dan kolaborasi dalam komunitas riset iklim untuk mengevaluasi potensi model AI dalam simulasi iklim dan cuaca.
Silakan lihat halaman dokumentasi untuk informasi mendalam tentang Earth-2 MIP, fungsionalitas, API, dll.
Earth-2 MIP disediakan di bawah Lisensi Apache 2.0, silakan lihat lisensi.txt untuk teks lisensi lengkap.