TimesFM 2.5-BSRN (L = 60)
LoRA fine-tune of google/timesfm-2.5-200m-pytorch on pooled Baseline Surface Radiation Network (BSRN) one-minute clear-sky index (κ) series, exported as merged weights for inference with the native TimesFM 2.0 PyTorch API. This checkpoint is TimesFM-BSRN at context length 60 minutes, forecasting the next 15 one-minute κ values (median head). It corresponds to the full-pass adapter selected at minimum validation MSE during one shuffled pass over 4,751,831 training origins.
Code and evaluation layout: github.com/dazhiyang/tsfm-solar-2
Files in this repository
| File | Role |
|---|---|
model.safetensors |
Merged model weights (LoRA updates applied to the base checkpoint). |
training_manifest.json |
Training provenance, base revision, hold-out station-years, best step, and task lengths. |
Training summary
| Field | Value |
|---|---|
| Base model | google/timesfm-2.5-200m-pytorch |
| Base revision | 1d952420fba87f3c6dee4f240de0f1a0fbc790e3 |
| Fine-tuning | LoRA (one pass, no replacement), batch size 64, learning rate 1×10⁻⁵ |
| Context / horizon | 60 / 15 minutes (κ) |
| Best optimizer step | 58,000 (selected by minimum validation MSE on 2,048 fixed origins) |
| Training origins | 4,751,831 (15-minute origin grid; station-years in manifest excluded from training) |
| Loss | Median-quantile MSE on κ (native TimesFM training path) |
Hold-out station-years used for the five-station Köppen comparison (ASP 2018, QIQ 2025, PAL 2023, KWA 2002, SYO 2024) are listed in training_manifest.json and were not used for weight updates.
Requirements
- Python 3.10+ (project uses a
tf_timesfmconda environment) - Pinned base weights:
google/timesfm-2.5-200m-pytorchat the revision above (huggingface_hub) - Native package:
timesfm2.0.x (see tsfm-solar-2 scripts) - GPU: MPS or CUDA recommended; CPU is possible but slow
This is not a transformers AutoModel checkpoint. Load through the project's Code/3.3.forecast_timesfm.py helper, which reads training_manifest.json and model.safetensors.
Quick start
git clone https://github.com/dazhiyang/tsfm-solar-2.git
cd tsfm-solar-2
pip install huggingface_hub # plus timesfm, torch, peft per your env
huggingface-cli download dazhiyang/timesfm-2.5-bsrn-l60 \
--local-dir Data/models/timesfm-2.5-full-L60
python -B Code/3.3.forecast_timesfm.py --self-test
python -B Code/3.3.forecast_timesfm.py \
--checkpoint-dir Data/models/timesfm-2.5-full-L60 \
--stations QIQ --years 2025 --max-origins 32 --no-save
Forecast exports use prefix timesfm_ft_full and history length 60 in filenames under Data/result/ when saving is enabled.
Data and license
- Training data: BSRN station-to-archive files processed to one-minute κ; access via bsrn.awi.de. This repository distributes model weights only, not BSRN observations.
- Checkpoint license: MIT (same as tsfm-solar-2).
- Base model: subject to Google's terms for TimesFM.
Citation
If you use this checkpoint, cite the associated manuscript and acknowledge BSRN (Driemel et al., 2018, https://doi.org/10.5194/essd-10-1491-2018).