2026-09-08 機械学習勉強会

今週のTOPIC[paper] SciDocBench: A Workflow-Centered Benchmark and Data Pipeline for Scientific Document Understanding[paper] Visual General Intelligence: A White Paper[paper] SKILL.state: Scalable Long-Horizon Agent Skills[blog]A guide to the anatomy of effective commerce agents[paper]Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth ApproachメインTOPICTabPFNシリーズ1. 小さな表データの予測にかかる手間勾配ブースティングが表形式データで強い理由深層学習が表形式データで負け続けた歴史表形式データの基盤モデルという第三の道2. 学習済みモデルに表を丸ごと見せるという発想言語モデルの in-context learning訓練データを文脈として渡す表形式の in-context learningハイパーパラメータ探索が消える理由3. Prior-data Fitted Networks の考え方ベイズ推論による予測と事後予測分布事前分布から無数のデータセットを引いて学ぶ事前学習が事後予測分布の近似になる仕組み4. 合成データを生み出す事前分布構造因果モデルによるデータ生成欠損値、外れ値、カテゴリ変数、ノイズの再現現実のデータを事前学習に使わない設計5. TabPFN v2 のアーキテクチャセルを単位とする二方向の attention行の順序と特徴量の順序に依存しない設計分類と回帰の出力の作り方論文で示された性能1万行・500特徴の制約6. TabPFN-2.5 から TabPFN-3 への拡張世代ごとの対応規模100万行・200特徴への対応KV cache 削減と row-chunking による高速化多クラス分類の上限緩和リレーショナルデータへの対応と RelBenchテーブルとテキストの併用と TabSTARTabPFN-3-Plus7. 実際に動かしてみたタイタニックまとめ

今週のTOPIC

※ [paper] [blog] など何に関するTOPICなのかパッと見で分かるようにしましょう。
技術的に学びのあるトピックを解説する時間にできると🙆(AIツール紹介等はslack channelでの共有など別機会にて推奨)
出典を埋め込みURLにしましょう。

@Naoto Shimakoshi

[paper] SciDocBench: A Workflow-Centered Benchmark and Data Pipeline for Scientific Document Understanding

 

@Yuya Matsumura

[paper] Visual General Intelligence: A White Paper

 

@Hiromu Nakamura (pon)

[paper] SKILL.state: Scalable Long-Horizon Agent Skills

 

概要

本論文では、LLMを用いた自律エージェントの長期間にわたる複雑な手続き的スキル実行における課題を解決するため、新しいランタイムアーキテクチャ「SKILL.state」を提案している。
従来のエージェントランタイムは、会話履歴をすべてプロンプトに含める「会話型実行モデル」を採用しており、実行期間が長くなるにつれてコンテキストが肥大化し、推論コストの増大やコンテキスト汚染による精度低下を招いていた。SKILL.stateは、会話履歴の累積を廃し、明示的かつ可変な構造化実行状態を維持することで、効率的かつ安定した長期間実行を実現する。

手法

SKILL.stateは、実行中のプロンプトサイズを、累積トークン消費量をは実行ステップ数)に抑える設計となっている。

1. 明示的な実行状態(Explicit Execution State)

従来の手法が会話履歴全体を再構築するのに対し、SKILL.stateは各ステップにおいて以下の3つの入力のみをLLMに提供する。
ここで、は不変の指示、は現在の構造化された状態、は最新の観測を示す。
履歴の代わりに保持される過去の観測、行動、推論のプロセスそのものは破棄され、その結果として更新された現在の事実のみが保持されます
Explicit & Mutableな自然言語のテキストとして埋もれているのではなく、ドメインごとに定義されたスキーマを持つ構造化データです。実行の各ステップで、LLMは新しい観測()と現在の状態()を受け取り、状態の「差分(State Patch / )」を出力して状態を書き換えます 。この更新プロセスは、プログラミングにおける変数の書き換えに近いモデルです 。
 
倉庫管理(Warehouse Management)タスクにおける の具体例を、論文の記述に基づいて構成すると以下のようになります。
  1. (Immutable Procedural Specification)
不変の指示エージェントに与えられる「マニュアル」に相当します。
  1. タスク目標: 「顧客の注文に応じて商品を発送し、在庫を最適に配置せよ」
  1. アクション定義: Store(item, shelf), Ship(item, shelf), Move(item, old, new), Wait 。
  1. 状態スキーマの定義: 「状態は inventory オブジェクトを持ち、キーは shelf_0 から shelf_499、値は item_id または null であること」というルール。
2. (Structured Execution State)
「今、どの棚に何があるか」の最新スナップショットです。
例 :
ここには「3ターン前に棚42に商品を入れた」という履歴は一切含まれません。ただ「今、棚42に商品12がある」という事実だけが書かれています 。
3. (Latest Observation)
最新の観測「たった今、環境で何が起きたか」という通知です。
  • 具体例: "Customer ordered item_12"(顧客が商品12を注文しました) 。
    • 次のステップでは、この観測は消えます。もしこの情報を覚えておきたいなら、エージェントは推論を通じて (状態)の pending_orders などの項目にこれを書き込まなければなりません。

2. 状態遷移と再帰的実行

各ステップでLLMは、Chain-of-Thoughtを用いた推論を行い、以下の出力を生成する。
  • : 中間的な推論トレース
  • : 状態更新(JSON形式のパッチ)
  • : 実行すべきアクション
このとき、中間推論 は状態更新後に即座に破棄される。実行状態は以下の演算により更新される。
これにより、実行に関連する必要最小限の情報のみが次のステップへ引き継がれる。

3. バリデーションと堅牢性

ランタイムはスキーマを管理し、LLMが提案した状態更新 を検証する。不正な状態更新はブロックされ、ロールバックが行われるため、LLMの幻覚や形式ミスが長期的な実行状態を汚染することを防ぐ。

実験と成果

提案手法の有効性を検証するため、以下のベンチマークを用いて評価を実施した。
  • SkillExecBench: 制御された倉庫管理およびソフトウェアリポジトリ環境での長期実行テスト。
  • InterCode CTF: Linuxターミナルを用いたサイバーセキュリティ課題。
  • Sierra -Bench: エンタープライズ向けのデータベース操作を伴う顧客サービスワークフロー。

結果

長期実行スケーラビリティの検証実験内容
  • Warehouse Management(倉庫管理)タスクにおいて、実行ステップ数(Horizon)を から まで増加させ、精度とコストを評価しました 。
  • 従来の履歴蓄積型(ReAct等)はステップ数が増えるほどプロンプトが巨大化し、トークン消費が で増大しますが、SKILL.state はプロンプトサイズを一定()に保ち、累積トークンを に抑えました 。
  • において、他手法が100万トークン以上消費するのに対し、SKILL.state は約6.5万トークン(約16.2倍の削減)で済み、かつ最高精度(0.94)を維持しました 。
 
ノイズ耐性(コンテキスト汚染)の検証実験内容
  • 実行環境から発生する無関係なシステムログやテレメトリなどの「ノイズ」を、1ターンあたり5〜50イベント注入し、エージェントの判断能力への影響を測定しました 。
  • 履歴に依存する手法はノイズが増えるほど精度が大幅に低下(0.68 → 0.53)しましたが、SKILL.state はほぼ完璧な精度()を維持しました 。これは、状態更新時に必要な情報だけを抽出・保存し、不要な履歴を破棄する設計が有効であることを示しています。
 
