See More, Forecast Better and Faster: Enhancing Time Series Foundation Models via Inference-Time Plug-and-Play Downsampling
This repository contains the official implementation of SPRINT, accepted at ICML 2026:
See More, Forecast Better and Faster: Enhancing Time Series Foundation Models via Inference-Time Plug-and-Play Downsampling
SPRINT is a training-free, plug-and-play inference-time framework that enhances Time Series Foundation Models (TSFMs) for long-term and ultra-long-term forecasting.
This codebase is built upon TSLib / Time-Series-Library (https://github.com/thuml/Time-Series-Library).
README.md
run.py
scripts/
Base.sh
SPRINT.sh
models/
SPRINT.py
Base.py
...
dataset/
ETTh1.csv
Service.csv
foundation_models/
...
models/SPRINT.py: the implementation of SPRINT.scripts/Base.sh: zero-shot evaluation scripts for base TSFMs.scripts/SPRINT.sh: zero-shot evaluation scripts for TSFMs + SPRINT.dataset/: datasets used by the scripts (see below).foundation_models/: downloaded TSFM checkpoints / assets (see below).
Important
SPRINT is training-free. Please run everything in zero-shot mode with --is_training 0 (already the default in our scripts).
This repo follows the dependency conventions of Time-Series-Library and the selected TSFMs.
In practice you need at least: python>=3.10, torch, numpy, pandas, einops, and torchcubicspline.
Some TSFMs depend on transformers with specific versions. We summarize the constraints in:
foundation_models/env.config
Note
Different TSFMs may require different environments. You can either (1) create separate envs per TSFM, or (2) install a compatible transformers version depending on which TSFM you run.
Our code is based on Time-Series-Library, so you can use the datasets provided by that benchmark.
- Put all dataset files under
dataset/. - Our repository includes:
ETTh1.csvas a runnable example.Service.csv(a high-frequency sampled dataset we collected and open-sourced).
The provided scripts may iterate over multiple datasets (e.g., ETTh2, ETTm1, weather, Solar, etc.).
If you want to run them, please download the corresponding files from Time-Series-Library and place them into dataset/ with the expected filenames.
SPRINT works as a wrapper around TSFMs. For each TSFM, please download the checkpoints following the official links in our paper, and place them under:
foundation_models/
This repository already provides the folder layout (e.g., timer-base-84m/, timesfm-*/, chronos-t5-small/, moirai-*/, etc.).
Important
Some TSFMs require extra packages or special versions:
Timer,Sundial:transformers==4.40.1Chronos:transformers==4.56.2Moirai: may requireuni2ts(see the note infoundation_models/env.config)
Run the base TSFM evaluation script:
bash scripts/Base.shOptional arguments:
bash scripts/Base.sh <exp_name> <is_training> <gpu_id>exp_name: experiment name (default:test)is_training: must be0for zero-shot evaluation (default:0)gpu_id: CUDA device id (default:0)
Run the SPRINT evaluation script:
bash scripts/SPRINT.shOptional arguments:
bash scripts/SPRINT.sh <exp_name> <is_training> <gpu_id>scripts/Base.sh and scripts/SPRINT.sh iterate over:
- multiple datasets (e.g.,
ETTh1,ETTh2,ETTm1, ...,Service) - multiple prediction lengths (e.g.,
96 192 336 720 1440) - multiple TSFM backbones (e.g.,
timer,moirai,timesfm,timemoe,chronos,visionts,toto)
Internally, they call:
python -u run.py ...Where:
--modelselects the wrapper:BaseorSPRINT--model_typeselects the TSFM backbone (e.g.,timesfm,timer, ...)
By default:
- logs:
logs/ - metrics:
logs/metrics/ - detailed metrics:
logs/detail_metrics/ - raw predictions / test artifacts:
test_results/
This implementation is based on the Time-Series-Library (TSLib): https://github.com/thuml/Time-Series-Library
This project is released under the MIT License. See LICENSE for the full license text.
Copyright 2026 Tsinghua University and ByteDance.
This repository includes source files modified from TSLib / Time-Series-Library, originally released under the MIT License with copyright held by THUML @ Tsinghua University. The modified files are released under the same MIT License and include source headers identifying the original license and modification notice.
utils/timefeatures.py is derived from GluonTS and retains its Apache-2.0
license notice in the source header.
If you use this code, please cite:
@inproceedings{xu2026sprint,
title={See More, Forecast Better and Faster: Enhancing Time Series Foundation Models via Inference-Time Plug-and-Play Downsampling},
author={Xu, Longlong and Li, Zeyan and He, Xiao and Yu, Zhaoyang and Wen, Dazhong and Sun, Mingze and Pei, Changhua and Pei, Dan},
booktitle={Proceedings of the 43rd International Conference on Machine Learning},
year={2026}
}