Team Ai
Modelpublic

idle-intelligence/t0-beta-q8_0-webgpu

sourceHugging Faceapache-2.0updated 20d agoView on Hugging Face
0likes38downloads
Model Card

t0-beta Q8_0, WebGPU

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

Runs entirely in the browser, no server required. Probabilistic multi-horizon time-series forecasting, 256M parameters.

**Try the demo →**

What you gain, what you lose

Nothing is lost compared with the official published INT8 card for this checkpoint, and accuracy is slightly better: worst-case mean drift vs F32 is 0.20% for this Q8_0 file against 0.23% for the official published t0-beta INT8 card, and point drift is far tighter (1.06% vs 9.39%). No browser measurement exists for t0-beta; latency below is native Metal only.

Files

FileSizeDescription
t0-beta-q8_0.gguf275.3 MBForecasting transformer weights (Q8_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-beta-q8_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)
  • —~275 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 1024
    → 32-step quantile decoder → 21 quantile levels
      → autoregressive rollout for longer horizons

Benchmarks

Drift vs our own F32 reference, and vs the official published t0-beta INT8 card

quantmean drift worst %point drift worst %
this Q8_00.201.06
Official published t0-beta INT8 card0.239.39

This Q8_0 beats the official published INT8 card on mean drift and is far tighter on point drift.

GIFT-Eval, official-protocol 8-config subset (dequantized back to f32 into the reference architecture)

f32 (original weights)**this Q8_0**
CRPS (aggregate, 8 configs)0.07490.0749
MASE (aggregate, 8 configs)1.05221.0519

Within 0.4% relative of the f32 reference on this small subset. This 8-config subset is not comparable to the published 97-config headline numbers (CRPS 0.4738 / MASE 0.6865); no full-97-config run exists for this checkpoint.

Latency (native Metal only, no browser measurement)

quantsingle (ms/signal)batch-24 (ms/signal)
this Q8_0219.354.6

Measured with t0-fast on raw wgpu/Apple Metal, context 512, horizon 32. No headless-Chromium browser run exists for t0-beta; do not read this as a browser latency figure.

Model Details

  • —Base model: theforecastingcompany/t0-beta by The Forecasting Company
  • —Architecture: Patch transformer, time and group attention
  • —Parameters: ~256M
  • —Quantization: Q8_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: 21
  • —License: Apache-2.0 (same as original)

Quantization

Weights-only quantization using standard GGUF Q8_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 3.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-beta},
}

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.