Skip to content

Back to the catalog

Ensemble forecasting with IBM Granite time-series models
huggingface.coarticle

Ensemble forecasting with IBM Granite time-series models

Granite Timeseries Ensemble (ibm-granite/granite-timeseries-ensemble-r1) combines four pre-trained Granite forecasters into zero-shot median and quantile forecasts, with no retraining or fitted weights. It offers a Probabilistic Ensemble (uniform pooling) and an adaptive IQR Ensemble. On 97 GIFT-Eval configurations the Probabilistic Ensemble gets MASE 0.683 versus 0.685 for PatchTST-FM-r2; the post also covers code, limits and backtesting advice.

TL;DR Shows how to load and use IBM's four-model Granite time-series ensemble for zero-shot quantile forecasts, with GIFT-Eval results and caveats.
Document

What it claims

Granite Timeseries Ensemble (ibm-granite/granite-timeseries-ensemble-r1) packages four pre-trained Granite forecasters behind one QuantileEnsembleForecaster call. It returns a point forecast and quantiles from 0.1 to 0.9 with no fine-tuning and no weights fitted on past errors. IBM Research presents it as a robust default rather than a leaderboard winner: the MASE gain over the best single member, PatchTST-FM-r2, is 0.683 versus 0.685. The post cites PatchTST-FM-r1, PatchTST-FM-r2, FlowState and Tiny Time Mixers as background for the member architectures.

How it works

Each member emits quantile forecasts, and one of two rules merges them.

flowchart LR
  A[PatchTST-FM-r1] --> P
  B[PatchTST-FM-r2] --> P
  C[FlowState] --> P
  D[Tiny Time Mixers] --> P
  P{Aggregation rule} -->|default| U[Uniform probability pooling]
  P -->|recipes/granite-iqr| I[IQR-weighted pooling]
  U --> O[Median + quantiles]
  I --> O

The Probabilistic Ensemble gives every member equal weight. It pools their quantiles in probability space and reads off the requested quantiles, so there is nothing to tune. The IQR Ensemble weights each member by the inverse of its forecast spread. It estimates each member's interquartile range from the quantiles nearest the 25th and 75th percentiles. Weights vary per sample, target and horizon step. Isotonic regression stops the combined quantiles from crossing. The IQR recipe exposes a temperature (higher values push weights toward uniform) and an optional cap on any single member's weight.

Evidence

The evaluation covers 97 GIFT-Eval configurations, all zero-shot, with test targets not used to choose or fit the aggregation. Scores are normalized to Seasonal Naive, geometrically averaged and taken from the leaderboard on 20 October 2026.

  • Both ensembles beat all four members on aggregate MASE and on average MASE rank.
  • PatchTST-FM-r2 keeps the best aggregate CRPS/MWQL.
  • The IQR Ensemble has the best average CRPS rank of the six forecasts. The Probabilistic Ensemble ranks behind PatchTST-FM-r2 on that measure.
  • Among eligible systems the ensemble ranks 3rd on both MASE rank and CRPS rank. Eligible means replication code, no declared test leakage, not fine-tuned and permissively licensed. Some excluded systems score better.

Ranks are computed against the full leaderboard, so they will shift as entries are added.

How to use it

pip install "granite-tsfm>=0.3.11"
from tsfm_public.models.ensemble.modeling_ensemble import QuantileEnsembleForecaster
ensemble = QuantileEnsembleForecaster.from_pretrained(
    "ibm-granite/granite-timeseries-ensemble-r1",
)
result = ensemble(
    df.tail(1024),
    timestamp_column="date",
    target_columns=["OT"],
    context_length=1024,
    prediction_length=24,
)
print(result.prediction_outputs) # point forecast
print(result.quantile_outputs)   # quantiles

To load the IQR recipe, add subfolder="recipes/granite-iqr". The repository stores only the ensemble configuration and downloads the four member checkpoints on first run. A shared Forecaster interface accepts compatible external models, so members or aggregation can change while the output format stays the same.

The post recommends a backtest before adoption:

  1. Use forecast origins, horizons and series that match production.
  2. Compare both ensembles against PatchTST-FM-r2 on the same windows.
  3. Check quantile loss as well as MASE.
  4. Check empirical coverage of the 0.1 to 0.9 interval against its nominal 80%.
  5. Record runtime and memory.

Limits

  • Multivariate channels are forecast independently, with no cross-channel information.
  • Loading four checkpoints raises inference time and memory compared with a single member.
  • Members differ in context limits, horizons, preprocessing and missing-value handling.
  • Neither aggregation rule guarantees calibration or robustness under distribution shift.
  • IQR weighting can favor an overconfident member, because a narrow interval is not necessarily an accurate one.
  • The default recipe and members are permissively licensed. The expanded recipes with extra IBM Research checkpoints carry non-commercial and research-use restrictions, so each member's model card needs checking.

Organisations named here

  • IBM Research
  • IBM
  • Hugging Face
  • ECMWF
  • NOAA
  • ETTh1
  • Granite Timeseries Ensemble

Technologies named here

  • Granite TSFM
  • Granite Timeseries Ensemble r1
  • PatchTST-FM-r2
  • QuantileEnsembleForecaster
  • PatchTST-FM-r1
  • Forecaster interface
  • FlowState
  • GIFT-Eval
  • Tiny Time Mixers
  • Hugging Face
  • Python

Techniques named here

  • Probabilistic Ensemble
  • IQR Ensemble
  • Multi-model ensemble forecasting