A from-scratch reimplementation of the TabPFN-2.5 classifier (TabPFN-2.5: Advancing the State of the Art in Tabular Foundation Models, 2025). It applies the architecture changes that report lists to our TabPFN v2 reimplementation, then trains on the open TabICL prior. Code: Aiden-Jeon/minipfn (model src/minipfn/models/cell_transformer.py, settings src/minipfn/recipes/tabpfn_v2.py).
This is not the official TabPFN-2.5 checkpoint, and it uses no official code or weights. The official weights are under the TABPFN-2.5 License; see PriorLabs/TabPFN. The report does not publish the model width, prior details or training recipe, so those parts are our own choices (marked below).
one_hot="all"), as long as the table stays within the feature limit. Softmax temperature is 0.9. These settings ship in config.json (inference).Two stages, both with batch 64 tables, bf16 and gradient clipping 1.0.
Compute: 8×H100 for 0–100k, 16×H100 for 100k–300k, 32×H100 for 300k–500k, and 16×H100 for the long-table stage. About 46 hours of wall-clock time, roughly 810 H100-hours (not counting short timing runs).
QK-clip. Row-attention heads can grow their query–key logits without limit until all weight goes to one row (an attention sink). Layer inputs come out of a LayerNorm, so a head's logits are bounded by σ_max(W_qᵀW_k)·E/√d (E = emsize). Every 50 steps, any head whose bound exceeds τ has its W_q and W_k scaled down to meet it. The bound had reached about 2,500 by 100k, so τ was set to 3000 to stop further growth without cutting the trained attention; it started clipping at about 230k. This changes training only.
Figures and numbers on this card come from the long-table checkpoint in this repo (sha256:833059512de5, the first 12 hex digits of the SHA-256 of model.safetensors), which started from the 500k-step checkpoint (branch step-500k). Train CE is the mean over 1,000 steps; every step samples new prior tables. Val CE is computed every 5,000 steps on fixed prior tables: 64 at the paper sizes (final 0.705) and 32 long tables in the second stage (final 0.499). The two val sets differ, so their values are not comparable. The spike near 445k is a collapse that the guard rewound.
The 29 AMLB classification datasets from the TabPFN v2 paper. Each score is the mean ROC AUC over the 10 OpenML folds. The reference values are the TabPFN v2 paper's (Supplementary Table 1, default settings); the 2.5 report has no per-dataset table for this suite. "minipfn v2" is our TabPFN v2 reimplementation trained the same way (aiden-jeon/minipfn-tabpfn-v2-classifier).
| Checkpoint | Mean ROC AUC | minipfn v2, same step |
|---|---|---|
| 100k steps | 0.9191 | 0.9175 |
| 200k steps | 0.9279 | 0.9225 |
| 300k steps | 0.9291 | 0.9208 |
| 400k steps | 0.9322 | 0.9197 |
| 500k steps | 0.9325 | 0.9238 |
| 500k + long tables 10k | 0.9336 | |
| 500k + long tables 20k (this model) | 0.9343 | |
| TabPFN v2 paper | 0.9323 |
This model matches or beats the paper on 18 of 29 datasets. The largest remaining gaps are philippine (5,832 rows × 308 features, −0.015) and credit-g (−0.005); no other dataset is more than 0.0025 below.
The long-table stage helped most where tables are large: +0.0026 on the 16 datasets with more than 2,048 training rows, +0.0048 on the 5 with more than 100 features, and +0.0008 on the rest. philippine rose by 0.023.
The architecture, not the preprocessing, carries the gain over minipfn v2: scoring the v2 500k checkpoint with this card's members (quantile + robust) changes its mean only from 0.9238 to 0.9240.
TabArena-Lite (51 datasets, one split each), scored the way the public leaderboard is: Elo against the leaderboard's method pool, with RandomForest (default) at 1000. The classifier and the regressor run together, so this table is the same on both cards. Splits above the model's size limit (50,000 training rows, 2,000 features, 10 classes) are not run; as on the leaderboard, they take RandomForest (default)'s result ("imputed"). Every method on the public leaderboard is 8-fold bagged; this model is fit once per split.
| Method | Elo | Imputed splits |
|---|---|---|
| minipfn TabPFN-2.5 (this model) | 1436 (+53/−64) | 7.8% |
| minipfn TabPFN v2 | 1221 | 35.3% |
| TabPFNv2 (default), public | 1224 | |
| RealTabPFN-2.5 (default), public | 1514 | |
| TabICLv2 (default), public | 1560 |
This model places 21st of 99 methods. By problem type its Elo is 1445 (binary), 1457 (multiclass) and 1546 (regression). It beats TabPFNv2 (default) on 73% of the splits, CatBoost (default) and tuned + ensembled XGBoost on 65%, and RealTabPFN-2.5 (default) on 43%.
Part of the gain over minipfn v2 comes from the larger size limit: 14 datasets that v2 has to impute run here. On the 33 splits both models run, this model has the lower error on 26 (geometric mean error ratio 0.90): 23 of 26 classification splits but only 3 of 7 regression splits.
BeyondArena core2k (2,000 splits from 142 datasets), scored like its public leaderboard with XGBoost (default) at 1000. Splits above the size limit, and the 5 that ran out of GPU memory (see Limitations), take RandomForest (default)'s result: 8.2% of the splits (minipfn v2: 15.8%).
| Method | Elo |
|---|---|
| TabICLv2 (default), public | 1172 |
| RealTabPFN-2.5 (default), public | 1143 |
| minipfn TabPFN-2.5 (this model) | 1096 (+29/−32) |
| XGBoost (tuned), public | 1092 |
| minipfn TabPFN v2 | 1007 |
| XGBoost (default), public | 1000 |
This model places 25th of 41 methods (minipfn v2: 30th). It is strongest on tiny and small tables (Elo 1269 and 1227) and random splits (1174), and weakest on high-cardinality categorical features (715), temporal splits (823), text features (876) and high-dimensional tables (908). On the 1,685 splits both minipfn models run, this model has the lower error on 1,027 and the higher on 646 (geometric mean error ratio 0.98).
uv pip install "minipfn @ git+https://github.com/Aiden-Jeon/minipfn"
from minipfn import TabPFNv2_5Classifier
# downloads aiden-jeon/minipfn-tabpfn-v2-5-classifier
# x_train can be a pandas DataFrame with categorical columns
clf = TabPFNv2_5Classifier().fit(x_train, y_train)
proba = clf.predict_proba(x_test) # (n_test, n_classes), columns in clf.classes_ order
fit does not train weights. It fits each ensemble member's preprocessing on the training rows, which then serve as context at prediction time. To reproduce the benchmark (downloads the OpenML tasks):
uv run python scripts/tabpfn_v2/eval.py --suite classification \
--classifier-path hf://aiden-jeon/minipfn-tabpfn-v2-5-classifier
The prior-fitting checkpoints from the Results table are kept as branches of this repo. Each branch holds the weights, config and a short README that points back here; this card on main describes all of them.
| Branch | Weights | Mean ROC AUC |
|---|---|---|
step-100k |
sha256:8a5413649365 |
0.9191 |
step-200k |
sha256:53ff20811d73 |
0.9279 |
step-300k |
sha256:29121d7b1b19 |
0.9291 |
step-400k |
sha256:ddd895289539 |
0.9322 |
step-500k |
sha256:f279bedd1db9 |
0.9325 |
main (500k + long tables 20k) |
sha256:833059512de5 |
0.9343 |
clf = TabPFNv2_5Classifier("aiden-jeon/minipfn-tabpfn-v2-5-classifier@step-500k")
In the benchmark script, write the branch after @: --classifier-path hf://aiden-jeon/minipfn-tabpfn-v2-5-classifier@step-500k.
model.safetensors: weightsconfig.json: model size (CellTransformerConfig fields), task and inference settingsimages/: figures used in this cardApache-2.0. The training data were generated with the TabICL prior (BSD-3-Clause); no TabICL code is included here. No TabPFN-2.5 code or weights are included.
@article{grinsztajn2025tabpfn25,
title = {{TabPFN-2.5}: Advancing the State of the Art in Tabular Foundation Models},
author = {Grinsztajn, L{\'e}o and others},
journal = {arXiv preprint arXiv:2511.08667},
year = {2025}
}
@article{hollmann2025tabpfn,
title = {Accurate predictions on small data with a tabular foundation model},
author = {Hollmann, Noah and M{\"u}ller, Samuel and Purucker, Lennart and Krishnakumar, Arjun and K{\"o}rfer, Max and Hoo, Shi Bin and Schirrmeister, Robin Tibor and Hutter, Frank},
journal = {Nature},
volume = {637},
pages = {319--326},
year = {2025},
doi = {10.1038/s41586-024-08328-6}
}
@inproceedings{qu2025tabicl,
title = {{TabICL}: 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}
}