Tabular Foundation Models
테이블 기반 파운데이션 모델은 학습 과정 없이 한 번의 순전파로 새로운 테이블의 값을 예측합니다. TabPFN의 작동 방식과 부스팅 트리보다 뛰어난 경우를 알아보세요.
테이블 기반 파운데이션 모델은 새로운 테이블의 행과 열을 학습하지 않고도 예측하는 사전 학습된 신경망입니다. 레이블이 지정된 테이블과 예측할 행 집합을 받으면 인컨텍스트 학습을 사용합니다. 레이블이 지정된 행을 컨텍스트로 모델에 입력하고, 경사 하강법 업데이트 없이 단일 순전파로 모든 새 행의 예측을 반환합니다. XGBoost, LightGBM, CatBoost와 같은 그래디언트 부스팅 트리 모델은 데이터세트마다 적합화하고 튜닝해야 합니다. 테이블 기반 파운데이션 모델은 한 번 학습한 뒤 입력되는 소규모 테이블에 학습 내용을 적용합니다.
TabPFN이 합성 테이블을 통해 학습하는 방식#
가장 잘 알려진 사례는 TabPFN(Tabular Prior-data Fitted Network)으로, Noah Hollmann, Samuel Müller, Frank Hutter와 프라이부르크 대학교 동료들이 개발했으며 현재는 Prior Labs가 개발하고 있습니다. 이 Transformer는 전적으로 합성 데이터로 사전 학습됩니다. 사전 학습에서는 데이터 생성 과정에 대한 사전 분포에서 수백만 개의 인공 데이터세트를 추출하며, 대부분은 무작위 함수와 노이즈를 통해 특성과 목표를 연결하는 무작위 구조적 인과 모델입니다. 각 합성 데이터세트에서 네트워크는 일부 레이블이 있는 행을 보고 보류된 행을 예측하는 방법을 학습합니다. 이는 메타 학습의 한 형태입니다. 여러 작업을 거치며 이 사전 분포에 대한 베이지안 추론을 근사하도록 학습하므로, 예측 시점에는 특정 도메인의 모델이 아니라 학습된 통계 절차처럼 작동합니다.
2023년 ICLR에서 발표된 첫 버전은 최대 학습 행 1,000개, 숫자형 특성 100개, 클래스 10개를 사용하는 분류를 처리했습니다. AutoML 시스템과 비슷한 성능을 내면서 최대 230배 빠르게 실행되었습니다. 2025년 1월 Nature에 발표된 TabPFN v2는 범주형 특성과 결측값을 포함해 최대 10,000개 행과 500개 특성이 있는 데이터세트의 분류 및 회귀로 접근법을 확장했습니다. 분류에서 TabPFN v2는 2.8초 만에 4시간 동안 튜닝한 최강 기준선 앙상블보다 뛰어난 성능을 보였습니다. 버전 2는 테이블의 각 셀에 고유한 표현을 부여하고 열과 행에 걸쳐 어텐션을 교대로 적용하므로 고정된 열 순서에 의존하지 않습니다. 이후 릴리스에서는 한도가 더 높아졌으며, 2026년 5월 출시된 TabPFN-3는 최대 학습 행 100만 개를 처리합니다. TabICL과 Amazon의 Mitra 등 다른 테이블 기반 파운데이션 모델도 합성 테이블로 사전 학습하고 컨텍스트 내에서 예측하는 같은 방식을 따릅니다.
그래디언트 부스팅 트리와의 비교#
- 소규모 데이터셋: 행이 수백 개에서 수천 개 정도인 경우 테이블형 파운데이션 모델은 하이퍼파라미터 검색 없이도 튜닝된 트리 모델과 대등하거나 더 나은 성능을 보이는 경우가 많으며, 예측 확률도 대체로 잘 보정되어 있습니다.
- 대규모 데이터세트: 수백만 행을 처리할 때는 부스팅 트리가 여전히 실용적인 기본 선택입니다. 어텐션 비용은 컨텍스트 행 수가 늘어날수록 증가하므로 파운데이션 모델에는 GPU와 더 많은 메모리가 필요합니다. 또한 각 예측 배치는 전체 학습 컨텍스트를 다시 처리하므로 트리 앙상블을 평가할 때보다 추론이 느립니다.
- AutoML: AutoML은 새 데이터셋이 들어올 때마다 알고리즘과 설정을 검색합니다. 테이블형 파운데이션 모델은 사전 학습 중 한 번 학습한 지식으로 검색 과정 대부분을 대체합니다.
- 피처 엔지니어링: 여전히 유용합니다. 모델은 열에 없는 정보를 복구하거나 잘못된 라벨을 수정할 수 없습니다.
TabPFN 실행#
tabpfn 패키지는 scikit-learn 스타일의 분류기를 제공합니다. 최신 체크포인트는 로그인하고 Prior Labs의 모델 라이선스에 동의한 후에만 다운로드할 수 있지만, 아래에서 선택한 버전 2 가중치는 이 절차 없이 다운로드할 수 있습니다.
from sklearn.datasets import load_breast_cancer
from sklearn.metrics import roc_auc_score
from sklearn.model_selection import train_test_split
from tabpfn import TabPFNClassifier
from tabpfn.constants import ModelVersion
# 569 tumors described by 30 numeric measurements
features, targets = load_breast_cancer(return_X_y=True)
x_train, x_test, y_train, y_test = train_test_split(features, targets, test_size=0.2, random_state=0)
# fit() stores the labeled rows as context; no weights are updated
model = TabPFNClassifier.create_default_for_version(ModelVersion.V2)
model.fit(x_train, y_train)
# One forward pass predicts every test row from that context
probabilities = model.predict_proba(x_test)[:, 1]
print(f"ROC AUC: {roc_auc_score(y_test, probabilities):.3f}")하이퍼파라미터를 설정하지 않아도 이 분류기의 해당 보류 분할 ROC AUC는 약 0.998입니다. 114개 행의 테스트 분할은 강력한 모델을 구분하기에 너무 작으므로, 모델 비교에는 여러 데이터세트에 걸친 반복 교차 검증을 사용합니다.
유용한 테이블 중 상당수는 다른 모델의 출력으로 구성됩니다. 유용한 테이블 중 상당수는 다른 모델의 출력으로 구성됩니다. 예측 모드에서 result.to_df()은 각 Ultralytics YOLO26 결과를 탐지당 한 행을 포함하는 Polars DataFrame으로 반환합니다. 이 DataFrame에는 클래스 이름, 클래스 ID, 신뢰도, 박스 좌표 열이 있으며, 이는 테이블 기반 파운데이션 모델이 컨텍스트로 읽는 행과 열 형식입니다.










