Downloads · 30 days
65
100% of all-time downloads
idle-intelligence/t0-alpha-q8_0-webgpu
t0-alpha-q8_0-webgpu is a time series forecasting model from idle-intelligence. Use it for the time series forecasting task on the model card, and read the license before you ship it in a product. The card lists the license as apache-2.0.
Q80-quantized weights for theforecastingcompany/t0-alpha, packaged for client-side browser forecasting via WASM + WebGPU.
Downloads · 30 days
65
100% of all-time downloads
All-time downloads
65
Public
Repo size
109 MB
Likes
0
Public
Click a slice to open those files.
.gguf109 MB · 100%
From the Hugging Face model README
Q8_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.
Nothing is lost compared with the official INT8 export, and accuracy is slightly better: on the head-to-head window, the largest deviation from the F32 reference is 0.20% of the series range for this Q8_0 file against 0.79% for the official INT8 ONNX export, at about the same size (109 MB), and the browser forecast is about 2x faster (34.5 ms vs 64.0 ms, single signal, Apple M2). On the full 97-config GIFT-Eval protocol it costs +0.04% MASE and +0.02% CRPS against our own F32 control, within 0.25% of the published t0-alpha card.
| File | Size | Description |
|---|---|---|
t0-alpha-q8_0.gguf | 108.9 MB | Forecasting transformer weights (Q8_0 quantized) |
config.json | <1 KB | Model architecture and quantile-level configuration |
These weights are consumed by t0-web, a Rust/WASM + WebGPU forecasting engine built with Burn.
await t0wasm.initBackend();
const modelBuf = await fetch('t0-alpha-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.
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
| variant | MASE | CRPS |
|---|---|---|
| Published t0-alpha card (F32) | 0.7240 | 0.4941 |
| Our F32 control | 0.7255 | 0.4942 |
| This Q8_0 | 0.7258 | 0.4943 |
Isolating quantization from any pipeline effect (Q8_0 vs our own F32 control): +0.04% MASE, +0.02% CRPS, at 0.27x the F32 file size. The same protocol on the Q4_0 export gives 0.7334 / 0.4973.
| quant | mean drift worst % | point drift worst % |
|---|---|---|
| this Q8_0 | 0.53 | 1.78 |
Well inside typical acceptance gates for this checkpoint (2% mean / 10% point).
| warm ms | batch-24 ms/signal | |
|---|---|---|
| Official ONNX WebGPU export | 64.0 | 8.87 |
| This file (Q8_0-resident WebGPU) | 34.5 | 11.2 |
Single-call latency beats the official ONNX export (34.5 vs 64.0 ms). Batched throughput is slower on this file (11.2 vs 8.87 ms/signal).
attention.wQKV.weight, attention.wO.weight, mlp.0.weight, mlp.2.weight per layer; norms, embeddings, biases, and the quantile head kept at f16Weights-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 1.2e-6 max-abs.
@misc{tfc-t0,
title = {t0: A time-series forecasting foundation model},
author = {The Forecasting Company},
year = {2026},
url = {https://huggingface.co/theforecastingcompany/t0-alpha},
}
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.