Skip to content

Catalog

117 models a TServe process can load. The server always loads naive, a no-download baseline for testing. Name a catalog model as a leftover positional for a real forecast. GET /models reports what did. The same model goes in leftover CLI positionals and in a request's model field.

Dependencies

The extra name is the CPU image tag. GPU tags are {extra}-gpu. There is no :base-gpu.

kronos is built on base, so it cannot load Chronos Bolt, TTM, or TimesFM. hub can, and so can every extra that includes it: chronos, granite, moirai, tirex, tirex2, toto, mantis, timesfm3, t0, tafsut, and full.

full is chronos, kronos, granite, moirai, tirex, tirex2, toto, mantis, timesfm3, t0, and tafsut. client, http, dev, docs, and all-extras are not model families. Moirai pins gluonts, lightning, and hydra-core when python_version < '3.14'.

added counts checkpoints that extra contributes. full is the total, including naive.

extra CPU tag GPU tag families added example
server :base — Naive 1 naive
hub :hub :hub-gpu Chronos Bolt, Chronos T5, TTM, TimesFM 2.x 81 chronos_bolt
chronos :chronos :chronos-gpu Chronos-2 3 chronos_2
kronos :kronos :kronos-gpu Kronos, WindFM 5 kronos
granite :granite :granite-gpu FlowState 2 flowstate
moirai :moirai :moirai-gpu Moirai 2, Moirai 1.x, Lag-Llama 8 moirai_2
tirex :tirex :tirex-gpu TiRex 2 tirex
tirex2 :tirex2 :tirex2-gpu TiRex-2 4 tirex_2
toto :toto :toto-gpu Toto-2 5 toto_2_0_4m
mantis :mantis :mantis-gpu Mantis 3 mantis_8m
timesfm3 :timesfm3 :timesfm3-gpu TimesFM 3 1 timesfm_3
t0 :t0 :t0-gpu T0 1 t0
tafsut :tafsut :tafsut-gpu Tafsut 1 tafsut
full :full :full-gpu all of the above 117 chronos_2

Start a server

naive only — a test baseline, nothing downloaded. Full page: base.

docker run --rm -p 8000:8000 sktime/tserve:base
uv pip install "tserve[server]"
uv run tserve
pip install "tserve[server]"
tserve

Chronos Bolt, Chronos T5, TTM, TimesFM 2.x: 81 models, plus naive. Full page: hub.

docker run --rm -p 8000:8000 sktime/tserve:hub chronos_bolt
uv pip install "tserve[server,hub]"
uv run tserve chronos_bolt
pip install "tserve[server,hub]"
tserve chronos_bolt

Chronos-2, plus every hub model. Full page: chronos.

docker run --rm -p 8000:8000 sktime/tserve:chronos chronos_2
uv pip install "tserve[server,chronos]"
uv run tserve chronos_2
pip install "tserve[server,chronos]"
tserve chronos_2

Kronos and WindFM. Sits on base, so no Hub models. Full page: kronos.

docker run --rm -p 8000:8000 sktime/tserve:kronos kronos
uv pip install "tserve[server,kronos]"
uv run tserve kronos
pip install "tserve[server,kronos]"
tserve kronos

FlowState, plus every hub model. Full page: granite.

docker run --rm -p 8000:8000 sktime/tserve:granite flowstate
uv pip install "tserve[server,granite]"
uv run tserve flowstate
pip install "tserve[server,granite]"
tserve flowstate

Moirai 2, Moirai 1.x, Lag-Llama, plus every hub model. Full page: moirai.

docker run --rm -p 8000:8000 sktime/tserve:moirai moirai_2
uv pip install "tserve[server,moirai]"
uv run tserve moirai_2
pip install "tserve[server,moirai]"
tserve moirai_2

TiRex, plus every hub model. Full page: tirex.

docker run --rm -p 8000:8000 sktime/tserve:tirex tirex
uv pip install "tserve[server,tirex]"
uv run tserve tirex
pip install "tserve[server,tirex]"
tserve tirex

Toto-2, plus every hub model. Full page: toto.

docker run --rm -p 8000:8000 sktime/tserve:toto toto_2_0_4m
uv pip install "tserve[server,toto]"
uv run tserve toto_2_0_4m
pip install "tserve[server,toto]"
tserve toto_2_0_4m

