TabPFN 快速上手:表格分类回归 1 秒出结果的完整指南
【免费下载链接】TabPFN⚡ TabPFN: Foundation Model for Tabular Data ⚡项目地址: https://gitcode.com/GitHub_Trending/ta/TabPFN
TabPFN 是 Prior Labs 开源的表格数据基础模型,专治「小数据集反复调参、训练半天出不了结果」的痛点:一次前向传播直接出预测,分类、回归通常 1 秒搞定,还兼容 sklearn 的 fit/predict 接口,可以直接替换你手头的项目。
一键装好 TabPFN
要求 Python 3.10+,PyTorch ≥2.5;有 NVIDIA GPU 最舒服,8GB 显存即可,16GB 能跑更大的数据集。Apple Silicon 的 Mac 自动启用 MPS 加速。没有显卡也能在 CPU 上跑,只是样本量受限。
pip install tabpfn5 行代码跑通第一个分类和回归例子
下面两段都能直接复制运行,首次 fit 会自动下载模型权重:
from tabpfn import TabPFNClassifier from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split 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.3) clf = TabPFNClassifier() clf.fit(X_train, y_train) proba = clf.predict_proba(X_test)from tabpfn import TabPFNRegressor from sklearn.datasets import load_diabetes from sklearn.model_selection import train_test_split X, y = load_diabetes(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) reg = TabPFNRegressor() reg.fit(X_train, y_train) preds = reg.predict(X_test)核心能力拆解
分类与回归统一接口:像换 sklearn 模型一样换 TabPFN
TabPFNClassifier 和 TabPFNRegressor 都兼容 sklearn 的 fit/predict/predict_proba 协议,二分类、多分类、连续值回归开箱即用。特征缺失值、类别列、缩放等预处理由内置管道自动完成,你不需要自己写编码器。
推理模式可调:fit 慢一点,predict 快很多
fit 时通过 fit_mode 选择策略,可选 low_memory(省内存)、fit_preprocessors、fit_with_cache、batched。选 fit_mode="fit_with_cache" 会在 fit 阶段建好 KV 缓存,把训练集表示的开销前置,之后每次 predict 都更快。适合交叉验证、批量评估这类反复推理的场景,参考示例 examples/kv_cache_fast_prediction.py。训练好的模型可用 tabpfn/model_loading.py 里的 save_fitted_tabpfn_model / load_fitted_tabpfn_model 直接落盘部署。
模型版本与微调:生产可用,领域可再榨一层
默认加载 TabPFN-3,但权重是非商业授权;商用场景请用 Apache 2.0 授权的 v2 权重,用 TabPFNClassifier.create_default_for_version(ModelVersion.V2) 一行切换。数据量大且领域集中时,可套一层 FinetunedTabPFNClassifier 或 FinetunedTabPFNRegressor(src/tabpfn/finetuning/),接口不变,fit 时自动执行小学习率的微调循环,完整流程看 examples/finetune_classifier.py。
进阶调优:三个最常用参数
- GPU 吃紧 / Mac 内存告警:调低 MPS 内存占用比例。
- CPU 上想跑超默认上限的样本数:设一个环境变量放行。
- 模型缓存不在默认目录:自定义落盘位置。
export TABPFN_MPS_MEMORY_FRACTION=0.5 # Mac 上限制显存占用比例 export TABPFN_ALLOW_CPU_LARGE_DATASET=1 # 允许 CPU 跑大数据集 export TABPFN_MODEL_CACHE_DIR=/data/models # 自定义权重缓存目录落地场景
- 医疗数据:小样本风险分层、疗效预测,样本少正适合 TabPFN 这类基础模型。
- 金融风控:信用评分、欺诈检测,直接输出概率便于接下游阈值策略。
- 快速基线:拿到一份新表格数据,先跑个 TabPFN 当 baseline,再决定要不要上更复杂的模型。
排错速查
- 症状:首次 fit 卡住不动 → 原因:正在联网下载权重 → 解法:等它进缓存目录,或提前跑 scripts/download_all_models.py。
- 症状:CPU 上 fit 报样本数超限 → 原因:默认上限约 5000 行(旧版本 1000)→ 解法:换 GPU,或设 TABPFN_ALLOW_CPU_LARGE_DATASET=1。
- 症状:Mac 上系统内存吃满 → 原因:MPS 默认占用 70% → 解法:export TABPFN_MPS_MEMORY_FRACTION=0.5。
- 症状:商用项目担心授权 → 原因:TabPFN-3 权重限非商业 → 解法:切到 ModelVersion.V2(Apache 2.0)。
架构速览
它凭什么 1 秒出结果:训练阶段在海量合成表格上学会「看数据分布猜标签」,推理时把整个训练集当上下文、测试集当查询,一次 Transformer 前向就吐出每个样本的概率分布,完全省掉迭代训练的环节。TabPFN-3 的结构是分布嵌入加行内、行间双层注意力,最后按行读出 token。
想继续深入,从 examples/ 目录的示例和 examples/notebooks/TabPFN_Demo_Local.ipynb 交互式教程开始就对了。
【免费下载链接】TabPFN⚡ TabPFN: Foundation Model for Tabular Data ⚡项目地址: https://gitcode.com/GitHub_Trending/ta/TabPFN
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考