Table 3: 状態復旧能力(外部ドリフトへの対応)の検証実験
  • エージェントが知らない間に、外部の要因で環境の状態が変更された場合(例:別の誰かが在庫を移動させた)、その矛盾に気づいて正しい行動に戻れるかを評価しました 。主な成果:履歴ベースの手法は、過去の誤った情報がプロンプトに残っているため、正しい観測を得ても5〜8ターンほど「幻覚(hallucination)」を起こし続けました 。
  • 対照的に、SKILL.state は観測された瞬間に状態を更新するため、復旧までのターン数はゼロでした 。
 
公開ベンチマークでの実戦性能
  • Linux操作を行う「InterCode CTF」と、顧客対応ワークフローを扱う「Sierra -Bench」を用いて、現実的で非決定的なタスクでの性能を評価しました 。
  • すべてのベンチマークで最高成功率を達成しました。特に InterCode CTF では、試行錯誤の履歴を明示的な「仮説」として状態管理することで、Pass@1 を 54.2%(他手法より約8〜12ポイント向上)まで高めました 。同時にトークンコストを 40%〜60% 以上削減しました 。
 
 
予算一致コントロール実験
  • SKILL.state の優位性が単に「プロンプトが短いから」ではないことを確認するため、他の圧縮手法(LLMLinguaやスライディングウィンドウ)の予算を SKILL.state と同じ(約1,800文字)に制限して精度を比較しました 。
  • 単純な履歴の切り捨てや統計的圧縮を用いたベースラインは、重要な過去の情報が欠落するため精度が壊滅的(0.18〜0.22)になりました 。一方、SKILL.state は 0.94 を維持しており、「構造化された明示的な状態」として情報を保持することの不可欠性が証明されました 。

結論

SKILL.stateは、エージェントの実行を「会話の蓄積」から「状態の遷移」へとパラダイムシフトさせることで、長期間の自律タスクにおける実行効率と信頼性を飛躍的に向上させた。このアーキテクチャはモデルの推論能力に依存せず、システム的な抽象化によってスケーラビリティを確保するものであり、実環境での複雑なエージェント運用において極めて有効である。
 
[pon] ドメイン、タスクごとに状態というスキーマを切っておくのは我々のようにドメイン特化のagentを作る際には便利そう。token数を下げていけるのはコスト的にも良い。

@Kyohei Uto(kuto)

[blog]A guide to the anatomy of effective commerce agents

AnthropicのAIエージェント主体のプロダクト作りとして参考になったので抜粋して紹介
 
  • コマースエージェントとは、オンライン上で商品の購入・販売プロセスを行うエージェント
 
裏側はエージェントループで作成している
 
  • 商品購入処理、返品処理といった領域でエージェントを分けない
  • マークアップ言語を直接テキストとして書かせるのはNG
 
  • markdownではなく独立した専用DBを用意し構造化してもつ
  • プロンプトで任意のシーンを再現しそこからのエージェントによる最終結果を決定論的に評価する
  • モデルがユーザ役を担い作成した会話セッション全体を読ませて評価する方法は非推奨
 
 

@Koki Kobayashi

[paper]Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth Approach

同じ重みを持った Transformer 層をいくつも重ねることでパラメーター数を増やさずに推論の深さを増やすアプローチ。計算量は変わらず、主なメリット・目的は推論スケーリングの軸を増やすことだと思われる。
3.5B パラメータのモデルを800B tokensで学習し、推論時の反復回数を増やすことで、特に数学やコードのような reasoning task の性能が向上することを示している。

手法

基本的な構造は Decoder-only-Transformer と共通している。この論文では、そこに加えて Transformer 層たちを prelude, recurrent, coda の三つの役割に分け、真ん中の recurrent グループに属するレイヤーを繰り返し適用する構造になっている。
初めの prelude が、再起的に更新可能な状態を作り、 recurrent が再起的にそれを更新し、 coda が un-embedding をする。
一見拡散モデル的にも見えるが、著者らは 逆拡散過程とみなしてノイズを注入した際に性能向上が見られなかったとしている。

細かな工夫

  • 訓練中の繰り返し回数のランダム化
    • recurrent ブロックの適用回数を、非常に裾の長い分布に従って決めることで、多くの回数同じ層を適用してもまともな推論が行えるようにしている。
  • 逆伝播を途中で止める
    • 計算量とメモリ使用量を抑えるために最終 k 個の recurrent ブロックしか逆伝搬を辿らないようにしている。元の入力表現を recurrent ブロックに再注入することで prelude にも勾配が流れるようにはしている。
  • Sandwich normalization
    • 普通の post-norm では recurrence が深くなったときに表現が collapse してしまうらしく、Attention・MLP の前後に RMSNorm をおく、Sandwich normalization と呼ぶ手法を採用している。
  • 状態更新の方法
    • 流れてきたストリームにただ足すのではなく、 concat して projector で潜在空間に戻す方が安定した

デザインの背景

固定長の Transformer については、はじめの層・中間層・終わり際の層で表現や役割が異なることが観測されている。特に中間層には高い均質性があり、層の順序を入れ替えたり一部をスキップしたりしても性能が比較的維持されることが報告されている [Skean et al., 2024; Sun et al., 2024]。また、Kaplan et al. (2024) は、入力された sub-word token が比較的早い層で単語・概念レベルの表現へ統合され、その後の層ではその潜在表現上で処理が進むことを示している。このような観察が、初期・終端層を固定し、中間層を recurrent block として繰り返す本手法の設計背景となっている。

結果

推論時の recurrent block の適用回数を増やすことで性能が向上し、特に GSM8K や HumanEval のような数学・コード系タスクで効果が大きかった。一方、HellaSwag のような比較的単純なタスクでは少ない反復回数で性能が飽和しており、難しい問題ほど追加の latent computation を有効に使えている。
また、recurrent model を1回だけ反復させた場合には、学習量を増やしても性能向上が小さく、獲得した能力が単なるパラメータ容量ではなく、反復計算そのものに依存していることが示唆される。
最終的な3.5Bモデルでは、パラメータ数を固定したまま recurrence を増やすことで、約50B parameter の fixed-depth Transformer 相当の FLOPs まで test-time compute を増やし、その範囲でも性能向上が確認された。

Limitations

本研究はあくまで 3.5B モデル1つを大規模学習した proof-of-concept であり、学習率・データ構成・アーキテクチャなどは十分に最適化されていない。著者ら自身も、recurrent depth の scaling law や、他の Transformer 改良手法との組み合わせは未検証としている。
また、latent space 内で reasoning を行うため、Chain-of-Thought のように推論過程を人間が直接読めないという oversight 上の問題がある。さらに recurrence を増やせば FLOPs 自体は増えるため、パラメータ数が小さいことと推論コストが低いことは同義ではない。

コメント

ResNet の stochastic depth とかを思い出すタイプ。モチベーションとしては skip connection 自体が scratchpad を Residual Stearm として持って、それを加算していく形で更新していくというものなので言われてみると意外と自然。

メインTOPIC

TabPFNシリーズ

主な参考文献

1. 小さな表データの予測にかかる手間

業務で出会う予測課題の多くは、数百行から数万行の表形式データです。請求書の項目、取引の履歴、センサーの記録、検査の結果など、行が一つの事例で列が一つの属性という形をしています。Nature 論文の著者らは、ベンチマーク公開サイト openml.org に登録されたデータセットの 76% が 1万行未満だと述べています。つまり「小さな表」は例外ではなく、表形式データの主戦場です。
この規模で精度を出すために私たちがやっていることを思い出してみます。特徴量を作り、欠損やカテゴリの扱いを決め、LightGBM や XGBoost のハイパーパラメータを交差検証で探索し、複数のモデルを平均します。このうちモデルの学習は数秒で終わることが多く、時間の大半はデータセットごとの探索と試行錯誤に消えています。データセットが変われば、同じ手順を最初からやり直します。

