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
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for OneScience-Group/NeuralGCM