Mantis, plus every hub model. Needs past longer than 127 rows. Full page: mantis.

docker run --rm -p 8000:8000 sktime/tserve:mantis mantis_8m
uv pip install "tserve[server,mantis]"
uv run tserve mantis_8m
pip install "tserve[server,mantis]"
tserve mantis_8m

TimesFM 3, plus every hub model. Full page: timesfm3.

docker run --rm -p 8000:8000 sktime/tserve:timesfm3 timesfm_3
uv pip install "tserve[server,timesfm3]"
uv run tserve timesfm_3
pip install "tserve[server,timesfm3]"
tserve timesfm_3

TiRex-2, plus every hub model. Full page: tirex2.

docker run --rm -p 8000:8000 sktime/tserve:tirex2 tirex_2
uv pip install "tserve[server,tirex2]"
uv run tserve tirex_2
pip install "tserve[server,tirex2]"
tserve tirex_2

T0, plus every hub model. The checkpoint is gated. Full page: t0.

docker run --rm -p 8000:8000 sktime/tserve:t0 t0
uv pip install "tserve[server,t0]"
uv run tserve t0
pip install "tserve[server,t0]"
tserve t0

Tafsut, plus every hub model. Full page: tafsut.

docker run --rm -p 8000:8000 sktime/tserve:tafsut tafsut
uv pip install "tserve[server,tafsut]"
uv run tserve tafsut
pip install "tserve[server,tafsut]"
tserve tafsut

All 117 models, and the only way to mix two family stacks. Full page: full.

docker run --rm -p 8000:8000 sktime/tserve:full \
  chronos_2 tirex kronos
uv pip install "tserve[server,full]"
uv run tserve chronos_2 tirex kronos
pip install "tserve[server,full]"
tserve chronos_2 tirex kronos

Predict

curl -s http://127.0.0.1:8000/predict -H "Content-Type: application/json" -d '{
  "past": {
    "timestamp": ["2024-01-01", "2024-01-02", "2024-01-03", "2024-01-04", "2024-01-05"],
    "sales": [120, 135, 128, 142, 138]
  },
  "time": "timestamp",
  "target": ["sales"],
  "fh": 3,
  "model": "chronos_bolt"
}'
curl.exe -s http://127.0.0.1:8000/predict -H "Content-Type: application/json" -d '{"past":{"timestamp":["2024-01-01","2024-01-02","2024-01-03","2024-01-04","2024-01-05"],"sales":[120,135,128,142,138]},"time":"timestamp","target":["sales"],"fh":3,"model":"chronos_bolt"}'
from tserve.client import Client

past = {
    "timestamp": ["2024-01-01", "2024-01-02", "2024-01-03", "2024-01-04", "2024-01-05"],
    "sales": [120, 135, 128, 142, 138],
}

with Client("http://127.0.0.1:8000") as client:
    result = client.predict(
        past=past,
        time="timestamp",
        target=["sales"],
        fh=3,
        model="chronos_bolt",
    )
print(result.predictions)

Only model changes between extras. Python needs the client extra on the caller. Every field, format, and response shape: Data specification.

All models

Naive

NaiveForecaster extra server 1 model

Drift strategy. No weights, no Hugging Face download. Always loaded so you can test the server; name another catalog model for a real forecast.

model checkpoint
naive none

Chronos Bolt

ChronosForecaster extra hub 4 models
model checkpoint
chronos_bolt amazon/chronos-bolt-tiny
chronos_bolt_mini amazon/chronos-bolt-mini
chronos_bolt_small amazon/chronos-bolt-small
chronos_bolt_base amazon/chronos-bolt-base

Chronos T5

ChronosForecaster extra hub 5 models

The original Chronos line.

model checkpoint
chronos_t5 amazon/chronos-t5-tiny
chronos_t5_mini amazon/chronos-t5-mini
chronos_t5_small amazon/chronos-t5-small
chronos_t5_base amazon/chronos-t5-base
chronos_t5_large amazon/chronos-t5-large

TTM

TinyTimeMixerForecaster extra hub 70 models

IBM Granite Tiny Time Mixers. Models are {revision}-{context}-{horizon}, with optional -lite or -l1. The four short models instead take the forecaster default revision, and ttm its default repo too.