勾配ブースティングが表形式データで強い理由

勾配ブースティング決定木(以下 GBDT)がこの領域で長く標準だったのは、表の各列が単位も分布も意味もばらばらだからです。決定木は列ごとに閾値で分けるだけなので尺度の違いに影響されず、外れ値や無関係な列があっても大きく崩れません。Nature 論文の導入部でも、表形式データの難しさは「データセット間の異質さ」と「生データそのものの異質さ」にあると整理され、この条件では非深層学習の木ベース手法が最有力であり続けてきたと述べられています。

深層学習が表形式データで負け続けた歴史

画像と言語では深層学習が手作りの特徴量を置き換えてきましたが、表形式データでは長らくそうなりませんでした。Grinsztajn らの 2022年の研究は、木ベース手法が中規模の表で深層学習に勝ち続ける理由を三つ挙げています。ニューラルネットは滑らかな関数を好むため、段差のある目的関数を苦手とすること。無関係な特徴量に引きずられやすいこと。そして、ニューラルネットは「列を線形に混ぜ合わせても意味は変わらない」という前提で作られているのに、表では各列に固有の意味があるので、その前提が成り立たないことです。
もう一つの壁は転移の難しさです。言語では「単語の意味」が文書をまたいで共通なので、大量のテキストで事前学習した知識を別の文書に使えます。表形式データでは、ある表の 3 列目は化合物の特性で、別の表の 3 列目は建材の熱特性というように、同じ位置の値がまったく別の意味を持ちます。そのため深層学習の強みである「大規模データからの転移」が効かず、データセットごとに小さなモデルを作るしかありませんでした。

表形式データの基盤モデルという第三の道

ここで登場したのが、表形式データのための基盤モデルという考え方です。基盤モデルとは、大規模な事前学習を一度だけ済ませ、個別の課題にはその場で適用するモデルを指します。言語なら GPT のような大規模言語モデルがそれにあたります。TabPFN は「どんな表でも受け取って、その場で予測を返す」一つのモデルを目指しました。
TabPFN の系譜を簡単に押さえておきます。開発元は、Nature 論文の著者の一部が所属するドイツの Prior Labs 社です。最初の TabPFN(v1、2022年)は数値のみで 1,000 行までの概念実証でした。v2 は 2025年1月に Nature に掲載され、欠損値やカテゴリ列を扱えるようになり、1万行までのベンチマークで調整済みの GBDT を上回った最初の表形式基盤モデルになりました。2025年11月の TabPFN-2.5 は v2 の設計を維持した拡張世代で、改良版 2.6 を経て、2026年5月に TabPFN-3 が公開され、100万行まで扱えるようになりました。この文書では v2 と TabPFN-3 を中心に見ていきます。
この章の要点。 表形式データは小さくて異質なので、データセットごとに GBDT を調整する方法が最善でした。基盤モデルはこの前提を崩し、「学習をその場でやらない」道を開きました。
一つのモデルが見たことのない表を予測するとは、具体的にどういう計算なのでしょうか。

2. 学習済みモデルに表を丸ごと見せるという発想

言語モデルの in-context learning

大規模言語モデルには、プロンプトに数個の例を書いておくと、その例に倣って続きを答える性質があります。たとえば「りんご → apple、みかん → orange、ぶどう → ?」と書けば grape と答えます。このとき、モデルの重みは一切更新されていません。例はあくまで入力の一部で、モデルは「入力を読んで、そのパターンに合う出力を返す」計算をしただけです。この性質を in-context learning(文脈内学習、以下 ICL)と呼びます。
ICL は当初、言語モデルの偶然の産物と見られていました。しかし Garg らの 2022年の研究などで、Transformer は入力に含まれる例から線形回帰のような単純な学習アルゴリズムを実行できることが示されました。つまり「学習アルゴリズムそのものを、重みの中に焼き込める」ことが分かってきたのです。

訓練データを文脈として渡す表形式の in-context learning

TabPFN はこの性質を表形式データに持ち込みます。scikit-learn 風に書くと、 は訓練データを保持するだけで、パラメータを更新しません。 の時点で、訓練データの特徴量とラベル、そしてテストデータの特徴量をまとめて一つの入力として Transformer に渡し、テスト行のラベルを一回の順伝播で出力します。言語モデルのプロンプト内の例が、TabPFN の訓練データにあたります。
次の図は、GBDT でモデルを作る流れと TabPFN で予測する流れを並べたものです。左の流れでは、データセットごとに探索と学習が起きます。右の流れでは、重い学習は Prior Labs が一度だけ済ませており、利用者側で起きるのは一回の順伝播だけです。注目してほしいのは、右の流れに「あなたのデータでの学習」という箱がないことです。
図 1. 左の GBDT では①から③がデータセットごとに繰り返されるのに対し、右の TabPFN では重い①が一度きりで、利用者側は②と③の順伝播だけで済みます。「学習」がどこで起きているかが、二つの流れの本質的な違いです。
図 1. 左の GBDT では①から③がデータセットごとに繰り返されるのに対し、右の TabPFN では重い①が一度きりで、利用者側は②と③の順伝播だけで済みます。「学習」がどこで起きているかが、二つの流れの本質的な違いです。

ハイパーパラメータ探索が消える理由

GBDT のハイパーパラメータは、木の深さや学習率のように「学習アルゴリズムの挙動」を決めるものでした。TabPFN では学習アルゴリズムが重みの中に焼き込まれているので、利用者が触れる設定は前処理や後述するアンサンブルの構成だけです。Nature 論文はこれを「文脈内で学習されたアルゴリズムには、訓練手続きを直接制御するハイパーパラメータがない」と表現しています。同じモデルを、どのデータセットにもそのまま使います。
その結果、論文では数秒で動く TabPFN のデフォルト設定が、4 時間調整した最強のベースラインのアンサンブルを上回りました。この差は精度が高いから速い、というより「探索時間を丸ごと省いている」ことの表れです。
この章の要点。 TabPFN は訓練データを「文脈」として入力に含め、一回の順伝播で予測します。学習アルゴリズムは事前学習で重みに焼き込まれているので、データセットごとの学習も探索も要りません。
では「学習アルゴリズムを重みに焼き込む」とは、数学的にはどういう操作なのでしょうか。ここで Prior-data Fitted Networks の考え方が必要になります。

3. Prior-data Fitted Networks の考え方

ベイズ推論による予測と事後予測分布

まず「理想の予測器」を考えます。ベイズ的な立場では、データがどんな仕組みで生まれうるかという信念を事前分布として持ちます。たとえば「目的変数は少数の特徴量の滑らかな関数にノイズが乗ったものかもしれないし、閾値で分かれる規則かもしれない」という具合です。訓練データを観測したあと、新しい入力 x に対するラベル y の確率分布を、ありうる仕組みすべてにわたって重み付き平均したものを事後予測分布と呼びます。式で書けば です。
事後予測分布は、事前分布が正しい前提のもとで最良の予測です。しかし、ありうる仕組みすべてについて積分する計算は、ごく単純な事前分布を除いて実行できません。ガウス過程やベイズニューラルネットが近似手法として発展してきたのはこのためです。

事前分布から無数のデータセットを引いて学ぶ

