TimesFM
This model was released on 2023-10-14 and added to Hugging Face Transformers on 2025-04-16.
TimesFM
Section titled “TimesFM”
Overview
Section titled “Overview”TimesFM (Time Series Foundation Model) is a pretrained time-series foundation model proposed in A decoder-only foundation model for time-series forecasting by Abhimanyu Das, Weihao Kong, Rajat Sen, and Yichen Zhou. It is a decoder only model that uses non-overlapping patches of time-series data as input and outputs some output patch length prediction in an autoregressive fashion.
The abstract from the paper is the following:
Motivated by recent advances in large language models for Natural Language Processing (NLP), we design a time-series foundation model for forecasting whose out-of-the-box zero-shot performance on a variety of public datasets comes close to the accuracy of state-of-the-art supervised forecasting models for each individual dataset. Our model is based on pretraining a patched-decoder style attention model on a large time-series corpus, and can work well across different forecasting history lengths, prediction lengths and temporal granularities.
This model was contributed by kashif. The original code can be found here.
To use the model:
import numpy as npimport torchfrom transformers import TimesFmModelForPrediction
model = TimesFmModelForPrediction.from_pretrained( "google/timesfm-2.0-500m-pytorch", dtype=torch.bfloat16, attn_implementation="sdpa", device_map="auto")
# Create dummy inputsforecast_input = [ np.sin(np.linspace(0, 20, 100)), np.sin(np.linspace(0, 20, 200)), np.sin(np.linspace(0, 20, 400)),]frequency_input = [0, 1, 2]
# Convert inputs to sequence of tensorsforecast_input_tensor = [ torch.tensor(ts, dtype=torch.bfloat16).to(model.device) for ts in forecast_input]frequency_input_tensor = torch.tensor(frequency_input, dtype=torch.long).to(model.device)
# Get predictions from the pre-trained modelwith torch.no_grad(): outputs = model(past_values=forecast_input_tensor, freq=frequency_input_tensor, return_dict=True) point_forecast_conv = outputs.mean_predictions.float().cpu().numpy() quantile_forecast_conv = outputs.full_predictions.float().cpu().numpy()TimesFmConfig
Section titled “TimesFmConfig”[[autodoc]] TimesFmConfig
TimesFmModel
Section titled “TimesFmModel”[[autodoc]] TimesFmModel - forward
TimesFmModelForPrediction
Section titled “TimesFmModelForPrediction”[[autodoc]] TimesFmModelForPrediction - forward