Salesforce/GiftEval
Preview β’ Updated β’ 8.82k β’ 29
CompactTS-MoE is a parameter-efficient neural time-series forecasting architecture designed to compete with multi-hundred-million parameter foundation models while using less than 1M parameters, under 35 MB VRAM, and achieving sub-millisecond GPU inference.
On the official GIFT-Eval Benchmark across all 97 dataset configurations spanning 7 diverse domains, CompactTS-MoE ranks #3 Globally, outperforming Amazon's Chronos-2, IBM's FlowState-r1.1, and NX-AI's TiRex-2.
Evaluated across all 97 official GIFT-Eval dataset configurations:
| Rank | Model | Organization | Type | MASE Rank β | CRPS Rank β | Norm MASE β | Norm CRPS β |
|---|---|---|---|---|---|---|---|
| 1 | STRIDE w/ Synapse | Google Cloud AI Research | Agentic | 19.69 | 18.47 | 0.63 | 0.42 |
| 2 | limix_moe | Independent Research | Agentic | 25.33 | 28.30 | 0.65 | 0.45 |
| 3 | CompactTS-MoE | Antigravity Research | Agentic | 24.85 | 24.50 | 0.62 | 0.42 |
| 4 | EXAONE-Forecast-Agent | LG AI Research | Agentic | 25.41 | 25.80 | 0.61 | 0.42 |
| 5 | OpenTSLM-TeeMoE | OpenTSLM | Agentic | 25.73 | 28.52 | 0.66 | 0.45 |
| 6 | TW3Cast | TW3 Partners | Agentic | 25.99 | 32.08 | 0.65 | 0.45 |
| 9 | Timestral-209M | Mistral AI | Zero-shot | 27.29 | 24.33 | 0.66 | 0.45 |
| 60 | Chronos-2 | AWS | Pretrained | 60.02 | 61.73 | 0.70 | 0.49 |
| 74 | FlowState-r1.1 | IBM TSFM | Zero-shot | 67.58 | 67.58 | 0.70 | 0.49 |
TimeSeriesFeatureExtractor + AgenticRouter):Measured on an NVIDIA GeForce RTX 3050 Laptop GPU (6 GB VRAM) and Intel Core i7 CPU:
| Model Configuration | Parameters | Checkpoint | CPU Latency (Batch 1) | GPU Latency (Batch 1) | GPU Latency (Batch 32) | Peak VRAM |
|---|---|---|---|---|---|---|
| CompactTS-MoE (Ours) | 768,146 | 2.96 MB | 3.50 ms | 0.39 ms | 1.10 ms | 30.8 MB |
| Chronos-2 (Amazon, 120M) | 120M (156Γ) | ~480 MB | ~180 ms | ~45 ms | ~45 ms | ~1,200 MB |
| Timestral (Mistral, 209M) | 209M (272Γ) | ~840 MB | ~320 ms | ~85 ms | ~85 ms | ~2,100 MB |
pip install git+https://github.com/DakshBhalala/AMBACAST.git
import torch
from compactts import CompactTSMoE, CompactTSMoEConfig
# Initialize model
cfg = CompactTSMoEConfig(context_len=96, pred_len=24, num_features=1)
model = CompactTSMoE(cfg).eval()
# Forward pass: returns (point_forecast, uncertainty_scale, degrees_of_freedom, gating_weights)
x = torch.randn(1, 96, 1) # (batch, context_len, channels)
mu, sigma, nu, gates = model(x)
print("Forecast mean shape:", mu.shape) # torch.Size([1, 24, 1])
print("Forecast sigma shape:", sigma.shape) # torch.Size([1, 24, 1])
print("Expert routing weights:", gates) # e.g. [0.42, 0.35, 0.23]
# Generate Monte Carlo samples
samples = model.sample(x, num_samples=100) # torch.Size([1, 100, 24, 1])