Müller らが 2022年に提案した Prior-data Fitted Network(PFN)は、この積分を「ニューラルネットに丸ごと学習させる」という発想です。手順は驚くほど素直です。
  1. 事前分布から、データセットを一つ丸ごとサンプルする。特徴量とラベルの組が何百行かできる。
  1. そのうち一部の行のラベルを隠し、残りを訓練データとしてネットワークに渡す。
  1. ネットワークに隠したラベルを予測させ、正解との交差エントロピーを損失にして重みを更新する。
  1. これを、事前分布から引いた何百万ものデータセットで繰り返す。
次の図はこのループを描いたものです。注目してほしいのは、ネットワークが「一つのデータセットの中の規則」ではなく「データセット間で共通する規則の見つけ方」を学んでいることです。
図 2. 左の事前分布から合成データセットを一つ引き、一部のラベルを隠して Transformer に予測させ、その損失で重みを更新します。データセットは毎回違うので、ネットワークは特定の表の規則ではなく「表から規則を読み取る手続き」を身につけます。
図 2. 左の事前分布から合成データセットを一つ引き、一部のラベルを隠して Transformer に予測させ、その損失で重みを更新します。データセットは毎回違うので、ネットワークは特定の表の規則ではなく「表から規則を読み取る手続き」を身につけます。

事前学習が事後予測分布の近似になる仕組み

このループの損失は、事前分布から引いたデータセット上での交差エントロピーの期待値です。交差エントロピーを最小にする予測分布は、真の条件付き分布そのものです。ここで、データセット自体が事前分布から引かれていることを思い出してください。訓練部分を見たあとの「隠したラベルの真の分布」は、定義どおり、その事前分布の事後予測分布です。したがって、十分に表現力のあるネットワークを十分に学習させれば、出力は に近づきます。たとえば事前分布が「線形回帰にノイズが乗ったデータ」しか生成しないなら、PFN はベイズ線形回帰を再現するように学習します。本論文ではこれを「TabPFN は、合成データセットで定義された事前分布に対するベイズ予測を近似していると見なせる」と述べています。
ここで大事な含意が二つあります。第一に、ネットワークの賢さよりも事前分布が現実の表をどれだけ広く覆っているかが精度を決めます。第二に、事前分布は明示的な数式で書く必要はなく、データセットを生成するプログラムがあれば十分であることです。積分を解く代わりにサンプルして学習させればよいからです。
1 章で見た「表形式データでは転移が効かない」という壁も、ここで越えられます。TabPFN が転移しているのは「3 列目の意味」のようなデータセット固有の知識ではなく、「表を見て規則を見つける手続き」そのものです。列の意味が表ごとに違っても、規則の見つけ方は共通に使えます。
補足: PFN の損失関数と最適解
データセット D を事前分布 p(D) から引き、D をテスト部分 (x_test, y_test) と訓練部分 D_train に分けます。PFN の損失は次の期待値です。
固定した (x_test, D_train) に対して、この期待値を最小にする は真の です(交差エントロピーは真の分布で最小になるため)。この最適解が事後予測分布であることが Müller らの ICLR 2022 論文の主張で、本論文の Methods もこの式を引いています。
この章の要点。 PFN は「事前分布からデータセットを引いて、隠したラベルを当てる」学習を繰り返して、事後予測分布を近似するネットワークです。事前分布は式ではなくデータ生成プログラムとして与えれば足ります。
では TabPFN は、現実の表に似たデータセットをどうやって作っているのでしょうか。

4. 合成データを生み出す事前分布

構造因果モデルによるデータ生成

TabPFN の事前分布の中核は構造因果モデル(Structural Causal Model、以下 SCM)です。SCM とは、変数どうしの「何が何を決めるか」を有向非巡回グラフ(DAG)で表し、各変数を「親の変数の関数にノイズを足したもの」とする枠組みです。たとえば「気温が売上を決め、売上と曜日が在庫を決める」という関係は、気温 → 売上 → 在庫、曜日 → 在庫という矢印を持つ DAG になります。
一つの合成データセットは次の手順で作られます。まずデータセットの行数、特徴量の数、グラフの複雑さといった大枠のパラメータをサンプルします。次にランダムな DAG を生成し、根にあたるノードにノイズを流し込んで、矢印に沿って値を伝播させます。各矢印の変換には、ランダムな活性化関数を持つ小さなニューラルネット、決定木、離散化(カテゴリ化)のいずれかが選ばれ、ガウスノイズが加わります。最後にグラフの中からいくつかのノードを特徴量に、一つを目的変数に選び、その値を読み出します。選ばれなかったノードは、特徴量にも目的変数にも影響するのに表には現れない変数、つまり「観測されない交絡因子」として振る舞います。
図 3. 左では根のノイズ ε が初期値として流れ込み、矢印ごとに小さなニューラルネット、決定木、離散化、線形変換などが施されます。ノイズはすべての矢印で加わります。青いノードが特徴量、橙が目的変数、白は観測されない隠れ変数です。右ではそれを表として読み出し、欠損や外れ値などの「現実の汚れ」を後から加えます。
図 3. 左では根のノイズ ε が初期値として流れ込み、矢印ごとに小さなニューラルネット、決定木、離散化、線形変換などが施されます。ノイズはすべての矢印で加わります。青いノードが特徴量、橙が目的変数、白は観測されない隠れ変数です。右ではそれを表として読み出し、欠損や外れ値などの「現実の汚れ」を後から加えます。
同じ流れを論文の原図で確かめます。左の a で大枠のパラメータを引き、中央の b でグラフを作って矢印の種類(ニューラルネット、木、離散化)を選び、右の c は出来上がった合成データセットです。
原図 1. TabPFN の事前分布の全体像。Hollmann et al., Nature 2025, Fig. 2 より(CC BY 4.0)。b の右上に「F」「T」と印の付いたノードが、特徴量と目的変数を読み出す位置です。
原図 1. TabPFN の事前分布の全体像。Hollmann et al., Nature 2025, Fig. 2 より(CC BY 4.0)。b の右上に「F」「T」と印の付いたノードが、特徴量と目的変数を読み出す位置です。

欠損値、外れ値、カテゴリ変数、ノイズの再現

SCM で作った「きれいな表」に、現実のデータが持つ困りごとを意図的に混ぜます。Nature 論文の Methods に列挙されている後処理は、Kumaraswamy 分布(ベータ分布に似た形の分布で、ここでは値を単調に歪める変換として使う)による非線形な歪み、一部の連続値を K 個のバケツに量子化してカテゴリ列にする操作、ランダムな割合のセルを欠損にする操作、確率 2% でセルにランダムな倍率を掛けて外れ値にする操作などです。無関係な特徴量も混ぜられます。
この設計のねらいは、「欠損値の扱い方」や「外れ値への頑健さ」を人が実装するのではなく、それらを含む課題を解かせることでネットワークに身につけさせることです。Nature 論文は、TabPFN v2 の事前学習で約 1 億 3 千万個の合成データセットを使い、8 枚の RTX 2080 Ti を積んだ 1 ノードで約 2 週間かかったと報告しています。各データセットの行数は最大 2,048、特徴量は 1 から 160 の範囲でサンプルされました。

現実のデータを事前学習に使わない設計

