TimesFM3#
- class sdm.models.TimesFM3(pretrained: bool = True, accept_license: bool = False, device: device | str | None = None)#
Bases:
ICLModelThe multivariate forecasting foundation model from “TimesFM-3: A Zero-shot Foundation Model for Multivariate Forecasting”.
TimesFM3is a zero-shot time-series foundation model for multivariate forecasting. It extends earlier univariate TimesFM models with native support for jointly forecasting multiple coevolving target series, incorporating historical covariates, and using dynamic covariates that are known across both the past and future forecast horizon.Architecturally, it combines patch-based time-series tokenization with alternating causal temporal attention and full variate attention, allowing forecasts to use both within-series history and cross-series dependencies. It decodes the full forecast horizon in a single forward pass and returns nine quantile forecasts, from the 10th to the 90th percentile, for each target series and query time step.
Within the
ICLModelprotocol,TimesFM3treats rows as ordered time steps. In a default forward pass,x_contextcontains historical covariates,y_contextcontains one or more past target series, andx_querycontains future-known covariates (which must also be present inx_context).Note
TimesFMmodel weights are distributed under the TimesFM Non-Commercial License v1.0. Before downloading pretrained weights, users must accept the license either interactively when prompted or explicitly viaaccept_license=True.- Parameters:
pretrained (bool) – Whether to load the pretrained checkpoint.
accept_license (bool) – Whether to accept the TimesFM Non-Commercial License v1.0 without showing the interactive license prompt.
device (torch.device | str | None) – The device.
Capabilities#
Supported Input Semantic Types |
|
Supported Target Semantic Types |
|
Supported Prediction Tasks |
|
Multi-Target Support |
✅ |
Context-only Column Support |
✅ |
Related Table Support |
❌ |
Default Recipe#
Recipe(
features=Identity(),
target=Identity(),
output=Sequential(
SortQuantiles(num_quantiles=9),
AverageEstimators(),
),
)