Comprehensive time series foundation model laboratory featuring zero-shot multi-variable forecasting with Google TimesFM-3 and Amazon Chronos-2, an interactive Gradio web application for arbitrary user CSV datasets, and standardized multi-window benchmarking against statistical, tree-based, and deep learning baselines.
Live Hugging Face Space: https://huggingface.co/spaces/hari31416/ts-foundation-lab
app.py) capable of parsing arbitrary time series CSVs with automatic timestamp detection, target selection, and past/future covariate handling.google/timesfm-3.0-pytorch) and Amazon Chronos-2 (amazon/chronos-2) predicting point estimates and 80% prediction intervals (10th to 90th percentile).BENCHMARK.md).Install uv (Fast Python package manager):
curl -LsSf https://astral.sh/uv/install.sh | sh
Clone the repository and install dependencies:
git clone https://github.com/<your-username>/ts-foundation-lab.git
cd ts-foundation-lab
uv sync
Launch the interactive Gradio forecasting dashboard:
uv run python app.py --port 7860
Open your browser at http://localhost:7860. You can:
Across 12 rolling seasonal test windows on the Jena Climate benchmark:
| Model | MAE | RMSE | WAPE | CRPS | 80% Coverage | Latency (ms) |
|---|---|---|---|---|---|---|
| TimesFM-3 (Fine-Tuned) | 1.3192 | 1.5173 | 0.2339 | 1.0459 | 78.5% | 212.2 ms |
| Chronos-2 (Fine-Tuned) | 1.5282 | 1.7299 | 0.3493 | 1.2003 | 81.0% | 140.7 ms |
| Chronos-2 (Zero-Shot) | 1.6451 | 1.8552 | 0.3451 | 1.2826 | 79.2% | 79.9 ms |
| TimesFM-3 (Zero-Shot) | 1.6575 | 1.8745 | 0.3154 | 1.2603 | 76.5% | 224.4 ms |
| TimesFM-2.5 (Zero-Shot) | 2.2388 | 2.5689 | 0.6457 | 1.7397 | 63.8% | 155.4 ms |
| DeepAR (Deep Learning) | 2.7530 | 3.1707 | 0.5490 | 2.6754 | 9.7% | 4035.0 ms |
| AutoARIMA | 2.8941 | 3.2738 | 0.6191 | 2.4257 | 57.9% | 1799.2 ms |
| LightGBM | 3.2134 | 3.6784 | 0.6036 | 3.0695 | 10.0% | 2267.9 ms |
For detailed breakdown, per-window tables, and loss curves, see BENCHMARK.md.
To execute the 8-model rolling evaluation protocol locally:
uv run python run_benchmark.py
uv run python train_timesfm.py --epochs 3 --lr 1e-4
uv run python train_chronos.py --steps 300 --lr 1e-4 --mode lora
app.py: Gradio web application for universal time series forecasting.run_benchmark.py: End-to-end rolling-window benchmark execution engine.train_timesfm.py: TimesFM-3 multi-quantile loss fine-tuning script.train_chronos.py: Chronos-2 LoRA fine-tuning script.src/ui/engine.py: Universal forecasting engine with schema inference and Plotly visualizations.src/models/: Model wrappers for TimesFM-3, Chronos-2, AutoARIMA, LightGBM, and DeepAR.sample_data/: 8 preloaded benchmark datasets in CSV format.tests/: Pytest suite for pipelines, models, and UI engine.BENCHMARK.md: Comprehensive benchmark evaluation documentation.uv run pytest tests/
10 commits
Comprehensive time series foundation model laboratory featuring zero-shot multi-variable forecasting with Google TimesFM-3 and Amazon Chronos-2, an interactive Gradio web application for arbitrary user CSV datasets, and standardized multi-window benchmarking against statistical, tree-based, and deep learning baselines.
Live Hugging Face Space: https://huggingface.co/spaces/hari31416/ts-foundation-lab
app.py) capable of parsing arbitrary time series CSVs with automatic timestamp detection, target selection, and past/future covariate handling.google/timesfm-3.0-pytorch) and Amazon Chronos-2 (amazon/chronos-2) predicting point estimates and 80% prediction intervals (10th to 90th percentile).BENCHMARK.md).Install uv (Fast Python package manager):
curl -LsSf https://astral.sh/uv/install.sh | sh
Clone the repository and install dependencies:
git clone https://github.com/<your-username>/ts-foundation-lab.git
cd ts-foundation-lab
uv sync
Launch the interactive Gradio forecasting dashboard:
uv run python app.py --port 7860
Open your browser at http://localhost:7860. You can:
Across 12 rolling seasonal test windows on the Jena Climate benchmark:
| Model | MAE | RMSE | WAPE | CRPS | 80% Coverage | Latency (ms) |
|---|---|---|---|---|---|---|
| TimesFM-3 (Fine-Tuned) | 1.3192 | 1.5173 | 0.2339 | 1.0459 | 78.5% | 212.2 ms |
| Chronos-2 (Fine-Tuned) | 1.5282 | 1.7299 | 0.3493 | 1.2003 | 81.0% | 140.7 ms |
| Chronos-2 (Zero-Shot) | 1.6451 | 1.8552 | 0.3451 | 1.2826 | 79.2% | 79.9 ms |
| TimesFM-3 (Zero-Shot) | 1.6575 | 1.8745 | 0.3154 | 1.2603 | 76.5% | 224.4 ms |
| TimesFM-2.5 (Zero-Shot) | 2.2388 | 2.5689 | 0.6457 | 1.7397 | 63.8% | 155.4 ms |
| DeepAR (Deep Learning) | 2.7530 | 3.1707 | 0.5490 | 2.6754 | 9.7% | 4035.0 ms |
| AutoARIMA | 2.8941 | 3.2738 | 0.6191 | 2.4257 | 57.9% | 1799.2 ms |
| LightGBM | 3.2134 | 3.6784 | 0.6036 | 3.0695 | 10.0% | 2267.9 ms |
For detailed breakdown, per-window tables, and loss curves, see BENCHMARK.md.
To execute the 8-model rolling evaluation protocol locally:
uv run python run_benchmark.py
uv run python train_timesfm.py --epochs 3 --lr 1e-4
uv run python train_chronos.py --steps 300 --lr 1e-4 --mode lora
app.py: Gradio web application for universal time series forecasting.run_benchmark.py: End-to-end rolling-window benchmark execution engine.train_timesfm.py: TimesFM-3 multi-quantile loss fine-tuning script.train_chronos.py: Chronos-2 LoRA fine-tuning script.src/ui/engine.py: Universal forecasting engine with schema inference and Plotly visualizations.src/models/: Model wrappers for TimesFM-3, Chronos-2, AutoARIMA, LightGBM, and DeepAR.sample_data/: 8 preloaded benchmark datasets in CSV format.tests/: Pytest suite for pipelines, models, and UI engine.BENCHMARK.md: Comprehensive benchmark evaluation documentation.uv run pytest tests/
10 commits