CITRAS-FM

CITRAS-FM (Covariate-Informed Transformer for time series Foundation Modeling) is a tiny (7M-parameter) time series foundation model for covariate-informed zero-shot forecasting. It supports zero-shot forecasting on a single target variable or multiple target variables, with optional support for observed covariates (past-only) and known covariates (available throughout the forecast horizon). It delivers sub-0.1-second CPU inference.

Problem Setting

CITRAS-FM handles three types of input variables:

Variable Role Count Shape Available range Examples
Target Variable to forecast Ct (β‰₯1) (L, Ct) Historical window [1, L] Traffic amount
Observed covariate Exogenous variable influencing the target, available up to the prediction point Co (β‰₯0) (L, Co) Historical window [1, L] Weather
Known covariate Exogenous variable influencing the target, available from the past through the forecast horizon Ck (β‰₯0) (L+H, Ck) Full window [1, L+H] Calendar events
  • L: length of historical context
  • H: forecast horizon

Covariates are optional β€” the model works with targets only.

Performance β€” fev-bench (zero-shot)

fev-bench is a standardized benchmark for zero-shot time series forecasting covering 100 tasks across diverse domains and frequencies. Skill Score is computed relative to Scaled Quantile Loss of the SeasonalNaive baseline (0% = SeasonalNaive, higher is better).

Models with < 10M parameters

Model # Params (M) fev-all (%) ↑ fev-cov (%) ↑ fev-multi (%) ↑ fev-uni (%) ↑
CITRAS-FM 7.2 41.2 39.0 54.2 31.3
KAIROS_mini (Ant Group) 9.9 37.7 35.4 50.9 27.9
Chronos-Bolt_Tiny (Amazon) 8.7 35.9 32.9 49.8 26.4
YINGLONG_6m (Alibaba) 7.3 25.1 26.5 49.7 -6.2
TinyTimeMixer_r2 (IBM) 0.8 -1.1 -4.6 28.2 -27.5
SeasonalNaive 0 0.0 0.0 0.0 0.0

CITRAS-FM achieves the best accuracy among sub-10M tiny TSFMs on all splits, and outperforms several models with 20Γ— more parameters (TimesFM-2.5, COSMIC) in covariate-informed settings. See the GitHub README for the full benchmark tables.

Quick Start

pip install citras-fm
from citras_fm import CitrasFM

model = CitrasFM.from_pretrained("hitachi-nlp/citras-fm")
print(model.pred_len)    # 24
print(model.quantiles)   # [0.1, 0.2, ..., 0.9]

# Forecast a single 1-D series
import numpy as np
target = np.random.randn(512)
median, quantiles = model.forecast(target, horizon=24)
# median: shape (24,), quantiles: shape (24, 9)

To pin a specific checkpoint revision, pass revision= (an HF commit hash or a git tag):

model = CitrasFM.from_pretrained("hitachi-nlp/citras-fm", revision="ckpt-2026-06-26")

For multivariate / covariate-informed forecasting and fine-tuning, see the example notebooks in the GitHub repository (example_zeroshot.ipynb and example_finetune.ipynb).

Files in this repository

File Description
model.safetensors Model weights (state_dict, ~29 MB)
config.json Hyperparameters consumed by CITRAS.__init__

License

Citation

Yamaguchi et al., "CITRAS-FM: Tiny Time Series Foundation Model for Covariate-Informed Zero-Shot Forecasting,"
34th European Signal Processing Conference (EUSIPCO), 2026 (to appear).

Disclaimer

These pretrained weights are provided for research and non-commercial evaluation purposes only, "AS IS", without warranty of any kind, express or implied, including warranties of accuracy, reliability, fitness for a particular purpose, and non-infringement of third-party rights.

In no event shall the authors, contributors, or Hitachi, Ltd. be liable for any damages arising from the use of these weights or any predictions derived from them.

Forecasts produced by this model are probabilistic estimates and may be inaccurate. Do not use this model as the sole basis for safety-critical, mission-critical, life-critical, financial, or medical decisions.

Downloads last month
64
Safetensors
Model size
7.22M params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Paper for hitachi-nlp/citras-fm