Kumo-Anomaly — GGUF
GGUF conversion of NVIDIA's Kumo-Anomaly time-series anomaly localization model, converted and run with zsfm, a Rust workspace that ports zero-shot forecasting and tabular foundation models to GGUF + Burn, verified bit-exact against the original PyTorch checkpoint. No PyTorch, no Python runtime required to run inference.
| File | Description |
|---|---|
kumoanomaly-f32.gguf |
F32 GGUF, full precision |
GGUF embeds its own architecture metadata — no separate config.json is needed.
Use it
Python (pip install zsfm)
pip install zsfm huggingface_hub
import zsfm
from huggingface_hub import hf_hub_download
gguf_path = hf_hub_download("amaye15/kumoanomaly-gguf", "kumoanomaly-f32.gguf")
model = zsfm.KumoAnomalyModel(gguf_path)
# data: flat rows × ncols in row-major order (12 values = 4 rows × 3 cols)
data = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0]
mask = [1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] # optional
# rows=4, ncols=3 — each row is one time step with 3 variates
res = model.localize(data, rows=4, ncols=3, mask=mask, nsample=30)
# res.residual: per (row, column) mean-abs reconstruction residuals (length = rows × ncols)
# res.recon: reconstruction values
# res.target: target values
# Large residuals indicate anomalous steps.
Rust / CLI (cargo install zsfm)
cargo install zsfm --locked
# downloads the original NVIDIA weights and converts to GGUF locally
zsfm kumoanomaly convert
echo '{"data": [[1,2,3],[4,5,6],[7,8,9]]}' \
| zsfm kumoanomaly infer --gguf gguf/kumoanomaly-f32.gguf --nsample 30
Response format
{
"residual": [0.01, 0.02, ...],
"recon": [1.0, 2.0, ...],
"target": [1.0, 2.0, ...],
"score_feature_count": 3,
"valid_feature_mask": [1.0, 1.0, 1.0],
"ncols": 3
}
residual holds per-step mean-abs reconstruction residuals — large values indicate anomalous time steps. Length = rows × columns.
Architecture
Kumo-Anomaly is a diffusion-based anomaly localization model:
- Input: multivariate time series, normalized, with optional missing-value mask.
- Encoder: transformer-based diffusion encoder that reconstructs the input.
- Output: per-cell reconstruction residuals that highlight anomalous time steps.
- Supports up to 40 columns (variates) per time step.
License
Conversion code: MIT (amaye15/zsfm-rs). Weights: OpenMDW-1.1, per NVIDIA's release — commercial use permitted.