ScriptSmith's picture
ONNX exports of TabICLv2, KumoTabular (small, medium, large), KumoRelational, Chronos-2 and Kumo-Anomaly for Tabular Data Workbench
b043bdf verified
|
Raw History Blame Contribute Delete
5.28 kB
metadata
license: openmdw-1.1
library_name: onnx
base_model: nvidia/Kumo-Tabular
base_model_relation: quantized
pipeline_tag: tabular-classification
tags:
  - onnx
  - onnxruntime-web
  - webgpu
  - structured-data-models
  - tabular-classification
  - tabular-regression
  - tabular-foundation-model
  - in-context-learning

KumoTabular for onnxruntime-web

An unofficial ONNX conversion of NVIDIA's Kumo Tabular (tag v1.0.1) in its three sizes, made for Tabular Data Workbench, which runs it in the browser with onnxruntime-web on WebGPU or WebAssembly. The weights are NVIDIA's, with the larger ones stored as float16 (see below). NVIDIA has not reviewed or endorsed this conversion.

Files

One graph per size and head, each a single file:

file parameters size
small-classifier.f16w.onnx 27.5M 55 MB
small-regressor.f16w.onnx 28.5M 57 MB
medium-classifier.f16w.onnx 61.5M 124 MB
medium-regressor.f16w.onnx 62.5M 126 MB
large-classifier.f16w.onnx 213.7M 428 MB
large-regressor.f16w.onnx 215.7M 432 MB

Every graph has the same interface, that of onnx-community's export of the small size:

input / output shape type
x (R, C), context rows first, missing values as NaN float32
y_context (Rc) int32 class codes (classifier), float32 (regressor)
categorical_mask (C) bool
logits (R - Rc, 10) logits or (R - Rc, 999) quantiles float32

The graph is the network only (structured-data-models' _KumoTabular.forward): it imputes missing cells itself, so NaN must reach it unchanged. The preprocessing recipe, the ensemble and the output aggregation stay outside it; the app implements them in TypeScript.

In f16w, every float32 weight of 1,024 or more elements is stored as float16 and cast back to float32 on load, which halves the download and keeps compute in float32. The other weights are as NVIDIA released them.

manifest.json lists every file with its size, sha256, largest weight and total weight bytes (as float32), the int64 shape nodes to keep on the CPU under WebGPU (cpuNodes), each size's architecture, a memory estimate per row, onnxruntime CPU timings, and the parity figures below.

How they were made

Source: nvidia/Kumo-Tabular at 3c3e10bbdb590ace29e7026847f92db3c603096d (tag v1.0.1), loaded through NVIDIA's structured-data-models 0.2.1.

cd models/kumo
uv run export.py    # writes public/models/kumo/

export.py (in models/kumo/ of Tabular Data Workbench) exports with torch.onnx (dynamo, opset 20, PyTorch 2.14 on CPU) and removes the exporter's node metadata and doc strings. The cell embedding is rewritten so that grouping each column with its neighbours, imputing missing cells and building the Fourier features need no int64 Mod, int64 sums or scatters; the result matches structured-data-models' forward pass. The graphs keep a few int64 shape computations, listed in the manifest.

Parity

onnxruntime 1.30 (CPU) against structured-data-models' forward pass in PyTorch, maximum absolute difference over network inputs captured from its recipe (4 ensemble members, 540 context and 100 query rows of a synthetic table with missing values and two categorical columns) and over random inputs of five shapes:

graph float32 graph, recipe inputs f16w, recipe inputs f16w, random inputs largest output
small classifier (logits) 5.2e-5 1.9e-2 1.8e-2 14.5
small regressor (quantiles) 2.2e-5 6.1e-3 1.8e-2 4.6
medium classifier 4.2e-5 1.5e-2 1.8e-2 30.1
medium regressor 9.1e-6 1.4e-3 6.5e-3 3.7
large classifier 2.4e-5 1.1e-2 2.4e-2 8.3
large regressor 6.9e-5 2.7e-3 4.2e-3 4.5

The float32 graphs (built for this check, not published) show the export's own error; the rest is the rounding of the weights to float16. Regressor outputs are in units of the standardised target.

Through the whole recipe (8 ensemble members; breast cancer with and without missing values, wine, diabetes), the f16w graphs of every size move class probabilities by at most 4.1e-4 and regression quantiles by at most 9e-4 standard deviations from structured-data-models' predictions, with the same accuracy and R² within 2e-5.

Licence

The weights are released by NVIDIA under the OpenMDW License Agreement 1.1 (LICENSE, Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES). It allows use, modification and redistribution provided that the agreement and the notices of origin travel with the weights, and it ends the rights of anyone who sues claiming the model infringes a patent or copyright.

The graphs were exported from structured-data-models' model code, licensed under Apache-2.0 (LICENSE.structured-data-models), whose cell embedding is derived from TabFM (Google, Apache-2.0) and whose attention scaling contains portions of TabICLv2 (Soda team, Inria, BSD-3-Clause). NOTICE states the origin and the changes and carries the TabICLv2 licence.

Keep LICENSE, NOTICE and LICENSE.structured-data-models with the graphs when redistributing them.