--- license: apache-2.0 library_name: onnx base_model: - amazon/chronos-2 - autogluon/chronos-2-small - nvidia/Kumo-Anomaly base_model_relation: quantized pipeline_tag: time-series-forecasting tags: - onnx - onnxruntime-web - webgpu - time-series-forecasting - anomaly-detection - chronos - time-series-foundation-model --- # Chronos-2 and Kumo-Anomaly for onnxruntime-web Unofficial ONNX conversions of three time-series models, made for Tabular Data Workbench, which runs them in the browser with onnxruntime-web on WebGPU or WebAssembly: - [Chronos-2](https://huggingface.co/amazon/chronos-2) (120M parameters) and [Chronos-2 small](https://huggingface.co/autogluon/chronos-2-small) (28M), Amazon's forecasters. - [Kumo-Anomaly](https://huggingface.co/nvidia/Kumo-Anomaly) (NV-Tesseract-AD, 2.4M), NVIDIA's diffusion-based anomaly detector. The weights are the upstream weights: unchanged in the `fp32` variant, and with the larger ones rounded to float16 in the `f16w` variant. Amazon and NVIDIA have not reviewed or endorsed these conversions. NVIDIA's model card describes Kumo-Anomaly as "for research and development only". ## Files | file | inputs | output | | --- | --- | --- | | `chronos-2..onnx`, `chronos-2-small..onnx` | `features` (batch, tokens, 48), `token_mask` (batch, tokens), `group_mask` (batch, batch), `reg_mask` (tokens, 1), `rope_cos`, `rope_sin` (tokens, 64) | `quantiles` (batch, tokens, Q × 16) | | `kumo-anomaly..onnx` | `x` (batch, 40, 100, 2), `step_onehot` (1, 500), `strategy_onehot` (1, 2), `time` (100) | `eps` (batch, 40, 100) | Each graph comes in two variants (``), listed here with the sizes of Chronos-2, Chronos-2 small and Kumo-Anomaly: - `fp32`: the checkpoints' weights as they are (478 MB, 112 MB and 10 MB). - `f16w`: every float32 weight of 1,024 or more elements stored as float16 and cast back to float32 on load (239 MB, 56 MB and 5 MB). Compute stays float32. The Chronos-2 graphs take the encoder's input already assembled: instance scaling, arcsinh, patching, time encodings, the rotary tables and the masks built from group ids are computed outside the graph, so one graph serves every context length up to 8,192 and every horizon up to 1,024 without int64 shape arithmetic. Q is 21 quantiles for Chronos-2 and 13 for Chronos-2 small. The Kumo-Anomaly graph is the denoiser only. The masks, the noise, the DPM-Solver++ sampling loop, the median over samples and the scores run outside it, one graph call per solver step. `manifest.json` lists every file with its size and sha256, each model's configuration (context length, quantile levels, patch size, diffusion schedule) and the parity figures below. ## How they were made Sources: `amazon/chronos-2` at `29ec3766d36d6f73f0696f85560a422f50e8498c`, `autogluon/chronos-2-small` at `ddec01313e50b6bc58ebaa92ede81bc24a3d9f9a` (with `chronos-forecasting` 2.3.2), and `nvidia/Kumo-Anomaly` at `226c5003b0582adc1cac433123f47324bfae39f2` (with NVIDIA's [structured-data-models](https://github.com/NVIDIA/structured-data-models) at commit `2b1696f4fdc22004cc757c44703a69cf326c0a11`). ```sh cd models/tsfm uv run export_chronos2.py # Chronos-2 and Chronos-2 small uv run export_kumo.py # Kumo-Anomaly ``` Both scripts (in `models/tsfm/` of Tabular Data Workbench) export with `torch.onnx` (dynamo, opset 18, PyTorch 2.14 on CPU), remove the exporter's node metadata and doc strings, and check the graphs against the reference packages before writing the manifest. ## Parity Chronos-2: the whole forecast (numpy preparation, the ONNX graph in onnxruntime 1.30 on CPU, decoding) against `Chronos2Pipeline.predict_quantiles`, maximum absolute difference over all quantiles, divided by the forecast's widest spread between the lowest and highest quantile: | case | Chronos-2 fp32 | Chronos-2 f16w | small fp32 | small f16w | | --- | --- | --- | --- | --- | | AirPassengers, 24 months | 1.3e-6 | 2.3e-4 | 1.2e-6 | 3.8e-4 | | AirPassengers with gaps, 36 months | 1.0e-6 | 2.6e-4 | 8.0e-7 | 1.7e-4 | | daily series, weekly cycle, 28 days | 9.3e-7 | 4.6e-4 | 7.9e-7 | 3.3e-4 | | the same with a known covariate | 9.3e-7 | 2.7e-4 | 9.5e-7 | 4.9e-4 | Kumo-Anomaly: the sampling loop with the fp32 graph against `sdm.models.KumoAnomaly` on a series with injected anomalies, with the same noise (4 samples, 6 solver steps): anomaly scores agree to 1.0e-6 (scores up to 1.06). ## Licence All three models are licensed under the Apache License, Version 2.0 (`LICENSE`). `NOTICE` carries the copyright notices (Amazon.com, Inc. or its affiliates for Chronos-2; NVIDIA CORPORATION & AFFILIATES for Kumo-Anomaly) and states how these files differ from the originals. `LICENSE.structured-data-models` is NVIDIA's copy of the licence from the code the Kumo-Anomaly graph was exported from. Kumo-Anomaly's sampler derives from DPM-Solver (Copyright (c) 2022 Cheng Lu, MIT License), whose licence is in `THIRD-PARTY-NOTICES.txt`. Keep `LICENSE`, `NOTICE`, `THIRD-PARTY-NOTICES.txt` and `LICENSE.structured-data-models` with the graphs when redistributing them. ## Citation ```bibtex @article{ansari2025chronos2, title = {Chronos-2: From Univariate to Universal Forecasting}, author = {Abdul Fatir Ansari and Oleksandr Shchur and Jaris Küken and Andreas Auer and Boran Han and Pedro Mercado and Syama Sundar Rangapuram and Huibin Shen and Lorenzo Stella and Xiyuan Zhang and Mononito Goswami and Shubham Kapoor and Danielle C. Maddix and Pablo Guerron and Tony Hu and Junming Yin and Nick Erickson and Prateek Mutalik Desai and Hao Wang and Huzefa Rangwala and George Karypis and Yuyang Wang and Michael Bohlke-Schneider}, year = {2025}, url = {https://arxiv.org/abs/2510.15821} } ```