以下、A4 一枚程度に整理した内容です。
url: https://github.com/PriorLabs/TabPFN keywords: tabular, foundation-model, transformer, classification, regression, in-context-learning, scikit-learn, PyTorch oneliner: 表形式データ向けの「学習済み基盤モデル」で、fit/predict をするだけで XGBoost 等を凌駕する精度を瞬時に出せる Transformer ベースのライブラリ。 —
TabPFN(Tabular Prior-data Fitted Network) は、Prior Labs が公開している 表形式データ(tabular data)専用の基盤モデル(Foundation Model) の公式実装。Nature 2025 掲載論文と TabPFN-2.5 テクニカルレポートに基づく。
fit() 時に学習データをそのまま「コンテキスト」として読み込み、predict() で推論する in-context learning 型 の分類・回帰器。TabPFNClassifier / TabPFNRegressor。ModelVersion で切替可能。HuggingFace から自動ダウンロード。tabpfn-client(クラウド API)、tabpfn-extensions(HPO・SHAP・アンサンブル等)、tabpfn-time-series、ノーコード UI TabPFN UX。主な構成: src/tabpfn/(classifier.py, regressor.py, inference.py, finetuning/, preprocessing/, model/ 等)、examples/(分類・回帰・finetune・KV キャッシュ・SageMaker サンプル)、tests/。
表形式タスクでは長年 GBDT(XGBoost / LightGBM / CatBoost) が王者で、ディープラーニング系(TabNet, FT-Transformer 等)はなかなか勝てなかった。TabPFN はそこを覆す。
| 観点 | GBDT (XGBoost等) | 従来の Tabular DL | TabPFN |
|---|---|---|---|
| 学習時間 | 数十秒〜分 | 分〜時間(要 HPO) | ほぼゼロ秒(重みは事前学習済み) |
| ハイパラ調整 | 必須 | 必須 | 基本不要(デフォルトで強い) |
| 小〜中規模での精度 | 強い | 並 | SOTA(Nature 論文・TabPFN-2.5 で複数ベンチ更新) |
| 前処理 | 多くの場合スケーリング/エンコーディング要 | 同左 | 不要(生データ投入推奨、欠損値もそのまま OK) |
| 大規模データ | 数百万行 OK | OK | △(〜10万行が限界、企業版で1000万行) |
| 解釈性・拡張 | 成熟 | 限定的 | extensions で SHAP・Feature Selection・PDP 等を提供 |
要するに 「小〜中規模の表データなら、調整なしで一発で最強クラスの精度が出る」 のが最大の売り。さらに、埋め込み抽出・データ生成・外れ値検知などの 教師なしユースケース にも転用でき、「表データの GPT 的存在」と位置付けられる。
pip install tabpfn(または uv sync でローカル開発)。tabpfn-client を選ぶ。fit() でブラウザが開き PriorLabs にログイン → ライセンス同意。CI 等では TABPFN_TOKEN 環境変数で代替。モデル重みも自動ダウンロード(TABPFN_MODEL_CACHE_DIR で配置場所変更可、scripts/download_all_models.py でオフライン用一括取得)。from tabpfn import TabPFNClassifier
clf = TabPFNClassifier() # GPU 自動検出
clf.fit(X_train, y_train) # スケーリング・OHE は不要
y_pred = clf.predict(X_test) # X_test はまとめて投入(バッチ推奨)
tabpfn-time-seriesignore_pretraining_limits=True または Large Datasets Guidemany_class 拡張examples/finetune_classifier.py / finetune_regressor.py で fine-tuningfit_mode='fit_with_cache' で KV キャッシュ有効化save_fitted_tabpfn_model / load_fitted_tabpfn_model で永続化。predict は 必ずまとめて呼ぶ(毎回トレーニングセットを再計算するため、サンプルごとに呼ぶと約100倍遅い)。テストが大きければ 1000 件ずつチャンク。TABPFN_DISABLE_TELEMETRY=1 でオプトアウト可。