TabPFN v2 も TabPFN-3 も、事前学習には合成データだけを使い、現実のデータセットを一切含めていません(例外として、TabPFN-2.5 には現実のデータで追加学習した派生版 Real-TabPFN-2.5 があり、6 章のベンチマークに比較対象として登場します)。Nature 論文は理由として、プライバシーや著作権の問題を避けられること、評価用データが事前学習に混入する「テストデータ汚染」を原理的に防げることを挙げています。ベンチマークで高い数字が出たとき、「答えを見ていたのではないか」という疑いが構造的に成り立たないのは、合成データだけで学習する方式の大きな利点です。
一方、注意点もあります。本論文の Code availability には、合成データを生成するコードはモデルと一緒には公開していないと明記されています。つまり利用者が事前分布を変えて自分で再学習することは、公開物だけではできません。
補足: TabPFN-3 で事前分布に加えられた 8 つの改良
TabPFN-3 テクニカルレポートの 2.5 節は、SCM 事前分布の改良点を次のように列挙しています。グラフ生成アルゴリズムの追加による構造の多様化、親ノードの値を子に伝える「結合機構」の追加、カテゴリ変数のより表現力のあるモデル化、高周波振動を表せる正弦波系の活性化関数、緯度経度のような空間構造を表す空間事前分布、数百クラスまでのデータセットを生成する多クラス事前分布(モデル側の上限は 6 章で述べるとおり 160 クラス)、時間順に並ぶ行を表す離散時間の動的 SCM、そして分布シフトや外挿を含む分布外予測タスクの追加です。TabPFN-3 は 8 兆トークン以上の合成データで学習されたと書かれています。
原図 2. TabPFN-3 の SCM 事前分布の流れ。Prior Labs, TabPFN-3 Technical Report (arXiv:2605.13986), Figure 9 より引用。Step 3 の式 X_i = f_i(pa(X_i)) + ε_i が「親を入力とする関数にノイズを足す」という SCM の定義そのものです。
原図 2. TabPFN-3 の SCM 事前分布の流れ。Prior Labs, TabPFN-3 Technical Report (arXiv:2605.13986), Figure 9 より引用。Step 3 の式 X_i = f_i(pa(X_i)) + ε_i が「親を入力とする関数にノイズを足す」という SCM の定義そのものです。
この章の要点。 TabPFN の事前分布は、ランダムな構造因果モデルから表を生成し、欠損や外れ値といった現実の汚れを後から加えるプログラムです。現実のデータは事前学習に使わないので、テストデータ汚染が起こりません。
合成データが用意できたとして、表を「一列に並んだトークン列」としてではなく「表」として読める Transformer はどう設計されたのでしょうか。

5. TabPFN v2 のアーキテクチャ

セルを単位とする二方向の attention

Transformer の中核は attention(注意機構)です。attention とは、入力の各要素が他の要素を「どれだけ参照するか」を表す重みを計算し、参照先の情報を重み付きで集めてくる操作です。言語モデルでは単語どうしが参照し合いますが、表では何が要素になるべきでしょうか。
TabPFN v2 は、表の「セル一つ」を一つの要素(トークン)として扱います。行を丸ごと一つのベクトルにするのではなく、行 i の列 j の値を独立した表現として持ちます。そして各層で attention を二方向にかけます。一つは同じ行の中で特徴量どうしが参照し合う「特徴量方向の attention」で、もう一つは同じ列の中で行どうしが参照し合う「サンプル方向の attention」です。この二つに続いて MLP が入り、これを 12 層重ねます。
次の図では、色の濃い一つのセルが注目セルです。横向きの矢印が特徴量方向、縦向きの矢印がサンプル方向の参照を表しています。注目してほしいのは、テスト行(橙)のセルが訓練行(青)を参照する矢印はあっても、その逆はないことです。
図 4. 注目セル(黄)は、横方向では同じ行にある他の特徴量と目的変数の列を、縦方向では同じ列の訓練行を参照します。テスト行の目的変数のセル(?)は「空」として入力され、その位置の出力が予測になります。テスト行どうしは参照しないので、テストデータの並びや量が予測に影響しません。この二方向の attention と MLP の組を 12 層重ねます。
図 4. 注目セル(黄)は、横方向では同じ行にある他の特徴量と目的変数の列を、縦方向では同じ列の訓練行を参照します。テスト行の目的変数のセル(?)は「空」として入力され、その位置の出力が予測になります。テスト行どうしは参照しないので、テストデータの並びや量が予測に影響しません。この二方向の attention と MLP の組を 12 層重ねます。
論文の原図では、上段 a が事前学習と実データへの適用、下段 b がこのアーキテクチャを示しています。b の「1D feature attention」が横方向、「1D sample attention」が縦方向にあたり、右端に回帰の出力分布(次節で説明する区分定数の分布)が描かれています。
原図 3. TabPFN v2 の全体像とアーキテクチャ。Hollmann et al., Nature 2025, Fig. 1 より(CC BY 4.0)。図 1 と図 4 はこの原図を日本語版として描き直したものです。
原図 3. TabPFN v2 の全体像とアーキテクチャ。Hollmann et al., Nature 2025, Fig. 1 より(CC BY 4.0)。図 1 と図 4 はこの原図を日本語版として描き直したものです。

行の順序と特徴量の順序に依存しない設計

表には「1 行目が先」という意味も「1 列目が先」という意味もありません。そこで v2 は、通常の Transformer が「系列の何番目か」を伝えるために足す位置エンコーディングを、行にも列にも与えません。同じ列の値が同じ列だと分かるように、特徴量ごとにランダムなベクトルを生成して足し込みます。完全な順序不変性は保証されないため、推論時には特徴量の順序を入れ替えた複数の推定器で予測を平均します。推定器は、アンサンブルの一メンバーで、tabpfn パッケージでも estimator と呼びます。デフォルトでは分類で 4 個、回帰で 8 個の推定器が、それぞれ違う前処理と順序の組み合わせを使います。
テスト行が訓練行しか参照しないという設計には、実用上の副産物があります。訓練行どうしの計算結果を保存しておけば、新しいテスト行が来たときに訓練側の計算をやり直さなくて済むのです。Nature 論文は、1万行・10特徴量のデータで、この「訓練状態のキャッシュ」によって CPU で約 300 倍(32 秒から 0.1 秒)、GPU で約 6 倍の推論高速化が得られたと報告しています。この考え方は TabPFN-3 で大きく発展します。

分類と回帰の出力の作り方

分類では、目的変数のセルの最終表現からクラスごとのロジットを出し、ソフトマックスで確率に変換します。確率の校正のため、ロジットを温度 0.9 で割ってからソフトマックスにかけます(温度は分布の尖り具合を調整する定数で、1 未満なら確率がやや尖ります)。v2 のネットワークは事前学習で10 クラスまでしか見ていないので、それ以上のクラス数は一対他や誤り訂正符号のような分解で扱う必要がありました。
回帰では一つの値ではなく、目的変数の取りうる範囲を約 5,000 区間に分け、各区間に入る確率を出力します。この「区分定数の分布」を論文は bar distribution と呼んでいます。区間の境界は事前分布から引いた大量のデータセットの分位点で決め、推論時には z 得点化した目的変数をこの分布に当てはめます。一回の順伝播で分位点や信頼区間、さらには二峰性の分布まで得られるのは、この出力形式のおかげです。

論文で示された性能

