Earth-2 Model Intercomparison Project (MIP)는 기후 연구원과 과학자들이 날씨와 기후에 AI 모델을 사용하여 탐색하고 실험 할 수있는 파이썬 기반 AI 프레임 워크입니다. AI 모델이 지구 대기의 물리학을 어떻게 포착하는지 이해하고 기존의 수치 예측 모델에서 어떻게 작동하는지 이해하기위한 참조 워크 플로우를 제공합니다. 예를 들어, REPO는 미리 훈련 된 모델 체크 포인트를 사용하여 추론을 실행하고 특정 표준 메트릭을 사용하여 이러한 모델의 기술을 채점하기위한 균일 한 인터페이스를 제공합니다. 이 저장소는 날씨 및 기후 커뮤니티가 모델을 테스트하고 다양한 데이터 소스와 함께 사용하기 위해 좋은 참조 기준 이벤트를 제시하도록하기위한 것입니다.
Earth-2 MIP는 일반 릴리스시 PYPI에 설치할 수 있습니다. 그 동안 소스에서 설치할 수 있습니다.
git clone [email protected]:NVIDIA/earth2mip.git
cd earth2mip && pip install .
자세한 내용 및 기타 옵션은 설치 문서를 참조하십시오.
Earth-2 MIP는 다양한 워크 플로를 시작하는 데 사용할 수있는 예제 문서 페이지에서 볼 수있는 예제 세트를 제공합니다. 이 예제는 Jupyer Notebooks 및 Python Scripts로 다운로드 할 수 있습니다. 소스 파이썬 스크립트는 예제 폴더에서 찾을 수 있습니다.
Earth-2 MIP는 AI 모델과의 추론을 실행하기위한 고급 API를 제공합니다. 예를 들어, 다음은 기후 데이터 저장소 (CDS)의 초기 상태를 사용하여 Pangu 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 | 딥 러닝 기상 예측 | 컨볼 루션 인코더 디코더 | 세계적인 날씨 | 아구 | 계수 | 50MB |
판 제 | 판 퍼 날씨 (계층 6 + 24 시간) | 비전 변압기 | 세계적인 날씨 | 자연 | onx | 2GB |
pangu_6 | 팬그 날씨 6 시간 모델 | 비전 변압기 | 세계적인 날씨 | 자연 | onx | 1GB |
pangu_24 | 판 제 날씨 24 시간 모델 | 비전 변압기 | 세계적인 날씨 | 자연 | onx | 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 |
강수량 _afno | Fourcastnet 강수 | 적응 형 푸리에 신경 운영자 | 특수 증상 | arxiv | 계수 | 300MB |
기후 | 기후 세분화 모델 | 컨볼 루션 신경 네트워크 | 특수 증상 | GMD | 계수 | 2MB |
* = 곧 출시됩니다
일부 모델에는 기본적으로 설치되지 않은 추가 종속성이 필요합니다. 자세한 내용은 설치 지침을 참조하십시오.
참고 : 각 모델 체크 포인트에는 고유 한 라이센스가있을 수 있습니다. 우리는 사용자가 특정 사용 사례에 대한 영향을 이해하기 위해 각각에 익숙해 지도록 권장합니다.
커뮤니티를 보여주기 위해 귀하의 모델을 스코어 보드에 통합하고 싶습니다! 이를 수행하는 가장 좋은 방법은 Nvidia Modulus를 통한 것입니다. 모델 (교육 코드 및 모델 체크 포인트 모두)에 기여할 수 있으며 참조 세트의 일부로 유지 관리를 보장 할 수 있습니다.
Earth-2 MIP는 오픈 소스 협업이며 성공은 분야를 더욱 발전시키기위한 커뮤니티 기여에 뿌리를두고 있습니다. 다른 사람들이 귀하의 기부금을 구축 할 수 있도록 프로젝트에 기여해 주셔서 감사합니다. Earth-2 MIP에 기여한 지침은 기여 지침을 참조하십시오.
이 작업은 NVIDIA의 팀간에 유사한 참여를 촉진하는 데 영감을주었습니다. ML 전문가는 새로운 모델을 개발하는 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 License 2.0에 따라 제공됩니다. 전체 라이센스 텍스트는 License.txt를 참조하십시오.