TACO 🌮
Official repository for the paper "End-to-End Compression for Tabular Foundation Models".
Tabular foundation models such as TabPFN learn in context, taking the training data as input at inference time. Because their attention mechanism scales quadratically with dataset size, training and inference get expensive and the models struggle on large tables — and the common workarounds, subsampling rows or capping table size, give up accuracy. TACO instead learns to compress the training set in a latent space, shrinking the context the model has to attend over. We show that this gives up to 94x faster inference and up to 97% lower memory use than the underlying tabular transformer, with no significant loss in predictive performance.
Quick Start
Prerequisites
- Python 3.9-3.12
Installation
The distribution is named tabpfn-taco, while its Python import package is
named taco.
Install from a local clone with pip:
git clone https://github.com/machinelearningnuremberg/TACO.git
cd TACO
python -m pip install .
To work on the source code, install it in editable mode:
python -m pip install -e .
Alternatively, use uv, which installs the project in editable mode using the checked-in lockfile:
uv sync
This example shows how to evaluate TabPFN-TACO with compression and
TabPFN-POT without compression using TACOClassifier on the scikit-learn
Breast Cancer dataset.
Example
from sklearn.datasets import load_breast_cancer
from sklearn.metrics import accuracy_score, roc_auc_score
from sklearn.model_selection import train_test_split
from taco.model.tabpfn_arch.taco_classifier import TACOClassifier
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.5, random_state=42, stratify=y,
)
# TabPFN-TACO with compression
clf_taco = TACOClassifier(
use_compressor=True,
row_compression_percentage=4,
fit_mode="fit_preprocessors",
)
clf_taco.fit(X_train, y_train)
prediction_probabilities = clf_taco.predict_proba(X_test)
print("TabPFN-TACO ROC AUC:", roc_auc_score(y_test, prediction_probabilities[:, 1]))
predictions = prediction_probabilities.argmax(axis=1)
print("TabPFN-TACO Accuracy:", accuracy_score(y_test, predictions))
# TabPFN-POT without compression
clf_pot = TACOClassifier(
use_compressor=False,
fit_mode="fit_preprocessors",
)
clf_pot.fit(X_train, y_train)
prediction_probabilities = clf_pot.predict_proba(X_test)
print("TabPFN-POT ROC AUC:", roc_auc_score(y_test, prediction_probabilities[:, 1]))
predictions = prediction_probabilities.argmax(axis=1)
print("TabPFN-POT Accuracy:", accuracy_score(y_test, predictions))
Large Chunked Inference
For large datasets, use fit_with_chunking. See
examples/taco_chunking.py for a runnable example:
uv run python examples/taco_chunking.py
Pretraining
To pretrain TabPFN-TACO and TabPFN-POT from scratch, use the training configurations provided in:
scripts/train_stage1_taco_random.shscripts/train_stage1_pot.sh
Install the training extras before running these scripts:
python -m pip install -e ".[train]"
Or with uv:
uv sync --extra train
Checkpoints
The released TabPFN-TACO and TabPFN-POT weights are downloaded
automatically from Hugging Face the first time you use TACOClassifier, so no
manual download or checkpoint_path is required. The weights are published at
https://huggingface.co/zabergjg/TabPFN-TACO.
License and Attribution
TACO-original code is released under the BSD 3-Clause License (see LICENSE).
This repository also includes code derived from TabPFN and TabICL, which remain
under their own licenses; see THIRD_PARTY_NOTICES.md and
the bundled texts in LICENSES/.
Public checkpoint and model artifacts are released under the names TabPFN-TACO and TabPFN-POT. The released checkpoints are trained from scratch and do not redistribute or use TabPFN or TabICL pretrained weights.
Built with PriorLabs-TabPFN
Acknowledgments
TACO builds on the open-source work of two projects, and we thank their authors:
- TabPFN (Prior Labs) — the tabular foundation model architecture that TACO compresses.
- TabICL (Soda team @ Inria) — whose prior-generation and pretraining code TACO's training pipeline builds on.
Citation
Author contribution: Guri Zabërgja and Rafiq Kamel contributed equally to the paper and implementation.
If you use this repository, please cite:
@inproceedings{zabergja2026endtoend,
title={End-to-End Compression for Tabular Foundation Models},
author={Guri Zab{\"e}rgja and Rafiq Kamel and Arlind Kadra and Christian Frey and Josif Grabocka},
booktitle={Forty-third International Conference on Machine Learning},
year={2026},
url={https://openreview.net/forum?id=84mfkGDxYh}
}
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tabpfn_taco-0.1.1.tar.gz.
File metadata
- Download URL: tabpfn_taco-0.1.1.tar.gz
- Upload date:
- Size: 188.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbdb2f1b808dfcb68c8aa37705dfd13d1dfe9de9dd8fa1793bc20c75cadc5667
|
|
| MD5 |
7935e3a22b9001cb8268f6a705f0e3c3
|
|
| BLAKE2b-256 |
d1c2de3250c4f1e8a8f404c0acfa778a922f30382d99a708f2bba4c213d1da56
|
Provenance
The following attestation bundles were made for tabpfn_taco-0.1.1.tar.gz:
Publisher:
release.yml on machinelearningnuremberg/TACO
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tabpfn_taco-0.1.1.tar.gz -
Subject digest:
cbdb2f1b808dfcb68c8aa37705dfd13d1dfe9de9dd8fa1793bc20c75cadc5667 - Sigstore transparency entry: 2616681478
- Sigstore integration time:
-
Permalink:
machinelearningnuremberg/TACO@e24c4c074db82db6eb7cdd1e7e2c1ff120aa2e2e -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/machinelearningnuremberg
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e24c4c074db82db6eb7cdd1e7e2c1ff120aa2e2e -
Trigger Event:
release
-
Statement type:
File details
Details for the file tabpfn_taco-0.1.1-py3-none-any.whl.
File metadata
- Download URL: tabpfn_taco-0.1.1-py3-none-any.whl
- Upload date:
- Size: 211.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c356e36dcf071de6cdcbcaa5388af658ee5284e9f11524c76dac80bd25aa67b
|
|
| MD5 |
191d71dc564d499c66c7844f6b87b23a
|
|
| BLAKE2b-256 |
faa9e0b25fcc9e7b675d896d140cd1ff8536f489a80d5429ef1e6be2c04c3ae6
|
Provenance
The following attestation bundles were made for tabpfn_taco-0.1.1-py3-none-any.whl:
Publisher:
release.yml on machinelearningnuremberg/TACO
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tabpfn_taco-0.1.1-py3-none-any.whl -
Subject digest:
7c356e36dcf071de6cdcbcaa5388af658ee5284e9f11524c76dac80bd25aa67b - Sigstore transparency entry: 2616682194
- Sigstore integration time:
-
Permalink:
machinelearningnuremberg/TACO@e24c4c074db82db6eb7cdd1e7e2c1ff120aa2e2e -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/machinelearningnuremberg
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e24c4c074db82db6eb7cdd1e7e2c1ff120aa2e2e -
Trigger Event:
release
-
Statement type: