TabPFN-3 is a transformer-based foundation model that leverages In-Context Learning (ICL) to solve tabular classification and regression problems instantly in a single forward pass. Developed by Prior Labs, this multi-stage transformer eliminates the need for traditional iterative training (e.g., hyperparameter tuning or gradient descent loops) at inference time.
Code and documentation are publicly available in the official GitHub repository.
Traditional tabular machine learning algorithms (like XGBoost or LightGBM) require explicit training cycles for every new dataset. TabPFN-3 bypasses this restriction entirely by treating tabular classification and regression as an in-context translation task, where the training set acts as the prompt and test predictions are generated sequentially.
Key traits of TabPFN-3:
The core of TabPFN-3 relies on a highly optimized, multi-stage transformer-based architecture consisting of 24 main layers. It processes both the labeled training points and unlabeled evaluation points simultaneously to predict target distributions.
The ecosystem includes a default pipeline alongside highly targeted variants designed for specialized deployment conditions:
squashing_scaler_max10 and quantile_uni_extrapolate) designed to maintain extrapolation stability when test values stray outside training boundaries.TabPFN-3 is intended for:
Limitations:
pip install tabpfn
The model uses a clean, scikit-learn-compatible interface, allowing it to drop into existing data pipelines seamlessly.
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from tabpfn import TabPFNClassifier
# Load a benchmark matrix
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)
# Instantiate and fit via ICL forward-pass
clf = TabPFNClassifier()
clf.fit(X_train, y_train)
# Query predictions instantly
prediction_probabilities = clf.predict_proba(X_test)
predictions = clf.predict(X_test)
print("Accuracy", accuracy_score(y_test, predictions))
from tabpfn import TabPFNClassifier
# Initialize utilizing a specialized binary classification checkpoint
clf = TabPFNClassifier(model_path="tabpfn-v3-classifier-v3_20260417_binary.ckpt")
@misc{grinsztajn2026tabpfn3technicalreport,
title={TabPFN-3: Technical Report},
author={L{\'e}o Grinsztajn and Klemens Fl{\"o}ge and Oscar Key and Felix Birkel and Philipp Jund and Brendan Roof and Mihir Manium and Shi Bin and Hoo and Magnus B{\"u}hler and Anurag Garg and Dominik Safaric and Jake Robertson and Benjamin J{\"a}ger and Simone Alessi and Adrian Hayler and Vladyslav Moroshan and Lennart Purucker and Philipp Singer and Alan Arazi and Julien Siems and Jan Hendrik Metzen and Georg Grab and Nick Erickson and Siyuan Guo and Eliott Kalfon and Simon Bing and David Salinas and Clara Cornu and Lilly Charlotte Wehrhahn and Diana Kriuchkova and Kursat Kaya and Lydia Sidhoum and Marie Salmon and Jerry Chen and Madelon Hulsebos and Yann LeCun and Samuel M{\"u}ller and Bernhard Sch{\"o}lkopf and Sauraj Gambhir and Noah Hollmann and Frank Hutter},
year={2026},
eprint={2605.13986},
archivePrefix={arXiv},
url={https://arxiv.org/abs/2605.13986},
}