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
4.7 kB
metadata
license: bsd-3-clause
library_name: onnx
base_model: jingang/TabICL
base_model_relation: quantized
pipeline_tag: tabular-classification
tags:
  - onnx
  - onnxruntime-web
  - webgpu
  - tabicl
  - tabular-classification
  - tabular-regression
  - tabular-foundation-model
  - in-context-learning

TabICLv2 for onnxruntime-web

An unofficial ONNX conversion of TabICLv2 by Jingang Qu, David Holzmüller, Gaël Varoquaux and Marine Le Morvan (Soda team, Inria), made for Tabular Data Workbench, which runs it in the browser with onnxruntime-web on WebGPU or WebAssembly. The weights are those of the upstream checkpoints: unchanged in the fp32 variant, and with the larger ones rounded to float16 in the f16w variant. The Soda team has not reviewed or endorsed this conversion.

Files

Each task (classifier, regressor) is cut into three graphs:

file inputs output
<task>-col.<v>.onnx X (batch, columns, rows, 3) feature-group columns, y (batch, digits, train) E (batch, columns, rows, 128)
<task>-row.<v>.onnx E (batch, columns, rows, 128) R (batch, rows, 512)
<task>-icl.<v>.onnx R (batch, rows, 512), y (batch, train) out (batch, test, 10 logits or 999 quantiles)

Each graph comes in two variants (<v>):

  • fp32: the checkpoint's weights as they are (225 MB for both tasks).
  • f16w: every float32 weight of 1,024 or more elements stored as float16 and cast back to float32 on load (113 MB). Compute stays float32, so it runs on the WebGPU and WebAssembly providers alike.

manifest.json lists every file with its size, sha256, inputs and outputs, and the int64 shape nodes (cpuNodes, one in each row graph) that the app pins to the CPU provider on WebGPU. The graphs contain no int64 shape arithmetic, which onnxruntime-web's WebGPU provider has been seen to corrupt.

The graphs are the network only. Preprocessing (imputation, the normalisation choices, outlier clipping), the ensemble of column and class permutations, the mixed-radix digits for more than 10 classes and the averaging stay outside them, as in the reference package. The app ports those to TypeScript; models/tabicl/pipeline.py in Tabular Data Workbench is the numpy reference.

How they were made

Source: jingang/TabICL at revision 4dcd344ece2c00be9e831fdd35bed57b5ad83e19 (tabicl-classifier-v2-20260212.ckpt, tabicl-regressor-v2-20260212.ckpt), with the tabicl 2.2.0 package's model code.

cd models/tabicl
uv run export.py     # writes public/models/tabicl/
uv run verify.py     # parity table against tabicl

export.py (in models/tabicl/ of Tabular Data Workbench) splits the network in exportable.py, exports each part with torch.onnx (dynamo, opset 18, PyTorch 2.14 on CPU), removes the exporter's node metadata and doc strings, and checks the split graphs against tabicl's own forward pass before writing the manifest.

Parity

verify.py runs TabICLClassifier and TabICLRegressor (tabicl 2.2.0, CPU, float32, 8 estimators, seed 42), replays the ensemble it drew through the ONNX graphs in onnxruntime 1.30 (CPU) and compares the final predictions:

dataset fp32 f16w
breast_cancer (probabilities) 2.8e-6 5.8e-4
breast_cancer with 5% missing 1.6e-6 3.4e-4
wine 8.3e-7 2.8e-4
14 classes (synthetic) 1.5e-6 7.1e-4
diabetes (mean, in units of the target's sd) 2.3e-6 4.7e-4
diabetes (quantiles, in units of the target's sd) 2.4e-6 6.4e-4

The figures are maximum absolute differences. Predicted classes agree with tabicl on every row of every dataset in both variants.

Licence

BSD-3-Clause, the licence of TabICL's code and of the v2 checkpoints (license: bsd-3-clause on jingang/TabICL). The licence text with the copyright notice (Copyright (c) 2025, Soda team @ Inria) is in LICENSE beside the graphs and must stay with them. The licence does not allow the names of Inria or the Soda team to be used to endorse or promote products derived from these files.

Citation

@inproceedings{qu2025tabicl,
  title={Tab{ICL}: {A} Tabular Foundation Model for In-Context Learning on Large Data},
  author={Qu, Jingang and Holzm{\"u}ller, David and Varoquaux, Ga{\"e}l and Le Morvan, Marine},
  booktitle={International Conference on Machine Learning},
  year={2025}
}

@article{qu2026tabiclv2,
  title={{TabICLv2}: {A} better, faster, scalable, and open tabular foundation model},
  author={Qu, Jingang and Holzm{\"u}ller, David and Varoquaux, Ga{\"e}l and Le Morvan, Marine},
  journal={arXiv preprint arXiv:2602.11139},
  year={2026}
}