Skip to main content

TACO 🌮

Python License: BSD-3-Clause Paper

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.sh
  • scripts/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

tabpfn_taco-0.1.1.tar.gz (188.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tabpfn_taco-0.1.1-py3-none-any.whl (211.0 kB view details)

Uploaded Python 3

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

Hashes for tabpfn_taco-0.1.1.tar.gz
Algorithm Hash digest
SHA256 cbdb2f1b808dfcb68c8aa37705dfd13d1dfe9de9dd8fa1793bc20c75cadc5667
MD5 7935e3a22b9001cb8268f6a705f0e3c3
BLAKE2b-256 d1c2de3250c4f1e8a8f404c0acfa778a922f30382d99a708f2bba4c213d1da56

See more details on using hashes here.

Provenance

The following attestation bundles were made for tabpfn_taco-0.1.1.tar.gz:

Publisher: release.yml on machinelearningnuremberg/TACO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for tabpfn_taco-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7c356e36dcf071de6cdcbcaa5388af658ee5284e9f11524c76dac80bd25aa67b
MD5 191d71dc564d499c66c7844f6b87b23a
BLAKE2b-256 faa9e0b25fcc9e7b675d896d140cd1ff8536f489a80d5429ef1e6be2c04c3ae6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tabpfn_taco-0.1.1-py3-none-any.whl:

Publisher: release.yml on machinelearningnuremberg/TACO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page