TabPFN 表格数据基础模型安装、分类回归用法与性能调优指南【免费下载链接】TabPFN⚡ TabPFN: Foundation Model for Tabular Data ⚡项目地址: https://gitcode.com/GitHub_Trending/ta/TabPFNTabPFN 是一个面向表格数据的基础模型你只需要把训练集喂给它再前向传播一次就能在 1 秒左右拿到分类或回归的预测结果省掉特征缩放、逐折调参和反复试模型的整条流程。这篇指南覆盖安装、首次运行会下载什么、分类与回归两类任务的最小用法、模型版本选择以及常见的内存与速度问题照着走一遍即可上手。安装 TabPFN 并跑通第一个模型一条 pip 命令装好即可前提是 Python 3.10 及以上3.10 到 3.14 均已验证PyTorch 会作为依赖一并装上。pip install tabpfn首次调用fit时会发生两件一次性的事从缓存目录下载模型权重自动打开浏览器让你登录 PriorLabs 账号并接受新版模型2.5、2.6、3的许可条款令牌会缓存在本地之后不再重复。如果你在 CI 或无浏览器的服务器上跑去 ux.priorlabs.ai 的 License 页接受条款然后把账号令牌写进环境变量TABPFN_TOKEN不想要自动弹浏览器的话还可以设TABPFN_NO_BROWSER。部署到内网机器时先在有网环境执行仓库自带的脚本把所有权重含 ensemble 变体拉到默认缓存目录再整体迁移python scripts/download_all_models.py也可以手动把 .ckpt 文件放进缓存目录Linux 默认是~/.cache/tabpfn/或者在构造模型时直接传model_path指向文件。用 TabPFNClassifier 做二分类和多分类分类器走的是标准 sklearn 接口直接传 DataFrame 就行字符串类别列和缺失值都会自动处理不需要你提前做填充、one-hot 或标准化。from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from tabpfn import TabPFNClassifier X, y load_breast_cancer(return_X_yTrue) X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state0) clf TabPFNClassifier() clf.fit(X_train, y_train) print(clf.predict(X_test)) # 类别标签 print(clf.predict_proba(X_test)) # 各类概率多分类任务同样适用n_estimators控制内部 ensemble 的前向次数默认auto会按数据宽度自动决定。这里有一个容易踩的坑每次predict都会重算训练集的表示所以把 100 个样本拆成 100 次单独调用耗时大约是单次批量调用的 100 倍。测试集大就按每块约 1000 行分片后拼接结果参考 examples/batched_classification_cv.py。用 TabPFNRegressor 做回归回归器和分类器是同一套用法predict默认返回分布的均值作为点估计也可以直接要分位数或众数做区间预测很方便。from sklearn.datasets import load_diabetes from sklearn.model_selection import train_test_split from tabpfn import TabPFNRegressor X, y load_diabetes(return_X_yTrue) X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.33, random_state42) reg TabPFNRegressor() reg.fit(X_train, y_train) print(reg.predict(X_test)) # 点估计 # 想要分位数 # reg.predict(X_test, output_typequantiles, quantiles[0.25, 0.5, 0.75])完整评估代码MSE、MAE、R² 对比见 examples/tabpfn_for_regression.py。模型版本怎么选许可要注意什么默认实例化得到的是 TabPFN-3它也是容量最大的版本但新版权重2.5 / 2.6 / 3都采用非商用许可——如果你的项目要商用先用 Apache 2.0 许可的 v2 权重写法如下from tabpfn import TabPFNRegressor from tabpfn.constants import ModelVersion reg TabPFNRegressor.create_default_for_version(ModelVersion.V2)各版本的行数与特征数上限差别很大选型前先看这一张对照行 × 列版本推荐上限TabPFN-3默认1,000,000 × 200100,000 × 2,0001,000 × 20,000TabPFN-2.6约 100,000 行、2,000 特征数据超限时你可以降采样或者传ignore_pretraining_limitsTrue绕过保护直接跑但超出训练分布的数据量效果不保证。内存和速度不够时的几个开关 结论先行显存是 TabPFN 体验的分水岭有 GPU 和没 GPU 基本是两种产品。GPU较老的 8GB 显存就能跑大一点的测试集建议 16GBApple Silicon 会自动走 Metal 后端MLXLinux 上 AMD 卡需要先装 ROCm 版 PyTorch。纯 CPU默认 TabPFN-3 只建议不超过 5000 行旧版本是 1000 行。实在要在 CPU 上跑更大的数据设TABPFN_ALLOW_CPU_LARGE_DATASETtrue放行但别指望快。自定义缓存位置export TABPFN_MODEL_CACHE_DIR/path/to/models配合PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb:512可以缓解显存碎片问题。当你需要反复预测时开启 KV 缓存。默认fit_modefit_preprocessors会在每次predict时重算训练集如果你要做交叉验证、或者对同一份训练集做多轮批量评估改用fit_with_cache把这部分开销前置到fitclf TabPFNClassifier(fit_modefit_with_cache) # fit 变慢predict 变快 clf.fit(X_train, y_train)代价是额外约 O(样本数 × 特征数) 的显存来存缓存。训练集越大、预测次数越多收益越明显实测对比脚本在 examples/kv_cache_fast_prediction.pyTABPFN_MAX_BATCHED_TEST_ROWS可以控制缓存推理时单次前向的测试行数上限默认 32768峰值内存有界。模型训好之后想持久化用官方提供的序列化函数避免下次重跑 fitfrom tabpfn.model_loading import save_fitted_tabpfn_model, load_fitted_tabpfn_model save_fitted_tabpfn_model(reg, my_reg.tabpfn_fit) reg_loaded load_fitted_tabpfn_model(my_reg.tabpfn_fit)效果不好时该调什么、不该调什么调优方向很明确加领域特征有效手工预处理基本无效——官方明确说了改特征缩放、把类别列转成数值编码并不会帮助模型它内部有完整的清洗和编码管线你塞进去的原生数据反而是它期望的输入。进一步提升的路线是特征工程加 prompt 调优仓库提供了 examples/prompt_tuning_classifier.py、examples/input_gradients.py。如果想在自家数据上微调tabpfn.finetuning模块里有现成封装官方示例 examples/finetune_classifier.py 建议用 80GB 显存的 CUDA GPU多卡场景用torchrun启动先读一下脚本头部注释再动手。更多细节可以翻 examples/ 下的全部脚本、src/tabpfn/ 的源码架构、预处理和微调都在里面以及仓库自带的 Colab 演示 notebook examples/notebooks/TabPFN_Demo_Local.ipynb。从装包到出预测结果通常不超过五分钟建议先用你手头最小的一份表格数据把完整流程跑通再按上面提到的容量、显存和缓存策略往大尺度推。【免费下载链接】TabPFN⚡ TabPFN: Foundation Model for Tabular Data ⚡项目地址: https://gitcode.com/GitHub_Trending/ta/TabPFN创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
