NeuralGCM

Model Introduction

NeuralGCM (Neural General Circulation Models) is an open-source hybrid machine-learning and physics-based atmospheric model developed by Google Research for weather forecasting and climate simulation.

Paper: Neural General Circulation Models for Weather and Climate

https://arxiv.org/abs/2311.07222

Model Description

NeuralGCM is built around a differentiable atmospheric dynamical core. Neural networks represent unresolved physical processes, the encoder, and the decoder, improving forecast efficiency while retaining physical constraints.

Profile Resolution Type Bundled official checkpoint
weather_forecast 0.7 degrees (512 x 256) Deterministic weather forecasting for approximately 2 to 15 days weight/models_v1_deterministic_0_7_deg.pkl
climate_scale 1.4 degrees (256 x 128) Deterministic climate-scale simulation weight/models_v1_deterministic_1_4_deg.pkl
forecast_2_8_deg 2.8 degrees (128 x 64) Deterministic weather forecasting weight/models_v1_deterministic_2_8_deg.pkl
stochastic_1_4_deg 1.4 degrees (256 x 128) Stochastic weather forecasting weight/models_v1_stochastic_1_4_deg.pkl

Use Cases

Scenario Description
Global weather forecasting Train the 0.7-degree model on ERA5 data for short- to medium-range weather forecasting.
Climate-scale simulation Train the 1.4-degree model on ERA5 data for longer atmospheric simulations.
Low-resolution experiments Use the 2.8-degree data profile for lower-cost weather forecasting experiments.
Local quick validation Generate HDF5 data with the required channel protocol using scripts/fake_data.py and validate the data, model, and checkpoint workflows.
ModelScope / OneCode execution Download the standalone model package, install the OneScience and JAX dependencies, and run the scripts directly.
Multi-device training Run synchronous data-parallel training on multiple local accelerators.

Usage Guide

1. OneCode Usage

Experience intelligent one-click AI4S programming through the OneCode online environment:

Click to Experience Intelligent One-Click AI4S Programming

2. Manual Installation and Usage

Hardware Requirements

  • A GPU or DCU is recommended.
  • A CPU can be used for import checks and small-scale connectivity validation, but full training and inference will be slow.
  • DCU users must install DTK in advance. DTK 25.04.2 or later, or the OneScience-recommended version compatible with the current cluster, is recommended.

Download the Model Package

hf download OneScience-Group/NeuralGCM --local-dir ./NeuralGCM
cd NeuralGCM

Install the Runtime Environment

DCU Environment

# Activate DTK and conda first.
conda create -n onescience311 python=3.11 -y
conda activate onescience311
# Installation with uv is also supported.
pip install onescience[earth-dcu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai

GPU Environment

# Activate conda first.
conda create -n onescience311 python=3.11 -y libstdcxx-ng=12 libgcc-ng=12 gcc_linux-64=12 gxx_linux-64=12
conda activate onescience311
# Installation with uv is also supported.
pip install onescience[earth-gpu] -i http://mirrors.onescience.ai:3141/pypi/simple/ --trusted-host mirrors.onescience.ai

Training Data

The OneScience community provides an ERA5 data slice for training. Download it with the following command and confirm that the data path in conf/config.yaml is correct:

hf download --repo-type dataset OneScience-Group/ERA5 --local-dir ./data

Generate Synthetic Data

python scripts/fake_data.py

The script creates yearly HDF5 files under data/data/, writes synthetic static fields to data/static.nc, and saves channel, time-window, and grid metadata to data/metadata/dataset_card.json. The synthetic fields use approximate physical units but are intended only for shape, loading, regridding, and numerical-stability checks.

Training

Single device:

# 0.7-degree deterministic short- to medium-range weather forecasting
python scripts/train_weather_forecast.py
# 1.4-degree deterministic climate-scale simulation
python scripts/train_climate_scale.py
# 2.8-degree deterministic low-resolution weather forecasting
python scripts/train_forecast_2_8_deg.py
# 1.4-degree stochastic weather forecasting
python scripts/train_stochastic_1_4_deg.py

Multiple devices:

# 0.7-degree deterministic short- to medium-range weather forecasting
python scripts/train_weather_forecast.py --devices 8
# 1.4-degree deterministic climate-scale simulation
python scripts/train_climate_scale.py --devices 8
# 2.8-degree deterministic low-resolution weather forecasting
python scripts/train_forecast_2_8_deg.py --devices 8
# 1.4-degree stochastic weather forecasting
python scripts/train_stochastic_1_4_deg.py --devices 8

Fine-tuning

Fine-tuning can start from either a checkpoint produced by local training or the bundled official checkpoint for the selected profile.

# Use the bundled official checkpoint for each profile.
python scripts/train_weather_forecast.py --finetune weight/models_v1_deterministic_0_7_deg.pkl
python scripts/train_climate_scale.py --finetune weight/models_v1_deterministic_1_4_deg.pkl
python scripts/train_forecast_2_8_deg.py --finetune weight/models_v1_deterministic_2_8_deg.pkl
python scripts/train_stochastic_1_4_deg.py --finetune weight/models_v1_stochastic_1_4_deg.pkl

# Alternatively, provide a local checkpoint explicitly.
python scripts/train_weather_forecast.py --finetune ./data/checkpoint/model_bak.pkl

For multi-device fine-tuning, add --devices to the corresponding command.

Pre-trained Weights

This project includes the following official pre-trained checkpoints:

Local file Official release path
weight/models_v1_deterministic_0_7_deg.pkl gs://neuralgcm/models/v1/deterministic_0_7_deg.pkl
weight/models_v1_deterministic_1_4_deg.pkl gs://neuralgcm/models/v1/deterministic_1_4_deg.pkl
weight/models_v1_deterministic_2_8_deg.pkl gs://neuralgcm/models/v1/deterministic_2_8_deg.pkl
weight/models_v1_stochastic_1_4_deg.pkl gs://neuralgcm/models/v1/stochastic_1_4_deg.pkl

Inference

# 0.7-degree deterministic short- to medium-range weather forecasting
python scripts/inference.py --mode weather_forecast --checkpoint weight/models_v1_deterministic_0_7_deg.pkl
# 1.4-degree deterministic climate-scale simulation
python scripts/inference.py --mode climate_scale --checkpoint weight/models_v1_deterministic_1_4_deg.pkl
# 2.8-degree deterministic low-resolution weather forecasting
python scripts/inference.py --mode forecast_2_8_deg --checkpoint weight/models_v1_deterministic_2_8_deg.pkl
# 1.4-degree stochastic weather forecasting
python scripts/inference.py --mode stochastic_1_4_deg --checkpoint weight/models_v1_stochastic_1_4_deg.pkl

Without an explicit --checkpoint, inference first checks ./data/checkpoint/model_bak.pkl. The default output is results/predictions.nc, containing pressure-level variables with their official names and rollout time coordinates.

Evaluation and Visualization

python scripts/result.py

Official OneScience Resources

Citation and License

  • This repository is a reproduction of the original NeuralGCM paper.
  • The repository code is provided under the Apache License 2.0.
  • The trained model weights released by Google, including the four checkpoints in this directory, are licensed under the Creative Commons Attribution-ShareAlike 4.0 International license (CC BY-SA 4.0). Redistribution or adaptation of the weights must preserve attribution and use the same license as required by those terms.
Downloads last month
13
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for OneScience-Group/NeuralGCM