加载中…
加载中…
A from-scratch reimplementation of the TabPFN v2 regressor (Hollmann et al., Accurate predictions on small data with a tabular foundation model, Nature 637, 2025). The model and inference follow the paper's Methods, and the training data come from the open TabICL prior. Code: Aiden-Jeon/minipfn (model src/minipfn/models/cell_transformer.py, training settings src/minipfn/recipes/tabpfn_v2.py).
This is not the official TabPFN v2 checkpoint, and it uses no official code or weights. For the official models see PriorLabs/TabPFN. The classifier is a separate model: aiden-jeon/minipfn-tabpfn-v2-classifier.
borders in model.safetensors).one_hot="all", the default), as long as the table stays within 160 columns.Three changes that are not in the paper keep regression training stable. Earlier runs without them collapsed to a constant prediction or became unstable somewhere between 190k and 300k steps.
Figures and numbers on this card come from the weights in this repo (sha256:2c205bace1d1, the first 12 hex digits of the SHA-256 of model.safetensors). It was trained in 100k-step chunks, each resuming the previous one. Train NLL is the mean over 1,000 steps; every step samples new prior tables. Val NLL is computed on 64 fixed prior tables every 5,000 steps. Final val NLL is −1.401.
The benchmark is the paper's 28 regression datasets. Each score is the RMSE averaged over the 10 OpenML folds. Paper values come from Supplementary Table 2 (TabPFN v2, default settings). RMSE has a different unit on every dataset, so a plain mean is dominated by a few large-scale targets. The main summary is therefore the RMSE ratio to the paper per dataset (below 1 is better than the paper), combined as a geometric mean. All figures use the default inference settings (one_hot="all").
| Checkpoint | RMSE ratio, geo. mean | RMSE ratio, median | Datasets within 1.1× | Mean neg RMSE |
|---|---|---|---|---|
| 100k steps | 1.167 | 1.059 | 18/28 | −1802.8 |
| 200k steps | 1.183 | 1.057 | 20/28 | −1826.3 |
| 300k steps | 1.159 | 1.026 | 19/28 | −1822.5 |
| 400k steps | 1.172 | 1.041 | 18/28 | −1751.3 |
| 500k steps (this model) | 1.118 | 1.023 | 21/28 | −1706.4 |
| Paper | 1 | 1 | 28/28 | −1685.6 |
On 7 datasets this model beats the paper's RMSE (socmob 0.93×, geographical_origin_of_music, boston, MIP-2016-regression 0.98×). Most of the gap comes from four datasets:
| Dataset | RMSE ratio |
|---|---|
| auction_verification | 2.66 |
| cpu_activity | 2.25 |
| grid_stability | 1.42 |
| airfoil_self_noise | 1.32 |
uv pip install "minipfn @ git+https://github.com/Aiden-Jeon/minipfn"
from minipfn import TabPFNv2Regressor
# downloads aiden-jeon/minipfn-tabpfn-v2-regressor (weights and bucket borders)
# x_train can be a pandas DataFrame with categorical columns
reg = TabPFNv2Regressor().fit(x_train, y_train)
pred = reg.predict(x_test) # (n_test,), mean of the predicted distribution
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 regression \
--regressor-path hf://aiden-jeon/minipfn-tabpfn-v2-regressor
Add --one-hot off,power,all to also score the other one-hot modes. The headline numbers stay those of the default mode.
The checkpoints from the Results table are kept as branches of this repo. Each branch holds the weights, bucket borders, config and a short README that points back here; this card on main describes all of them.
| Branch | Weights | RMSE ratio, geo. mean |
|---|---|---|
step-100k |
sha256:32de217b027e |
1.167 |
step-200k |
sha256:d1021734f535 |
1.183 |
step-300k |
sha256:afb7457953c6 |
1.159 |
step-400k |
sha256:24e07260753f |
1.172 |
main (500k) |
sha256:2c205bace1d1 |
1.118 |
reg = TabPFNv2Regressor("aiden-jeon/minipfn-tabpfn-v2-regressor@step-100k")
In the benchmark script, write the branch after @: --regressor-path hf://aiden-jeon/minipfn-tabpfn-v2-regressor@step-100k.
model.safetensors: weights and the 5,001 bucket borders (borders)config.json: model size (CellTransformerConfig fields) and taskimages/: 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.
@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}
}