ONNX exports of TabICLv2, KumoTabular (small, medium, large), KumoRelational, Chronos-2 and Kumo-Anomaly for Tabular Data Workbench
b043bdf verified |
Download tabicl/README.md from ScriptSmith/tabular-data-workbench-onnx: direct link, hf CLI and curl.
- Browser
- Download file 4.7 kB
-
https://huggingface.co/ScriptSmith/tabular-data-workbench-onnx/resolve/main/tabicl/README.md
- Command line
-
hf download hf://ScriptSmith/tabular-data-workbench-onnx/tabicl/README.md
-
curl -L -o README.md https://huggingface.co/ScriptSmith/tabular-data-workbench-onnx/resolve/main/tabicl/README.md
4.7 kB
| 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](https://huggingface.co/jingang/TabICL) | |
| 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. | |
| ```sh | |
| 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 | |
| ```bibtex | |
| @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} | |
| } | |
| ``` | |