File size: 5,750 Bytes
b043bdf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
---
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.<v>.onnx`, `chronos-2-small.<v>.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.<v>.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 (`<v>`), 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}
}
```