Download conf/config.yaml from OneScience-Group/NeuralGCM: direct link, hf CLI and curl.
- Browser
- Download file 18.5 kB
-
https://huggingface.co/OneScience-Group/NeuralGCM/resolve/main/conf/config.yaml
- Command line
-
hf download hf://OneScience-Group/NeuralGCM/conf/config.yaml
-
curl -L -o config.yaml https://huggingface.co/OneScience-Group/NeuralGCM/resolve/main/conf/config.yaml
18.5 kB
| project: | |
| name: neuralgcm_develop | |
| task: earth_system_forecasting | |
| seed: 20260904 | |
| paths: | |
| project_root: . | |
| # Upstream source is supplied by the external neuralgcm package. | |
| official_source_dir: null | |
| virtual_era5_dir: data | |
| checkpoint_dir: data/checkpoint | |
| result_dir: results | |
| metadata_dir: metadata | |
| model: | |
| # Native NeuralGCM pressure-level input contract. | |
| variant: weather_forecast | |
| grid_degrees: 0.7 | |
| # Gaussian grid shape in [longitude, latitude] order (the model API reports | |
| # the same grid as (latitude, longitude) when printing sizes). | |
| grid_shape: [512, 256] | |
| profiles: | |
| weather_forecast: | |
| description: "未来2至15天天气预报" | |
| official_reference: models_v1_deterministic_0_7_deg.pkl | |
| grid_degrees: 0.7 | |
| grid_shape: [512, 256] | |
| climate_scale: | |
| description: "气候尺度模拟" | |
| official_reference: models_v1_deterministic_1_4_deg.pkl | |
| grid_degrees: 1.4 | |
| grid_shape: [256, 128] | |
| forecast_2_8_deg: | |
| description: "2.8度天气预报" | |
| official_reference: models_v1_deterministic_2_8_deg.pkl | |
| grid_degrees: 2.8 | |
| grid_shape: [128, 64] | |
| stochastic_1_4_deg: | |
| description: "1.4度随机预报" | |
| official_reference: models_v1_stochastic_1_4_deg.pkl | |
| grid_degrees: 1.4 | |
| grid_shape: [256, 128] | |
| pressure_levels_hpa: [1, 2, 3, 5, 7, 10, 20, 30, 50, 70, 100, 125, 150, 175, 200, 225, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 775, 800, 825, 850, 875, 900, 925, 950, 975, 1000] | |
| input_variables: [geopotential, specific_humidity, temperature, u_component_of_wind, v_component_of_wind] | |
| optional_input_variables: [specific_cloud_ice_water_content, specific_cloud_liquid_water_content] | |
| forcing_variables: [sea_ice_cover, sea_surface_temperature] | |
| official_checkpoint: null | |
| load_pretrained: false | |
| data: | |
| dataset_class: onescience.datapipes.climate.ERA5Dataset | |
| data_dir: data | |
| # Optional auxiliary static fields generated by fake_data.py or supplied by | |
| # a real ERA5 preprocessing job. Dynamic channels remain in data/*.h5. | |
| static_file: data/static.nc | |
| # Exact Gaussian-grid static fields extracted from the four official | |
| # checkpoints by scripts/prepare_static_data.py. These take precedence over | |
| # the source-grid synthetic fallback above. | |
| static_files: | |
| weather_forecast: data/static/weather_forecast.nc | |
| climate_scale: data/static/climate_scale.nc | |
| forecast_2_8_deg: data/static/forecast_2_8_deg.nc | |
| stochastic_1_4_deg: data/static/stochastic_1_4_deg.nc | |
| field_key: fields | |
| time_step_hours: 6 | |
| input_steps: 1 | |
| # Official training consumes a time trajectory. Increase for production | |
| # rollouts; 1 is retained for the minimal data validation command. | |
| output_steps: 1 | |
| normalize: false | |
| batch_size: 1 | |
| num_workers: 0 | |
| train_years: [1999] | |
| val_years: [2000] | |
| test_years: [2001] | |
| virtual: | |
| # Memory-conscious default: one initial frame + eight future 6-hour | |
| # frames. Use --forecast-steps 60 for the full official 15-day horizon. | |
| timesteps_per_year: 9 | |
| forecast_steps: 8 | |
| forecast_horizon_days: 2 | |
| height: 721 | |
| width: 1440 | |
| seed: 20260904 | |
| # Exact flattened fields order used by fake_data.py and ERA5Dataset. | |
| channel_order: | |
| - geopotential_1 | |
| - geopotential_2 | |
| - geopotential_3 | |
| - geopotential_5 | |
| - geopotential_7 | |
| - geopotential_10 | |
| - geopotential_20 | |
| - geopotential_30 | |
| - geopotential_50 | |
| - geopotential_70 | |
| - geopotential_100 | |
| - geopotential_125 | |
| - geopotential_150 | |
| - geopotential_175 | |
| - geopotential_200 | |
| - geopotential_225 | |
| - geopotential_250 | |
| - geopotential_300 | |
| - geopotential_350 | |
| - geopotential_400 | |
| - geopotential_450 | |
| - geopotential_500 | |
| - geopotential_550 | |
| - geopotential_600 | |
| - geopotential_650 | |
| - geopotential_700 | |
| - geopotential_750 | |
| - geopotential_775 | |
| - geopotential_800 | |
| - geopotential_825 | |
| - geopotential_850 | |
| - geopotential_875 | |
| - geopotential_900 | |
| - geopotential_925 | |
| - geopotential_950 | |
| - geopotential_975 | |
| - geopotential_1000 | |
| - specific_humidity_1 | |
| - specific_humidity_2 | |
| - specific_humidity_3 | |
| - specific_humidity_5 | |
| - specific_humidity_7 | |
| - specific_humidity_10 | |
| - specific_humidity_20 | |
| - specific_humidity_30 | |
| - specific_humidity_50 | |
| - specific_humidity_70 | |
| - specific_humidity_100 | |
| - specific_humidity_125 | |
| - specific_humidity_150 | |
| - specific_humidity_175 | |
| - specific_humidity_200 | |
| - specific_humidity_225 | |
| - specific_humidity_250 | |
| - specific_humidity_300 | |
| - specific_humidity_350 | |
| - specific_humidity_400 | |
| - specific_humidity_450 | |
| - specific_humidity_500 | |
| - specific_humidity_550 | |
| - specific_humidity_600 | |
| - specific_humidity_650 | |
| - specific_humidity_700 | |
| - specific_humidity_750 | |
| - specific_humidity_775 | |
| - specific_humidity_800 | |
| - specific_humidity_825 | |
| - specific_humidity_850 | |
| - specific_humidity_875 | |
| - specific_humidity_900 | |
| - specific_humidity_925 | |
| - specific_humidity_950 | |
| - specific_humidity_975 | |
| - specific_humidity_1000 | |
| - temperature_1 | |
| - temperature_2 | |
| - temperature_3 | |
| - temperature_5 | |
| - temperature_7 | |
| - temperature_10 | |
| - temperature_20 | |
| - temperature_30 | |
| - temperature_50 | |
| - temperature_70 | |
| - temperature_100 | |
| - temperature_125 | |
| - temperature_150 | |
| - temperature_175 | |
| - temperature_200 | |
| - temperature_225 | |
| - temperature_250 | |
| - temperature_300 | |
| - temperature_350 | |
| - temperature_400 | |
| - temperature_450 | |
| - temperature_500 | |
| - temperature_550 | |
| - temperature_600 | |
| - temperature_650 | |
| - temperature_700 | |
| - temperature_750 | |
| - temperature_775 | |
| - temperature_800 | |
| - temperature_825 | |
| - temperature_850 | |
| - temperature_875 | |
| - temperature_900 | |
| - temperature_925 | |
| - temperature_950 | |
| - temperature_975 | |
| - temperature_1000 | |
| - u_component_of_wind_1 | |
| - u_component_of_wind_2 | |
| - u_component_of_wind_3 | |
| - u_component_of_wind_5 | |
| - u_component_of_wind_7 | |
| - u_component_of_wind_10 | |
| - u_component_of_wind_20 | |
| - u_component_of_wind_30 | |
| - u_component_of_wind_50 | |
| - u_component_of_wind_70 | |
| - u_component_of_wind_100 | |
| - u_component_of_wind_125 | |
| - u_component_of_wind_150 | |
| - u_component_of_wind_175 | |
| - u_component_of_wind_200 | |
| - u_component_of_wind_225 | |
| - u_component_of_wind_250 | |
| - u_component_of_wind_300 | |
| - u_component_of_wind_350 | |
| - u_component_of_wind_400 | |
| - u_component_of_wind_450 | |
| - u_component_of_wind_500 | |
| - u_component_of_wind_550 | |
| - u_component_of_wind_600 | |
| - u_component_of_wind_650 | |
| - u_component_of_wind_700 | |
| - u_component_of_wind_750 | |
| - u_component_of_wind_775 | |
| - u_component_of_wind_800 | |
| - u_component_of_wind_825 | |
| - u_component_of_wind_850 | |
| - u_component_of_wind_875 | |
| - u_component_of_wind_900 | |
| - u_component_of_wind_925 | |
| - u_component_of_wind_950 | |
| - u_component_of_wind_975 | |
| - u_component_of_wind_1000 | |
| - v_component_of_wind_1 | |
| - v_component_of_wind_2 | |
| - v_component_of_wind_3 | |
| - v_component_of_wind_5 | |
| - v_component_of_wind_7 | |
| - v_component_of_wind_10 | |
| - v_component_of_wind_20 | |
| - v_component_of_wind_30 | |
| - v_component_of_wind_50 | |
| - v_component_of_wind_70 | |
| - v_component_of_wind_100 | |
| - v_component_of_wind_125 | |
| - v_component_of_wind_150 | |
| - v_component_of_wind_175 | |
| - v_component_of_wind_200 | |
| - v_component_of_wind_225 | |
| - v_component_of_wind_250 | |
| - v_component_of_wind_300 | |
| - v_component_of_wind_350 | |
| - v_component_of_wind_400 | |
| - v_component_of_wind_450 | |
| - v_component_of_wind_500 | |
| - v_component_of_wind_550 | |
| - v_component_of_wind_600 | |
| - v_component_of_wind_650 | |
| - v_component_of_wind_700 | |
| - v_component_of_wind_750 | |
| - v_component_of_wind_775 | |
| - v_component_of_wind_800 | |
| - v_component_of_wind_825 | |
| - v_component_of_wind_850 | |
| - v_component_of_wind_875 | |
| - v_component_of_wind_900 | |
| - v_component_of_wind_925 | |
| - v_component_of_wind_950 | |
| - v_component_of_wind_975 | |
| - v_component_of_wind_1000 | |
| - specific_cloud_ice_water_content_1 | |
| - specific_cloud_ice_water_content_2 | |
| - specific_cloud_ice_water_content_3 | |
| - specific_cloud_ice_water_content_5 | |
| - specific_cloud_ice_water_content_7 | |
| - specific_cloud_ice_water_content_10 | |
| - specific_cloud_ice_water_content_20 | |
| - specific_cloud_ice_water_content_30 | |
| - specific_cloud_ice_water_content_50 | |
| - specific_cloud_ice_water_content_70 | |
| - specific_cloud_ice_water_content_100 | |
| - specific_cloud_ice_water_content_125 | |
| - specific_cloud_ice_water_content_150 | |
| - specific_cloud_ice_water_content_175 | |
| - specific_cloud_ice_water_content_200 | |
| - specific_cloud_ice_water_content_225 | |
| - specific_cloud_ice_water_content_250 | |
| - specific_cloud_ice_water_content_300 | |
| - specific_cloud_ice_water_content_350 | |
| - specific_cloud_ice_water_content_400 | |
| - specific_cloud_ice_water_content_450 | |
| - specific_cloud_ice_water_content_500 | |
| - specific_cloud_ice_water_content_550 | |
| - specific_cloud_ice_water_content_600 | |
| - specific_cloud_ice_water_content_650 | |
| - specific_cloud_ice_water_content_700 | |
| - specific_cloud_ice_water_content_750 | |
| - specific_cloud_ice_water_content_775 | |
| - specific_cloud_ice_water_content_800 | |
| - specific_cloud_ice_water_content_825 | |
| - specific_cloud_ice_water_content_850 | |
| - specific_cloud_ice_water_content_875 | |
| - specific_cloud_ice_water_content_900 | |
| - specific_cloud_ice_water_content_925 | |
| - specific_cloud_ice_water_content_950 | |
| - specific_cloud_ice_water_content_975 | |
| - specific_cloud_ice_water_content_1000 | |
| - specific_cloud_liquid_water_content_1 | |
| - specific_cloud_liquid_water_content_2 | |
| - specific_cloud_liquid_water_content_3 | |
| - specific_cloud_liquid_water_content_5 | |
| - specific_cloud_liquid_water_content_7 | |
| - specific_cloud_liquid_water_content_10 | |
| - specific_cloud_liquid_water_content_20 | |
| - specific_cloud_liquid_water_content_30 | |
| - specific_cloud_liquid_water_content_50 | |
| - specific_cloud_liquid_water_content_70 | |
| - specific_cloud_liquid_water_content_100 | |
| - specific_cloud_liquid_water_content_125 | |
| - specific_cloud_liquid_water_content_150 | |
| - specific_cloud_liquid_water_content_175 | |
| - specific_cloud_liquid_water_content_200 | |
| - specific_cloud_liquid_water_content_225 | |
| - specific_cloud_liquid_water_content_250 | |
| - specific_cloud_liquid_water_content_300 | |
| - specific_cloud_liquid_water_content_350 | |
| - specific_cloud_liquid_water_content_400 | |
| - specific_cloud_liquid_water_content_450 | |
| - specific_cloud_liquid_water_content_500 | |
| - specific_cloud_liquid_water_content_550 | |
| - specific_cloud_liquid_water_content_600 | |
| - specific_cloud_liquid_water_content_650 | |
| - specific_cloud_liquid_water_content_700 | |
| - specific_cloud_liquid_water_content_750 | |
| - specific_cloud_liquid_water_content_775 | |
| - specific_cloud_liquid_water_content_800 | |
| - specific_cloud_liquid_water_content_825 | |
| - specific_cloud_liquid_water_content_850 | |
| - specific_cloud_liquid_water_content_875 | |
| - specific_cloud_liquid_water_content_900 | |
| - specific_cloud_liquid_water_content_925 | |
| - specific_cloud_liquid_water_content_950 | |
| - specific_cloud_liquid_water_content_975 | |
| - specific_cloud_liquid_water_content_1000 | |
| - sea_ice_cover | |
| - sea_surface_temperature | |
| training: | |
| mode: weather_forecast | |
| max_steps: 3 | |
| trajectory_length: 2 | |
| # Global batch size. For --devices N it is rounded up to a multiple of N; | |
| # each replica then receives distinct trajectories. | |
| samples_per_step: 1 | |
| # Number of local JAX devices for optional synchronous data parallelism. | |
| devices: 1 | |
| shuffle: true | |
| drop_last: true | |
| # OneScience ERA5Dataset samples are prefetched on host threads while the | |
| # current DCU step runs. Keep the queue shallow for full 721x1440 fields. | |
| data_num_workers: 2 | |
| prefetch_batches: 1 | |
| # Full params/EMA/optimizer/reader state is always saved on clean exit. Set a | |
| # positive interval for periodic resumable checkpoints during long runs. | |
| checkpoint_interval: 0 | |
| learning_rate: 0.0001 | |
| optimizer: | |
| name: adam | |
| schedule: constant | |
| b1: 0.9 | |
| b2: 0.95 | |
| eps: 1.0e-6 | |
| # Optional piecewise constant schedule. Empty boundaries use base LR. | |
| rates: [] | |
| boundaries: [] | |
| # Public Experiment tracks an EMA for evaluation/checkpointing. Set to 0 to | |
| # disable; otherwise this is the effective average window in optimizer steps. | |
| ema_num_steps: 1000 | |
| rollout_schedule: [] | |
| # Public NeuralGCM uses transformed trajectory losses. The private job loss | |
| # bindings and complete normalization tables are unavailable, so every | |
| # published coefficient and every auditable fallback remain explicit here. | |
| gradient_clip_norm: 1.0 | |
| loss: | |
| backend: official | |
| # Supplementary G.4 deterministic objective coefficients: | |
| # 20*data MSE + 0.1*data spectrum MSE + 1*model MSE | |
| # + 0.1*model spectrum MSE + 2*batch spectral bias MSE. | |
| data_weight: 20.0 | |
| data_spectrum_weight: 0.1 | |
| model_weight: 1.0 | |
| model_spectrum_weight: 0.1 | |
| bias_weight: 2.0 | |
| accuracy_time_scale_hours: 24.0 | |
| spectral_time_scale_hours: 40.0 | |
| spectral_cutoff_by_mode: | |
| weather_forecast: 120 | |
| climate_scale: 80 | |
| forecast_2_8_deg: 42 | |
| # Optional exact PerVariableRescaling weights. Each value multiplies the | |
| # squared error. When null, factor/scale below multiplies the error. | |
| variable_weights: null | |
| # The paper uses ERA5 24-hour difference standard deviations, but does not | |
| # publish the complete numerical tables. These auditable fallbacks keep | |
| # physical variables balanced; replace them with statistics calculated | |
| # from the exact ERA5 training vintage for a precision reproduction. | |
| time_rescaling: legacy | |
| spectral_weight: 0.0 | |
| variable_scales: | |
| z: 10000.0 | |
| t: 30.0 | |
| u: 30.0 | |
| v: 30.0 | |
| specific_humidity: 0.01 | |
| specific_cloud_ice_water_content: 1.0e-5 | |
| specific_cloud_liquid_water_content: 2.0e-5 | |
| divergence: 0.1 | |
| vorticity: 0.1 | |
| log_surface_pressure: 0.1 | |
| default: 1.0 | |
| # Additional balancing factors stated explicitly in Supplementary G.3. | |
| variable_factors: | |
| z: 2.0 | |
| specific_humidity: 0.66 | |
| log_surface_pressure: 5.0 | |
| specific_cloud_ice_water_content: 0.05 | |
| specific_cloud_liquid_water_content: 0.05 | |
| default: 1.0 | |
| # Order 12 is exact. Absolute half-power cutoffs below are digitized from | |
| # Supplementary Fig. 8 because the underlying numeric table was not | |
| # released. Interpolation is performed at the configured output times. | |
| predictability_filter: | |
| enabled: true | |
| order: 12 | |
| lead_hours: [0, 6, 12, 24, 36, 48, 60, 72] | |
| cutoffs: | |
| temperature: [80, 120, 120, 95, 45, 35, 30, 25] | |
| wind: [80, 120, 115, 82, 48, 36, 29, 24] | |
| moisture: [80, 120, 110, 52, 34, 28, 24, 21] | |
| divergence: [80, 120, 105, 43, 24, 19, 16, 14] | |
| default: [80, 120, 115, 82, 48, 36, 29, 24] | |
| # Optional multiplicative weights for pressure levels, ordered as the | |
| # configured ERA5 pressure-level list. Empty means uniform weighting. | |
| level_weights: [] | |
| # Long-run reproduction settings inferred from the public paper description | |
| # and released training pseudocode. The paper's private job bindings are not | |
| # available, so these are explicit project settings rather than exact claims. | |
| # They are enabled only by --paper-defaults; CLI values remain highest priority. | |
| profiles: | |
| weather_forecast: | |
| max_steps: 25000 | |
| learning_rate: 0.001 | |
| optimizer: | |
| schedule: neuralgcm | |
| warmup_steps: 2000 | |
| decay_start: 15000 | |
| decay_steps: 10000 | |
| decay_rate: 0.5 | |
| rollout_schedule: | |
| - {trajectory_length: 2, until_step: 0} # 6 h | |
| - {trajectory_length: 3, until_step: 500} # 12 h | |
| - {trajectory_length: 4, until_step: 2000} # 18 h | |
| - {trajectory_length: 5, until_step: 4500} # 24 h | |
| - {trajectory_length: 7, until_step: 8000} # 36 h | |
| - {trajectory_length: 9, until_step: 12500} # 48 h | |
| - {trajectory_length: 11, until_step: 18000} # 60 h | |
| climate_scale: | |
| max_steps: 26000 | |
| learning_rate: 0.002 | |
| optimizer: | |
| rollout_schedule: | |
| - {trajectory_length: 3, until_step: 0} # 12 h | |
| - {trajectory_length: 5, until_step: 2000} # 24 h | |
| - {trajectory_length: 7, until_step: 5656} # 36 h | |
| - {trajectory_length: 9, until_step: 10392} # 48 h | |
| - {trajectory_length: 11, until_step: 16000} # 60 h | |
| - {trajectory_length: 13, until_step: 22360} # 72 h | |
| forecast_2_8_deg: | |
| max_steps: 38000 | |
| learning_rate: 0.002 | |
| optimizer: | |
| rollout_schedule: | |
| stochastic_1_4_deg: | |
| max_steps: 43000 | |
| learning_rate: 0.001 | |
| ensemble_size: 2 | |
| optimizer: | |
| rollout_schedule: | |
| - {trajectory_length: 2, until_step: 0} # 6 h | |
| - {trajectory_length: 3, until_step: 500} # 12 h | |
| - {trajectory_length: 4, until_step: 2000} # 18 h | |
| - {trajectory_length: 5, until_step: 4500} # 24 h | |
| - {trajectory_length: 7, until_step: 8000} # 36 h | |
| - {trajectory_length: 9, until_step: 12500} # 48 h | |
| - {trajectory_length: 11, until_step: 18000} # 60 h | |
| - {trajectory_length: 13, until_step: 24500} # 72 h | |
| - {trajectory_length: 17, until_step: 32000} # 96 h | |
| - {trajectory_length: 21, until_step: 40500} # 120 h | |
| loss: | |
| backend: crps | |
| variable_weights: null | |
| variable_scale: 1.0 | |
| nodal_time_scale_hours: 24.0 | |
| spectral_time_scale_hours: 40.0 | |
| spectral_max_wavenumber: 80 | |
| checkpoint: null | |
| gin_config: null | |
| train_dataset: null | |
| eval_dataset: null | |
| inference: | |
| mode: weather_forecast | |
| # Used by stochastic profiles; deterministic checkpoints ignore the key. | |
| seed: 20260904 | |
| # Memory-conscious default: eight 6-hour outputs reach forecast day 2. | |
| # Set --steps 60 to exercise the model's full 15-day capability. | |
| prediction_steps: 8 | |
| output_interval_hours: 6 | |
| # An official-format local model_bak.pkl takes precedence when present; | |
| # otherwise inference selects the profile's bundled checkpoint. | |
| checkpoint: data/checkpoint/model_bak.pkl | |
| output: results/predictions.nc | |
| runtime: | |
| platform: auto | |
| dcu_device: 0 | |