評価は AutoML Benchmark と OpenML-CTR23 から選んだ1万行以下、500 特徴量以下、10 クラス以下の分類 29 データセットと回帰 28 データセットで行われました。各データセットで最良の手法を 1.0、最悪を 0.0 に正規化した平均スコアが次の表です。TabPFN のデフォルトは、4 時間調整した CatBoost をも上回っています。
表 1. Nature 論文のベンチマーク結果(データセットごとに正規化した平均、1.0 が最良)。出典: Hollmann et al., Nature 2025, Fig. 4 と本文。
設定TabPFNCatBoost指標
分類、デフォルト0.9390.752正規化 ROC AUC
分類、4 時間調整0.9520.822正規化 ROC AUC
回帰、デフォルト0.9230.872正規化 負の RMSE
回帰、4 時間調整0.9680.875正規化 負の RMSE
時間では、分類で平均 2.8 秒、回帰で 4.8 秒かかるデフォルト TabPFN が、4 時間調整したベースラインすべてを上回りました。論文はこれを分類で 5,140 倍、回帰で 3,000 倍の高速化と表現しています。さらに TabPFN 自身の設定を組み合わせた後処理アンサンブル(TabPFN PHE)は、AutoML システム AutoGluon 1.0 に対して分類で正規化 ROC AUC 0.971 対 0.914 と、より大きな差をつけています。
論文の原図では、左の a が表 1 の元になった棒グラフ、中央の b が CatBoost との一対一比較、右の c が横軸に「学習と予測にかけた時間」を取った図です。c で TabPFN の星印が左端(数秒)から最上段にあることが、「探索時間を丸ごと省いている」という 2 章の主張の根拠です。
原図 4. Nature 論文のベンチマーク結果。Hollmann et al., Nature 2025, Fig. 4 より(CC BY 4.0)。c の横軸は対数目盛で、右端の破線が 4 時間(14,400 秒)です。
原図 4. Nature 論文のベンチマーク結果。Hollmann et al., Nature 2025, Fig. 4 より(CC BY 4.0)。c の横軸は対数目盛で、右端の破線が 4 時間(14,400 秒)です。

1万行・500特徴の制約

セル単位でする設計は、表の構造を素直に使える反面、計算がセルの数に応じて増えます。メモリは行数 n と特徴量数 m の積 O(n·m) に比例します。計算量について Nature 論文は O(n² + m²) と書いていますが、TabPFN-3 のレポートの言い方を借りると、サンプル方向の attention は列ごとに行われるので、行数に対する計算量は「特徴量数 × 行数の二乗」で伸びます。この「列ごとに繰り返す」点が、次章で TabPFN-3 が変える部分です。セルあたり 1,000 バイト未満まで最適化しても、1 枚の H100 で扱えるセルは約 5,000 万個までと書かれています。論文が推奨する範囲は 1万行・500 特徴量・10 クラスまでで、それ以上での性能は「さらなる研究が必要」と明記されています。
速度にも留意点があります。1万行・10 列のデータで 1 サンプルの予測に GPU で 0.2 秒、CPU で 0.6 秒かかる一方、CatBoost は 0.0002 秒で済みます(これは前述のキャッシュとは別の測定です)。論文自身が「より大きなデータセットと、非常に非平滑な回帰データセットでは CatBoost、XGBoost、AutoGluon が上回る可能性が高い」と述べています。この制約を超えることが、次の世代の課題になりました。
この章の要点。 v2 はセル単位で、特徴量方向とサンプル方向に attention を交互にかける 12 層の Transformer です。位置情報を持たず、テスト行は訓練行だけを参照します。1万行・500 特徴量までの表で調整済み GBDT を上回りましたが、計算量が表の面積に応じて増えるため、それ以上の規模には届きませんでした。
100万行の表を一回の順伝播で扱うには、セル単位の設計そのものを変える必要がありました。TabPFN-3 は何を変えたのでしょうか。

6. TabPFN-2.5 から TabPFN-3 への拡張

世代ごとの対応規模

まず世代ごとの推奨規模を並べます。次の図の数字は TabPFN-3 テクニカルレポートの表(Figure 4a)から取ったもので、「その規模まで最先端の性能が検証されている」範囲を意味します。技術的にはそれより大きい入力も受け付けますが、検証済みの範囲外です。
図 5. 世代を追うごとに検証済みの規模が広がり、TabPFN-3 では行数と特徴量数を「セルの予算」として振り分けられるようになりました。パラメータ数は v2 の約 5〜8 倍に増えていますが、次に見る設計変更のおかげで速度はむしろ上がっています。TabPFN-2.5 の論文自身は 5万行・2,000 特徴量を掲げており、10万行という数字はテクニカルレポート側の表に基づきます。
図 5. 世代を追うごとに検証済みの規模が広がり、TabPFN-3 では行数と特徴量数を「セルの予算」として振り分けられるようになりました。パラメータ数は v2 の約 5〜8 倍に増えていますが、次に見る設計変更のおかげで速度はむしろ上がっています。TabPFN-2.5 の論文自身は 5万行・2,000 特徴量を掲げており、10万行という数字はテクニカルレポート側の表に基づきます。
図の途中にある TabPFN-2.5(2025年11月)について補足します。2.5 は v2 のセル単位の設計を保ったまま、前処理の改善などで規模を 5万行・2,000 特徴量まで広げ、v2 より 1〜2.3 倍速くなった世代です。TabPFN-2.5 の論文は、現実のデータで追加学習した派生版 Real-TabPFN-2.5 と、TabPFN を小さな MLP や木のアンサンブルに変換する蒸留エンジンも同時に発表しました。モデルの重みが研究・評価向けの非商用ライセンスになったのもこの世代からで、商用利用できる重みは v2 までです(8 章のコード例で触れます)。2.6 はその改良版で、TabPFN-3 が出るまでの既定モデルでした。

100万行・200特徴への対応

TabPFN-3 が規模を一桁以上広げられた最大の理由は、「セルごとに attention をかける」設計をやめたことです。v2 系ではセル単位の表現に行方向と列方向の attention を交互にかけるため、前章で見たとおり、行数が増えると計算量が「特徴量数 × 行数の二乗」で伸びました。TabPFN-3 は、TabICL という別の研究グループの設計を土台に、三段構えに変えています。
  1. 列ごとの分布埋め込み。 各列を独立に、その列の値の分布を要約するように埋め込みます。全行どうしの attention の代わりに、少数の誘導点(inducing points)と呼ばれる代表ベクトルを介して attention をかけます。全行が 128 個の代表ベクトルを参照し、代表ベクトルが「この列の値はどのあたりに散らばっているか」を要約するので、各セルはその要約を見て「自分の値は列の中でどの位置か」を知ることができます。行数に対して計算は二乗で増えません。
  1. 行ごとの特徴量集約。 各行で、列の埋め込みどうしで attention をかけ、4 個の CLS トークン(集約用の特別なトークン)に情報を集めます。これを連結して、行一つを固定長のベクトルにします。
  1. 行どうしの in-context learning。 訓練行とテスト行の固定長ベクトルを 24 層の Transformer に渡し、訓練行どうしは互いを参照し、テスト行は訓練行を参照して予測します。この系列の長さは行数だけで決まり、特徴量数には依存しません。計算は行数の二乗に比例して増えますが、列ごとに繰り返す必要がなくなりました。
