chronos-bolt-tiny / README.md
abdulfatir's picture
initial commit
6904c2c
|
raw
history blame
4.7 kB
metadata
license: apache-2.0
pipeline_tag: time-series-forecasting
tags:
  - time series
  - forecasting
  - pretrained models
  - foundation models
  - time series foundation models
  - time-series

Chronos-Bolt-Tiny

Chronos-Bolt is a family of pretrained time series forecasting models which can be used for zero-shot forecasting. Chronos-Bolt models are based on the T5 architecture and are available in the following sizes.

Usage with AutoGluon

Chronos-Bolt models will be available in the next stable release of AutoGluon, so the following instructions will only work once AutoGluon 1.2 has been released.

The recommended way of using Chronos for production use cases is through AutoGluon, which features effortless fine-tuning, ensembling with other statistical and machine learning models for time series forecasting as well as seamless deployments on AWS with SageMaker. Check out the AutoGluon Chronos tutorial.

A minimal example showing how to perform zero-shot inference using Chronos-Bolt with AutoGluon:

pip install autogluon
from autogluon.timeseries import TimeSeriesPredictor, TimeSeriesDataFrame

df = TimeSeriesDataFrame("https://autogluon.s3.amazonaws.com/datasets/timeseries/m4_hourly/train.csv")

predictor = TimeSeriesPredictor(prediction_length=48).fit(
    df,
    hyperparameters={
        "Chronos": {"model_path": "amazon/chronos-bolt-tiny"},
    },
)

predictions = predictor.predict(df)

Usage with inference library

Alternatively, you can install the package in the GitHub companion repo. This is intended for research purposes and provides a minimal interface to Chronos models. Install the library by running:

pip install git+https://github.com/amazon-science/chronos-forecasting.git

A minimal example showing how to perform inference using Chronos-Bolt models:

import pandas as pd  # requires: pip install pandas
import torch
from chronos import BaseChronosPipeline

pipeline = BaseChronosPipeline.from_pretrained(
    "amazon/chronos-bolt-tiny",
    device_map="cuda",  # use "cpu" for CPU inference and "mps" for Apple Silicon
    torch_dtype=torch.bfloat16,
)

df = pd.read_csv(
    "https://raw.githubusercontent.com/AileenNielsen/TimeSeriesAnalysisWithPython/master/data/AirPassengers.csv"
)

# context must be either a 1D tensor, a list of 1D tensors,
# or a left-padded 2D tensor with batch as the first dimension
# Chronos-Bolt models generate quantile forecasts, so forecast has shape
# [num_series, num_quantiles, prediction_length].
forecast = pipeline.predict(
    context=torch.tensor(df["#Passengers"]), prediction_length=12
)

Citation

If you find Chronos or Chronos-Bolt models useful for your research, please consider citing the associated paper:

@article{ansari2024chronos,
  author  = {Ansari, Abdul Fatir and Stella, Lorenzo and Turkmen, Caner and Zhang, Xiyuan, and Mercado, Pedro and Shen, Huibin and Shchur, Oleksandr and Rangapuram, Syama Syndar and Pineda Arango, Sebastian and Kapoor, Shubham and Zschiegner, Jasper and Maddix, Danielle C. and Mahoney, Michael W. and Torkkola, Kari and Gordon Wilson, Andrew and Bohlke-Schneider, Michael and Wang, Yuyang},
  title   = {Chronos: Learning the Language of Time Series},
  journal = {arXiv preprint arXiv:2403.07815},
  year    = {2024}
}

License

This project is licensed under the Apache-2.0 License.