TabPFN用一亿份合成表学会预测,2.8秒胜过调参四小时的最强基线

2026-09-24

Nature 上的 TabPFN 在最多一万行、五百列的表上,一次前向就超过调了四小时的 GBDT。分类默认归一化 ROC AUC 为 0.939,对照 CatBoost 只有 0.752,平均只要 2.8 秒。

这篇在解决什么

表格是科学和业务里最常见的监督数据,openml.org 上当时 76% 的数据集不到 1 万行。过去二十年这块地盘属于梯度提升树。深度网络吃亏在列的异质:布尔、类别、整数、浮点混在一张表里,还有缺失、不平衡、无关列和异常值。树模型换个数据集还得从头训,也难把梯度传给别的神经模块。

2023 年的初步 TabPFN 证明 in-context learning 能做小表分类,但规模小、不支持回归、对无关特征和异常值脆弱。这篇 Nature 论文把同一思路做成可用的表格基础模型:最多约 1 万样本、500 个特征,分类和回归都覆盖。

方法

算法本身是被学出来的。先验是结构因果模型:先抽表的大小、特征数、图复杂度,再搭一张 DAG。边上的计算可以是小网络、离散化或决策树,再叠高斯噪声、Kumaraswamy 扭曲和量化。缺失、无关列、类别和异常值都写进合成过程,让模型在合成表上自己学会对应策略。每个模型大约在 1 亿份合成任务上预训练,八张 RTX 2080 训两周,只做一次。

架构把每个单元格当成一个 token。一层先做行内特征注意力,再做同一列上的样本注意力,共 12 层,后面接 MLP。这样对行置换和列置换都不变,也能外推到预训练没见过的行数和列数。测试样本不能互相看,只能看训练集,所以可以把训练集的 key/value 缓存下来,拟合一次、反复预测。1 万行×10 列时,仅核心推理就比重算大约快 300 倍(CPU)和 6 倍(GPU)。半精度 LayerNorm、FlashAttention 和激活检查点把每格显存压到不到 1000 字节,单张 H100 能吃到约 5000 万个单元格。

回归输出是分段常数的 Riemann 分布,可以表示双峰这类多模目标。推理时还有一个只由 TabPFN 构成的事后集成版 TabPFN (PHE)。

结果

主评测取 AutoML Benchmark 和 OpenML-CTR23 里不超过 1 万行、500 列、10 类的 29 个分类和 28 个回归任务,90/10 划分,10 个种子。对照包括随机森林、XGBoost、CatBoost、LightGBM、SVM、MLP 和线性模型,调参最长 4 小时。

分类默认:归一化 ROC AUC,TabPFN 0.939,最强默认树 CatBoost 0.752。调 4 小时后是 0.952 对 0.822。回归默认归一化负 RMSE 0.923 对 0.872,调参后 0.968 对 0.875。分类平均 2.8 秒、回归 4.8 秒的默认 TabPFN,已经超过所有对照调 4 小时的版本,加速大约 5140 倍和 3000 倍。Wilcoxon 对默认 CatBoost 的 p 值小于 0.001。

和 AutoGluon 1.0 比:默认 TabPFN 2.8 秒就超过训 4 小时的 AutoGluon。TabPFN (PHE) 把归一化 ROC AUC 从 0.939 拉到 0.971,AutoGluon 是 0.914。回归侧 PHE 在最小 300 秒预算上超过 4 小时 AutoGluon,大约 48 倍。一半样本时,TabPFN 仍能打平用全数据的次优方法。无关列和异常值的压力测试里,它不比树更脆,MLP 则明显掉下去。

定性上,同一套默认权重既能拟合光滑曲线也能拟合阶跃;双缝干涉的光强分布一次前向就能给出多模密度,CatBoost 要训一串分位数模型,还更差。

为什么重要

小到中表上,「先训 GBDT 再调一夜」不再是默认。预训练一次,新表一次前向,还带预测分布。合成先验躲开了公开表的版权和测试污染,这是表格基础模型和语言模型最关键的差别之一。密度估计、合成新行、可复用 embedding 和微调都有概念验证,说明它不只是分类器。

作者写得很清楚:超过 1 万行、或者很不光滑的大回归,CatBoost、XGBoost 或 AutoGluon 仍可能更好。TabPFN 是工具箱里的一件,不是替换数据科学家。

局限与存疑

官方能力圈就是 1 万行、500 列、10 类,更大的表没有主文数字。推理按样本计并不快:1 万行×10 列预测一个点,GPU 0.2 秒、CPU 0.6 秒,默认 CatBoost 约 0.0002 秒;缓存解决的是重复预测训练集,不是单次延迟。显存随单元格线性涨,超大表会先爆内存。主文的「4 小时基线」用的是八核 CPU,TabPFN 额外有一张 2080 Ti,加速倍数里有硬件差。PHE 和 AutoGluon 的对照从 300 秒才开始,因为 AutoGluon 更短不一定能跑完。概念验证的生成和微调还不是生产功能。

术语

原文与代码

社区讨论

全部论文解读