TTM defaults

model repo revision
ttm forecaster default (ibm/TTM) forecaster default (main)
ttm_r1 ibm-granite/granite-timeseries-ttm-r1 forecaster default (main)
ttm_r2 ibm-granite/granite-timeseries-ttm-r2 forecaster default (main)
ttm_r3 ibm-granite/granite-timeseries-ttm-r3 forecaster default (main)

TTM r1

ibm-granite/granite-timeseries-ttm-r1

model context horizon
ttm_r1_512_96 512 96
ttm_r1_1024_96 1024 96

TTM r2

ibm-granite/granite-timeseries-ttm-r2

model context horizon
ttm_r2_512_96 512 96
ttm_r2_512_192 512 192
ttm_r2_512_336 512 336
ttm_r2_512_720 512 720
ttm_r2_1024_96 1024 96
ttm_r2_1024_192 1024 192
ttm_r2_1024_336 1024 336
ttm_r2_1024_720 1024 720
ttm_r2_1536_96 1536 96
ttm_r2_1536_192 1536 192
ttm_r2_1536_336 1536 336
ttm_r2_1536_720 1536 720

TTM r2.1

Same Hub repo as r2. -l1 is the L1 checkpoint.

model context horizon variant
ttm_r2_1_52_16 52 16
ttm_r2_1_52_16_l1 52 16 L1
ttm_r2_1_90_30 90 30
ttm_r2_1_90_30_l1 90 30 L1
ttm_r2_1_180_60_l1 180 60 L1
ttm_r2_1_360_60_l1 360 60 L1
ttm_r2_1_512_48 512 48
ttm_r2_1_512_48_l1 512 48 L1
ttm_r2_1_512_96 512 96
ttm_r2_1_512_96_l1 512 96 L1

TTM r3

ibm-granite/granite-timeseries-ttm-r3. Each model has a -lite sibling.

model lite context horizon
ttm_r3_52_16 ttm_r3_52_16_lite 52 16
ttm_r3_90_30 ttm_r3_90_30_lite 90 30
ttm_r3_156_16 ttm_r3_156_16_lite 156 16
ttm_r3_180_60 ttm_r3_180_60_lite 180 60
ttm_r3_360_60 ttm_r3_360_60_lite 360 60
ttm_r3_512_30 ttm_r3_512_30_lite 512 30
ttm_r3_512_48 ttm_r3_512_48_lite 512 48
ttm_r3_512_96 ttm_r3_512_96_lite 512 96
ttm_r3_512_336 ttm_r3_512_336_lite 512 336
ttm_r3_768_48 ttm_r3_768_48_lite 768 48
ttm_r3_1024_48 ttm_r3_1024_48_lite 1024 48
ttm_r3_1024_96 ttm_r3_1024_96_lite 1024 96
ttm_r3_1024_720 ttm_r3_1024_720_lite 1024 720
ttm_r3_1536_96 ttm_r3_1536_96_lite 1536 96
ttm_r3_1536_720 ttm_r3_1536_720_lite 1536 720
ttm_r3_2048_96 ttm_r3_2048_96_lite 2048 96
ttm_r3_2048_720 ttm_r3_2048_720_lite 2048 720
ttm_r3_2560_96 ttm_r3_2560_96_lite 2560 96
ttm_r3_2560_720 ttm_r3_2560_720_lite 2560 720
ttm_r3_3072_96 ttm_r3_3072_96_lite 3072 96
ttm_r3_3072_720 ttm_r3_3072_720_lite 3072 720

TimesFM 2.x

TimesFM2Forecaster extra hub 2 models

Quantile levels are the ones the checkpoint config ships.

model checkpoint
timesfm_2_5 google/timesfm-2.5-200m-transformers
timesfm_2 google/timesfm-2.0-500m-pytorch

TimesFM 3

The registry sets license_accepted=True. Weights use the TimesFM non-commercial license. Point forecasts are the median. Native quantile levels are 0.1 through 0.9.

model checkpoint
timesfm_3 google/timesfm-3.0-pytorch

T0

T0Forecaster extra t0 1 model

The registry sets license_accepted=True. The checkpoint is gated. Each target is forecast on its own. Point forecasts are the median.

model checkpoint
t0 theforecastingcompany/t0-alpha

