Team Ai
Modelpublic

idle-intelligence/t0-alpha-q4_0-webgpu

sourceHugging Faceapache-2.0updated 19d agoView on Hugging Face
0likes137downloads
Model Card

t0-alpha Q4_0, WebGPU

Q4_0-quantized weights for theforecastingcompany/t0-alpha, packaged for client-side browser forecasting via WASM + WebGPU.

Runs entirely in the browser, no server required. Probabilistic multi-horizon time-series forecasting, ~102M parameters, smallest/fastest quant in this release.

**Try the demo →**

What you gain, what you lose

You trade a little accuracy for a much smaller file: 59 MB, 0.14x the F32 weights and about half of Q80, and the fastest browser forecast of the release (29.8 ms single signal, Apple M2). On the full 97-config GIFT-Eval protocol it costs +1.1% MASE and +0.6% CRPS against our own F32 control, and it lands within 1.3% of the published t0-alpha card. Per-forecast drift is looser than Q80 (see Benchmarks below); use Q8_0 when accuracy matters more than download size.

Files

FileSizeDescription
t0-alpha-q4_0.gguf58.6 MBForecasting transformer weights (Q4_0 quantized)
config.json<1 KBModel architecture and quantile-level configuration

Usage

These weights are consumed by t0-web, a Rust/WASM + WebGPU forecasting engine built with Burn.

js
await t0wasm.initBackend();
const modelBuf = await fetch('t0-alpha-q4_0.gguf').then(r => r.arrayBuffer());
const model = t0wasm.T0Wasm.load(new Uint8Array(modelBuf));

const context = series.slice(-512);
const quantiles = await model.forecast(context, 32);

Weights are fetched from this repo and cached by the browser.

Requirements

  • —Chrome 113+ or Edge 113+ (WebGPU required)
  • —HTTPS (required for WebGPU)
  • —~59 MB download on first load (cached afterward)

Pipeline

Series → patches of 32 (96-vector each)
  → 24 transformer blocks [WASM, WebGPU] → time and group attention, embed 512
    → 32-step quantile decoder → 5 quantile levels
      → autoregressive rollout for longer horizons

Benchmarks

GIFT-Eval, full 97 configs, normalized to Seasonal Naive

variantMASECRPS
Published t0-alpha card (F32)0.72400.4941
Our F32 control0.72550.4942
This Q4_00.73340.4973

Isolating quantization from any pipeline effect (Q4_0 vs our own F32 control): +1.1% MASE, +0.6% CRPS, at 0.14x the F32 file size.

Drift vs our own F32 reference (54 synthetic cases)

quantmean drift worst %point drift worst %
this Q4_03.118.42
our Q8_00.531.78
the original INT8 export (reimplemented here)0.852.04

Browser latency (Chrome, headless Chromium, Apple M2, single signal, context 512)

warm msbatch-24 ms/signal
Official ONNX WebGPU export64.08.87
This file (Q4_0-resident WebGPU)29.811.2

Single-call latency is more than 2x faster than the official ONNX export. Batched throughput is slower on this file (11.2 vs 8.87 ms/signal); batching has not caught up to the single-call gain yet.

Model Details

  • —Base model: theforecastingcompany/t0-alpha by The Forecasting Company
  • —Architecture: Patch transformer, time and group attention
  • —Parameters: ~101.6M
  • —Quantization: Q4_0 for attention.wQKV.weight, attention.wO.weight, mlp.0.weight, mlp.2.weight per layer; norms, embeddings, biases, and the quantile head kept at f16
  • —Quantile levels: 5 (0.1, 0.25, 0.5, 0.75, 0.9)
  • —License: Apache-2.0 (same as original)

Quantization

Weights-only quantization using standard GGUF Q4_0 blocks (32 values per block, fp16 scale), in ggml-compatible layout, dequantized on-GPU inside the WGSL matmul with F32 compute. Exported from the F32 safetensors by t0-web's own packer. The F32 path itself matches the PyTorch reference to 1.2e-6 max-abs.

Citation

bibtex
@misc{tfc-t0,
  title  = {t0: A time-series forecasting foundation model},
  author = {The Forecasting Company},
  year   = {2026},
  url    = {https://huggingface.co/theforecastingcompany/t0-alpha},
}

Disclaimer

This is an independent port by ilnmtlbnm@idle-intelligence, not affiliated with or endorsed by The Forecasting Company. Forecast values may differ slightly from the original PyTorch implementation due to quantization.