図を読む前に、attention の用語を二つ補っておきます。Transformer の attention は、一組ではなく複数の「ヘッド」で並列に計算し、それぞれ異なる観点から参照先を選びます(多頭 attention)。参照される側の各要素はキーとバリューという二つのベクトルを持ち、参照する側はキーとの類似度でバリューを重み付けして集めます。multi-query attention は、キーとバリューを全ヘッドで共有する変種で、参照する側(クエリ)だけがヘッドごとに違います。保存しておくキーとバリューが少なくて済むのが利点で、TabPFN-3 はテスト行から訓練行への参照にこれを使います。
次の図はこの三段構えです。注目してほしいのは、第二段の出口で「行 = 一つのベクトル」になっているため、第三段の計算が特徴量数から切り離されていることです。これが 100万行に届いた理由であると同時に、特徴量が非常に多いときには「一つのベクトルに押し込む」段階が情報のボトルネックになる理由でもあります。レポートも、この構造が行数と特徴量数のトレードオフを生むと述べています。
図 6. 上から下へ進むほど入力が小さくなります。第一段は列ごと、第二段は行ごとに独立して動くので分割して処理でき、第三段の系列長は行数だけで決まります。テスト行から訓練行への attention に multi-query attention を使うことが、次に述べる KV cache の削減につながります。
図 6. 上から下へ進むほど入力が小さくなります。第一段は列ごと、第二段は行ごとに独立して動くので分割して処理でき、第三段の系列長は行数だけで決まります。テスト行から訓練行への attention に multi-query attention を使うことが、次に述べる KV cache の削減につながります。
レポートの原図は、図 6 をさらに細かく描いたものです。上から、欠損フラグ付きのセル埋め込み、列ごとの Feature Embedding(第一段)、行ごとの Feature Aggregation(第二段)、In-Context Learning(第三段)、最後に多クラス検索デコーダが続きます。「× 3」「× 24」が各段の層数です。
原図 5. TabPFN-3 のアーキテクチャ。Prior Labs, TabPFN-3 Technical Report (arXiv:2605.13986), Figure 5 より引用。点線の経路が row-chunking で分割処理するときの流れです。
原図 5. TabPFN-3 のアーキテクチャ。Prior Labs, TabPFN-3 Technical Report (arXiv:2605.13986), Figure 5 より引用。点線の経路が row-chunking で分割処理するときの流れです。

KV cache 削減と row-chunking による高速化

TabPFN-3 は TabPFN-2.5 より最大 20 倍高速だとレポート冒頭では述べています(この「最大 20 倍」がどの条件での値かはレポートに明記されておらず、後述の表 2 の条件では 4 倍から 12 倍です)。構造の変更に加えて、推論時の二つの工夫が効いています。なお v2 との直接の速度比較はレポートにありません。2.5 が v2 より 1 倍から 2.3 倍速いことから、v2 比ではそれ以上の差があると推測できますが、筆者の推測です。
一つ目は row-chunking(行の分割処理)です。第一段と第二段は、行数 × 列数 × 埋め込み次元の中間表現を作るので、100万行ではメモリが先に尽きます。そこで訓練行全体からまず誘導点の要約を一度だけ計算し、その要約を固定した状態で、行を固定サイズの塊に分けて順に流します。誘導点の要約が共有されているので、分割しても分割しない場合と数学的に同じ結果になります。レポートはこの処理により最大規模でピークメモリが約 5 分の 1 になり、行数が 2,048 を超えると自動で有効になると書いています。
二つ目は KV cache(キー・バリューのキャッシュ)の削減です。テスト行が参照するのは訓練行のキーとバリューだけなので、それを保存しておけば、新しいテスト行が来ても訓練側を計算し直す必要がありません。これが KV cache で、大規模言語モデルが長い会話を高速に続けるために使っているものと同じ考え方です。
問題は大きさでした。2.5 では表の全セルの表現を保存する必要があり、大きなデータでは現実的ではありませんでした。TabPFN-3 は次の二つでこれを解いています。
  • 保存するものを三つに絞る。誘導点の要約、第三段の各層の訓練側キーとバリュー、最終層の訓練行の表現です。後の二つは行数にしか比例せず、行数 × 列数には比例しません。
  • テスト行から訓練行への attention を、キーとバリューのヘッドが一つの multi-query attention にする。これでキャッシュが 8 分の 1 になります。
結果として 100万行のデータでも推定器一つあたり約 7 GiB に収まりました。
表 2. H100 での 1 推定器の順伝播時間(前処理を除く、訓練 5万行、テスト 100 行)。出典: TabPFN-3 テクニカルレポート Figure 7b。
経路10 特徴量100 特徴量
TabPFN-2.5 fit + predict1,224 ms7,840 ms
TabPFN-3 fit + predict(キャッシュなし)342 ms642 ms
TabPFN-3 キャッシュ済み predict22 ms22 ms
キャッシュ済みの predict は特徴量数にほぼ依存せず、レポートは 100 件ずつのバッチでテスト 1 点あたり 0.1 から 3 ミリ秒だと述べています。ただしキャッシュを作る側の fit は無料ではなく、100万行では約 107 秒かかります。「fit は重いが predict は軽い」という、GBDT に近い性格に近づいたと言えます。副産物として、繰り返し順伝播が必要な SHAP 値の計算が、shapiq ライブラリ経由で最大 120 倍速くなったとも報告されています。
レポートの原図で確かめます。上段 a は、80 GB の H100 一枚に載る最大訓練行数を特徴量数ごとに示したもので、黒(2.5)と紺(3、分割なし)が 200 特徴量で 30万行以下に落ちるのに対し、桃(row-chunking あり)と黄(さらに KV cache あり)は 100万行に届いています。下段 b が表 2 の元データです。
原図 6. row-chunking と KV cache の効果。Prior Labs, TabPFN-3 Technical Report (arXiv:2605.13986), Figure 7 より引用。棒の中の白い数字がピークメモリです。
原図 6. row-chunking と KV cache の効果。Prior Labs, TabPFN-3 Technical Report (arXiv:2605.13986), Figure 7 より引用。棒の中の白い数字がピークメモリです。
補足: その他の推論最適化
レポートの 2.4 節にはほかに、FlashAttention-3(H100 向けの高速な attention カーネル)で 100万行時に 1.5 から 1.7 倍、torch.compile で MI-250x 上の非分割経路が最大 1.58 倍という数字があります。また TabPFN-2.5 から引き継いだ蒸留エンジンにより、TabPFN-3 の予測を模倣する小さな MLP や木のアンサンブルを作って CPU でミリ秒未満の推論にすることもできます。この蒸留はエンタープライズ版の機能です。

多クラス分類の上限緩和

v2 は事前学習で 10 クラスまでしか見ておらず、出力層も固定幅でした。TabPFN-3 は分類の出力層を、attention に基づく「多クラス検索デコーダ」に置き換えました。テスト行の最終表現をクエリ、訓練行の最終表現をキー、訓練行の one-hot ラベルをバリューとして attention をかけ、その重み付き平均をクラス確率に変換します。言い換えれば、学習された表現空間での「ソフトな最近傍法」です。この設計ではデコーダ自体のパラメータがクラス数に依存しないので、クラスの並べ替えにも自然に対応します。ただし事前学習時に用意したラベル埋め込みの都合で、上限は 160 クラスに固定されています。
レポートは TabArena の回帰タスクを分位点で最大 100 クラスに分割した合成ベンチマークで、正規化 ROC AUC が TabPFN-3 で 1.00、次点の TabICLv2 が 0.89、TabPFN-2.5 が誤り訂正符号のラッパーを使って 0.83 と報告しています。木ベース手法は 1 時間調整しても大きく劣ったと書かれています。
補足: 多クラス検索デコーダの式
各ヘッド h で、テスト行 m のクエリ q と訓練行 n のキー k から重み α を softmax で計算し、one-hot ラベル y_n の重み付き平均をヘッド間で平均したものをクラス確率 p_m とします。
ロジットは log(clip(p_m)) です。レポートは、この形によりクラスが固定の出力位置に縛られなくなり、デコーダのパラメータが埋め込み次元とヘッド数だけで決まると説明しています。

リレーショナルデータへの対応と RelBench

