TimerS1Forecaster
Timer-S1 forecaster via Hugging Face transformers.
Quickstart
from sktime.forecasting.timer_s1 import TimerS1Forecaster
estimator = TimerS1Forecaster(model_path='bytedance-research/Timer-S1', config=None, device_map='cpu', dtype=None, quantization_config=None, forward_kwargs=None, deterministic=False)Parameters(7)
- model_pathstr, default=”bytedance-research/Timer-S1”
Hugging Face repository identifier or local path to a Timer-S1 checkpoint. If
None, a model is created fromconfig.- configTimerS1Config or dict, optional (default=None)
Model configuration used when
model_path=None. If provided as adict, it is converted withTimerS1Config.from_dict. IfNoneandmodel_path=None, the defaultTimerS1Configis used. This path creates random weights; the estimator does not currently provide training for those weights.- device_mapstr, dict, int, or torch.device, default=”cpu”
Device placement following the
transformersdevice_mapnaming convention, for example"cpu","cuda","cuda:0", or"auto".- dtypetorch.dtype or str, optional (default=None)
Data type used for model loading, following the
transformersdtypeconvention, for exampletorch.float16,torch.bfloat16, or"auto".- quantization_configtransformers.quantizers.HfQuantizer, optional
Valid quantization configuration object compatible with
transformers.PreTrainedModel.from_pretrained[3].- forward_kwargsdict, optional (default=None)
Additional keyword arguments forwarded to
model.generate(...)duringpredictandpredict_quantiles.- deterministicbool, default=False
Whether point predictions should reset the
transformersrandom seed before generation. Currently this is applied in predict methods.
Examples
Simple zero-shot forecasting with the default Timer-S1 checkpoint:
>>> from sktime.datasets import load_airline
>>> from sktime.forecasting.timer_s1 import TimerS1Forecaster
>>> y = load_airline ()
>>> # By default, loads bytedance-research/Timer-S1.
>>> forecaster = TimerS1Forecaster ()
>>> forecaster. fit (y)
>>> y_pred = forecaster. predict (fh = [1, 2, 3 ]) Reduced-memory inference for the 8-billion-parameter model:
>>> import torch
>>> from sktime.datasets import load_airline
>>> from sktime.forecasting.timer_s1 import TimerS1Forecaster
>>> from transformers import BitsAndBytesConfig
>>> y = load_airline ()
>>> forecaster = TimerS1Forecaster (
... model_path = "bytedance-research/Timer-S1",
... forward_kwargs = { "revin": True },
... device_map = "auto",
... dtype = torch. bfloat16,
... quantization_config = BitsAndBytesConfig (load_in_8bit = True),
... )
>>> forecaster. fit (y)
>>> y_pred = forecaster. predict (fh = [1, 2, 3 ]) Loading a quantized smaller model directly:
>>> from sktime.datasets import load_airline
>>> from sktime.forecasting.timer_s1 import TimerS1Forecaster
>>> y = load_airline ()
>>> forecaster = TimerS1Forecaster (
... model_path = "geetu040/Timer-S1-quantized-4bit",
... )
>>> forecaster. fit (y)
>>> y_pred = forecaster. predict (fh = [1, 2, 3 ]) Randomly initialized local model, useful for tests or local experimentation. This model is not trained by fit; the weights stay random and should not be used as a trained forecaster:
>>> from sktime.forecasting.timer_s1 import TimerS1Forecaster
>>> forecaster = TimerS1Forecaster (
... model_path = None,
... config = {
... "hidden_size": 16,
... "intermediate_size": 16,
... "num_attention_heads": 4,
... "num_experts": 4,
... "num_hidden_layers": 1,
... "num_mtp_tokens": 1,
... },
... deterministic = True,
... ) Quantile prediction:
>>> from sktime.datasets import load_airline
>>> from sktime.forecasting.timer_s1 import TimerS1Forecaster
>>> y = load_airline ()
>>> forecaster = TimerS1Forecaster (
... model_path = "geetu040/Timer-S1-quantized-4bit",
... )
>>> forecaster. fit (y)
>>> y_pred = forecaster. predict_quantiles (
... fh = [1, 2, 3 ],
... alpha = [0.1, 0.5, 0.9 ],
... )References
- [1 ] Liu, Y., Su, X., Wang, S., Zhang, H., Liu, H., Wang, Y., Ye, Z., Xiang, Y., Wang, J., and Long, M. (2026). Timer-S1: A Billion-Scale Time Series Foundation Model with Serial Scaling. arXiv. https://arxiv.org/abs/2603.04791 [2 ] Timer-S1 model card: https://huggingface.co/bytedance-research/Timer-S1 [3 ] Quantization docs: https://huggingface.co/docs/transformers/en/main_classes/quantization