Tafsut

TafsutForecaster extra tafsut 1 model

Native quantile levels are 0.1 through 0.9.

model checkpoint
tafsut Tafsut-FM/tafsut-univariate-base

Chronos-2

Chronos2Forecaster extra chronos 3 models
model checkpoint
chronos_2 amazon/chronos-2
chronos_2_small autogluon/chronos-2-small
chronos_2_synth autogluon/chronos-2-synth

Kronos

KronosForecaster extra kronos 3 models

The tokenizer ships with the model, not as a separate model.

model checkpoint
kronos NeoQuasar/Kronos-small
kronos_mini NeoQuasar/Kronos-mini
kronos_base NeoQuasar/Kronos-base

WindFM

WindFMForecaster extra kronos 2 models
model checkpoint
windfm NeoQuasar/WindFM
windfm_robust NeoQuasar/WindFM-robust

FlowState

FlowStateForecaster extra granite 2 models

Revision pinned to r1.1.

model checkpoint
flowstate ibm-research/flowstate
flowstate_granite ibm-granite/granite-timeseries-flowstate-r1

Moirai 2

Moirai2Forecaster extra moirai 1 model
model checkpoint
moirai_2 Salesforce/moirai-2.0-R-small

Moirai 1.x

MOIRAIForecaster extra moirai 6 models
model checkpoint
moirai_1_0_r_small Salesforce/moirai-1.0-R-small
moirai_1_0_r_base Salesforce/moirai-1.0-R-base
moirai_1_0_r_large Salesforce/moirai-1.0-R-large
moirai_1_1_r_small Salesforce/moirai-1.1-R-small
moirai_1_1_r_base Salesforce/moirai-1.1-R-base
moirai_1_1_r_large Salesforce/moirai-1.1-R-large

Lag-Llama

LagLlamaForecaster extra moirai 1 model
model checkpoint
lagllama time-series-foundation-models/Lag-Llama

TiRex

TiRexForecaster extra tirex 2 models

The registry sets license_accepted=True.

model checkpoint
tirex NX-AI/TiRex
tirex_1_1_gifteval NX-AI/TiRex-1.1-gifteval

TiRex-2

TiRex2Forecaster extra tirex2 4 models

Native quantile levels are 0.1 through 0.9. The three decontaminated checkpoints are gated on Hugging Face.

model checkpoint
tirex_2 NX-AI/TiRex-2
tirex_2_gifteval_zs NX-AI/TiRex-2-gifteval-zs
tirex_2_gifteval_pretrain NX-AI/TiRex-2-gifteval-pretrain
tirex_2_fevbench NX-AI/TiRex-2-fevbench

Toto-2

Toto2Forecaster extra toto 5 models
model checkpoint
toto_2_0_4m Datadog/Toto-2.0-4m
toto_2_0_22m Datadog/Toto-2.0-22m
toto_2_0_313m Datadog/Toto-2.0-313m
toto_2_0_1b Datadog/Toto-2.0-1B
toto_2_0_2_5b Datadog/Toto-2.0-2.5B

Mantis

MantisForecaster extra mantis 3 models

Embeddings plus an sklearn head. context_length is 127, so past must be longer than that.

model checkpoint
mantis paris-noah/MantisV2
mantis_8m paris-noah/Mantis-8M
mantis_plus paris-noah/MantisPlus

Capabilities

Every capability is read from the estimator, not set by a TServe flag. Multivariate is more than one target; exogenous is a covariate the model actually uses instead of ignoring; quantiles are prediction intervals (HTTP, Python).

family multivariate exogenous quantiles
Naive
Chronos-2
Chronos Bolt
Chronos T5
TTM
TimesFM 2.x
TimesFM 3
T0
Tafsut
Kronos
WindFM
FlowState
Moirai 2
Moirai 1.x
Lag-Llama
TiRex
TiRex-2
Toto-2
Mantis

Where to next

  • Run a server


    Flags, Server, server.app, and the process lifecycle.

    Server

  • Docker


    Tags, Hugging Face token, cache volume, GPU, and building images.

    Docker

  • Send predictions


    JSON over POST /predict, or native tables from Python.

    HTTP or Python

  • Beyond the catalog


    Craft specs, live objects, and saved .zip models.

    Craft specs