業務データベースは一枚の表ではなく、顧客、注文、商品のように外部キーでつながった複数の表です。RelBench は、こうした複数テーブルからエンティティごとの分類や回帰を行う課題を集めたベンチマークで、TabPFN-3 のレポートは RelBenchV1 の分類 12 タスクと回帰 9 タスクで評価しています。TabPFN 自体は一枚の表しか受け取れず、RDBLearn という先行研究の方法でデータベースを一枚の表に平坦化(外部キーをたどって結合し、集約して特徴量化)してから TabPFN-3 に渡します。この組み合わせを TabPFN-REL と呼んでいます。
結果は二段構えで読む必要があります。リレーショナルデータ向けの基盤モデル(KumoRFM など)の中では、TabPFN-REL が最先端になりました。一方、タスクごとに学習した教師ありのグラフニューラルネット RelGNN には及ばず、分類では差が大きく、回帰では僅差だったと正直に書かれています。ただし教師ありの手法はタスクごとに数千通りのハイパーパラメータ探索を要するため、学習コストは桁違いに大きい点も指摘されています。

テーブルとテキストの併用と TabSTAR

商品名や苦情の本文のような自由記述の列を含む表は珍しくありません。TabSTAR は、少なくとも一つのテキスト列を含む 50 個の現実のデータセットを集めたベンチマークです。注意が必要なのは、公開版の TabPFN-3 は数値列とカテゴリ列しか受け付けないことです。テキスト列を捨てて評価すると、テキストを使わないモデルの中では TabPFN-3 が最良でした。一方、API 経由で提供される TabPFN-3-Plus は文字列の列をそのまま受け取り、数値やカテゴリの列と一緒にモデル内部で扱います。レポートの Figure 14 では、TabPFN-3-Plus が CatBoost や TabSTAR などテキスト対応の手法を大きく上回り、後述する思考モードを重ねるとさらに伸びています。

TabPFN-3-Plus

TabPFN-3-Plus は、公開版の TabPFN-3 と同じインターフェースで、マネージド API とエンタープライズ契約でのみ利用できる上位版です。機能は二つで、一つは前述のテキスト列のネイティブ対応、もう一つは思考モード(Thinking)です。思考モードとは、推論時により多くの計算を使って予測品質を上げる仕組みで、大規模言語モデルが答える前に長く考える「テスト時計算のスケーリング」を表形式に持ち込んだものです。レポートは、大規模言語モデルも実データも外部検索も使わず、TabPFN だけで実現したと強調しています。内部の詳細は公開されていません。
性能は、表形式データの標準的なベンチマークである TabArena(NeurIPS 2025、51 データセット、最大 10万行)で示されています。TabArena は各手法の対戦成績を Elo レーティングで表します。Elo はチェスの強さの指標で、200 点差はおよそ 76% の勝率に相当します。レポートの主張を整理すると次のようになります。
  • 公開版 TabPFN-3 は一回の順伝播で、調整とアンサンブルを施した他のすべてのモデルを上回り、前世代の Real-TabPFN-2.5(調整・アンサンブル込み)より 72 Elo 高い。
  • TabPFN-3-Plus の思考モードは、TabPFN 以外のすべてのモデルを 200 Elo 以上上回り、4 時間調整した AutoGluon 1.5 extreme を 100 Elo 以上上回りながら、その 10 分の 1 の時間で済む。
  • 1万行から 10万行までの最大規模 15 データセットに絞ると、TabPFN-3 は他のどのモデルより 100 Elo 高く、思考モードは TabPFN 以外のモデルに対して 420 Elo、AutoGluon に対して 220 Elo の差をつける。
  • 勝率で見ると、思考モードは調整・アンサンブル済みの CatBoost、LightGBM、XGBoost に対して 93% 以上、AutoGluon 1.5 extreme に対して 69%(公開版 TabPFN-3 ではそれぞれ 80% 以上と 56%)。
公式ドキュメントは思考モードの効果を「TabArena の Elo で最大 15% の改善」とも表現しています。なお、思考モードは執筆時点で時系列構造のあるデータには対応しておらず、レポートの大規模回帰ベンチマークでは評価されていません。
原図は TabArena 全 51 データセットでの Elo です。破線が 4 時間調整した AutoGluon 1.5 extreme で、紺の二本(TabPFN-3 と TabPFN-3-Thinking)だけが「Default」一本の棒でこの線に届いています。他のモデルは調整(橙)やアンサンブル(緑)を重ねても届いていません。
原図 7. TabArena リーダーボード。Prior Labs, TabPFN-3 Technical Report (arXiv:2605.13986), Figure 10 より引用。Prior Labs 自身が描いた図ですが、元データは第三者が維持する TabArena のものです。
原図 7. TabArena リーダーボード。Prior Labs, TabPFN-3 Technical Report (arXiv:2605.13986), Figure 10 より引用。Prior Labs 自身が描いた図ですが、元データは第三者が維持する TabArena のものです。
補足: 100万行規模と TALENT での結果
レポートの内部ベンチマークでは、10万行から 100万行、最大 200 特徴量の 13 データセット(分類 9、回帰 4)で、TabPFN-3 が一回の順伝播でデフォルトおよび 8 時間調整した XGBoost、LightGBM、CatBoost と TabICLv2 を上回ったとされています。訓練行数を 10万から 100万まで変えても TabPFN-3 が最上位を保ちました。また 274 データセットからなる TALENT ベンチマークでは平均順位 3.75 で全体 1 位でした。これらは Prior Labs 自身による評価なので、TabArena のような第三者が維持するリーダーボードとは区別して読むのが安全です。
最後に、図 5 の「行数と特徴量数のトレードオフ」と、推定器との関係を整理しておきます。TabPFN-3 の推定器一つが見る列は、既定では 200 列までです。それより列が多いデータでは、推定器ごとに異なる 200 列を担当し、どの列も少なくとも一つの推定器に入るように総当たりで割り当てます(10万行を超えるデータでは、軽量な木の Gini 重要度で有望な列を選びます)。図 5 の「10万行 × 2,000」や「1,000 行 × 20,000」は、この分担方式で性能が検証された範囲を表しています。
この章の要点。 TabPFN-3 は、セル単位の attention を「列の要約 → 行の固定長ベクトル → 行どうしの ICL」という三段構えに置き換え、row-chunking と KV cache の削減で 100万行を 1 枚の GPU で扱えるようにしました。多クラスは 160 まで、リレーショナルとテキストは周辺技術と API 版で対応し、思考モードを備えた TabPFN-3-Plus は TabArena で他のすべてを上回ります。
同じ枠組みは、行が時間順に並ぶ「時系列」にも広げられます。表形式のモデルで時系列を予測するとはどういうことでしょうか。

7. 実際に動かしてみた

  • v2 の重みとコードは Prior Labs License で、商用利用も可能
  • v3 の重みは非商用ライセンスで、初回にライセンス同意が必要
  • この記事は評価目的であり、商用の意思決定や有償サービスには使っていない

タイタニック

まとめ

TabPFN は、表形式データの予測を「データセットごとに学習する」問題から「学習済みモデルに表を見せる」問題に変えました。その土台は Prior-data Fitted Network の考え方です。構造因果モデルから無数の合成データセットを生成し、隠したラベルを当てる訓練を繰り返すことで、Transformer は事前分布に対する事後予測分布の近似器になります。現実のデータを一切使わないので、テストデータ汚染の疑いが構造的に生じません。
v2 はセル単位で、特徴量方向とサンプル方向に attention を交互にかける設計で、1万行・500 特徴量までの表で調整済みの GBDT を上回りました。TabPFN-3 は「列の要約 → 行の固定長ベクトル → 行どうしの in-context learning」という三段構えに変え、row-chunking と KV cache の削減によって 100万行を 1 枚の GPU で扱い、TabPFN-2.5 より最大 20 倍速くなりました。多クラスは 160 まで、リレーショナルとテキストは周辺技術や API 版で対応し、時系列は表への変換で同じ枠組みが使えます。