PriorLabs/TabPFN
요약
TabPFN은 테이블 형태의 데이터를 분류 및 회귀하는 데 사용되는 강력한 머신러닝 모델입니다. 이 라이브러리는 PyTorch와 CUDA를 활용하여 빠른 로컬 추론을 제공하며, 다양한 버전(예: TabPFN-2.6)과 확장 기능을 지원합니다. 사용자들은 GPU 환경에서 최적의 성능을 얻을 수 있으며, 대규모 데이터셋이나 실시간 애플리케이션 요구 사항에 맞춰 클라우드 기반 API나 엔터프라이즈 에디션 같은 다양한 솔루션을 선택할 수 있습니다.
핵심 포인트
- TabPFN은 테이블 데이터를 위한 분류 및 회귀 모델로, PyTorch와 CUDA를 활용하여 높은 성능을 제공합니다.
- 최적의 성능을 위해서는 GPU 사용이 필수적이며, 데이터 전처리(스케일링, one-hot 인코딩 등)는 피해야 합니다.
- 라이브러리는 핵심 구현 외에도 해석 가능성(interpretability), 임베딩 추출, 앙상블 학습 등 다양한 고급 기능을 제공하는 확장 모듈을 갖추고 있습니다.
- 대규모 생산 환경을 위해 Fast Inference Mode와 최대 1000만 행까지 지원하는 Large Data Mode 같은 엔터프라이즈 에디션이 제공됩니다.
Tip
상호작용형 Colab 노트북으로 바로 시작하세요! 이는 TabPFN 을 이해하고 설치, 분류 및 회귀 예제를 따라가는 데 가장 좋은 방법입니다.
⚡
GPU 권장: 최적의 성능을 위해 GPU 를 사용하세요 (오래된 모델이라도 ~8GB VRAM 이 있으면 작동합니다; 일부 대규모 데이터셋은 16GB 가 필요합니다). CPU 로만 실행할 경우, 작은 데이터셋 (≲1000 샘플) 만 가능합니다. GPU 가 없다면 TabPFN Client 를 통한 무료 호스팅 추론을 사용하세요.
공식 설치 (pip)
pip install tabpfn
또는 소스에서 설치
pip install "tabpfn @ git+https://github.com/PriorLabs/TabPFN.git"
또는 로컬 개발 설치: 먼저 uv (0.10.0 버전 이상 권장) 를 설치한 후 다음을 실행하세요.
git clone https://github.com/PriorLabs/TabPFN.git --depth 1
cd TabPFN
uv sync
우리의 기본 TabPFN-2.6 모델을 사용하려면 (순수 합성 데이터로 훈련됨):
from tabpfn import TabPFNClassifier, TabPFNRegressor
clf = TabPFNClassifier()
clf.fit(X_train, y_train) # 첫 번째 사용 시 체크포인트 다운로드
...
다른 모델 버전을 사용하려면 (예: TabPFN-2.5):
from tabpfn import TabPFNClassifier, TabPFNRegressor
from tabpfn.constants import ModelVersion
classifier = TabPFNClassifier.create_default_for_version(ModelVersion.V2_5)
...
완전한 예제는 tabpfn_for_binary_classification.py, tabpfn_for_multiclass_classification.py, 및 tabpfn_for_regression.py 파일에서 확인하세요.
배치 예측 모드 사용: 각 predict 호출은 훈련 데이터셋을 다시 계산합니다. 100 샘플에 대해 predict 를 개별적으로 호출하는 것은 단일 호출보다 거의 100 배 느리고 비쌉니다. 테스트 데이터셋이 매우 크다면, 1000 샘플씩의 덩어리로 나누세요.
데이터 전처리 피하기: 모델에 데이터를 공급할 때 데이터 스케일링 또는 one-hot 인코딩을 적용하지 마세요.
GPU 사용: TabPFN 은 CPU 에서 실행이 느립니다. 더 나은 성능을 위해 GPU 가 사용 가능해야 합니다.
데이터셋 크기 고려: TabPFN 은 100,000 샘플 미만과 2000 특징 이하의 데이터셋에서 가장 잘 작동합니다. 더 큰 데이터셋의 경우 Large datasets 가이드를 확인하세요.
필요에 맞는 TabPFN 구현을 선택하세요:
- TabPFN Client: 클라우드 기반 추론을 통해 TabPFN 을 사용하는 간단한 API 클라이언트.
- TabPFN Extensions: 고급 유틸리티, 통합 및 기능을 갖춘 강력한 동반자 저장소. 기여할 좋은 곳입니다:
interpretability: 이상치 탐지 및 합성 표 데이터 생성을 위한 도구.unsupervised: TabPFN 의 내부 학습된 임베딩 추출 및 사용.embeddings: TabPFN 의 기본 클래스 제한을 초과하는 다중 클래스 분류 문제를 처리합니다.many_class: TabPFN 과 Random Forests 같은 전통적인 모델을 결합하여 하이브리드 접근법.rf_pfn: TabPFN 에 맞춤화된 자동 하이퍼파라미터 최적화.hpo: 훈련 후 여러 TabPFN 모델을 앙상블하여 성능 향상.post_hoc_ensembles:
설치 방법:
git clone https://github.com/priorlabs/tabpfn-extensions.git pip install -e tabpfn-extensions
- **TabPFN (이 저장소)**PyTorch 와 CUDA 지원으로 빠른 로컬 추론을 위한 핵심 구현.
- TabPFN UX: TabPFN 기능을 탐색하기 위한 코드 없는 그래픽 인터페이스 — 비즈니스 사용자 및 프로토타이핑에 이상적입니다.
우리의 생태계에서 올바른 확장 기능을 선택하여 모델을 구축하기 위해 다음 의사결정 나무를 따르세요. 데이터, 하드웨어 및 성능 요구 사항에 대한 중요한 질문을 안내하며 특정 사용 사례에 가장 적합한 솔루션으로 인도합니다.
---
config:
theme: 'default'
...
TabPFN-2.5 와 TabPFN-2.6 모델 가중치는 상업적 라이선스 (non-commercial license) 하에 라이선스가 부여됩니다. 이는 기본값으로 사용됩니다.
코드와 TabPFN-2 모델 가중치는 Prior Labs License(Apache 2.0 및 추가 귀속 요구 사항 포함) 하에 라이선스가 부여됩니다: 여기. v2 모델 가중치를 사용하려면 모델을 다음과 같이 인스턴스화하세요:
from tabpfn.constants import ModelVersion
tabpfn_v2 = TabPFNRegressor.create_default_for_version(ModelVersion.V2)
고 처리량 또는 대 규모 생산 환경에서는 다음 기능을 갖춘 Enterprise Edition을 제공합니다:
Fast Inference Mode: TabPFN-2.6 을 컴팩트한 MLP 나 트리 앙상블로 변환하는 독점 디스틸레이션 엔진으로, 실시간 애플리케이션에 대해 수백 배 낮은 지연 시간을 제공합니다.Large Data Mode (Scaling Mode): 데이터 세트가 최대 10 million rows를 지원하도록 행 제약 조건을 해제하는 고급 운영 모드 - 이는 기본 TabPFN-2.5 와 TabPFN-2.6 모델 대비 1,000 배 증가입니다.Commercial Support: 생산 사용 사례용 상업적 Enterprise 라이선스, 전용 통합 지원 및 사설 고속 인퍼런스 엔진에 대한 액세스를 포함합니다.
더 많은 정보나 상업적 라이선스를 요청하려면 sales@priorlabs.ai 로 연락하세요.
우리는 표 데이터 머신러닝의 미래를 구축하고 여러분의 참여를 원합니다:
-
Connect & Learn: - Discord 커뮤니티에 가입
-
문서 읽기
-
GitHub Issues 확인
-
Contribute: - 버그 보고 또는 기능 요청
-
피드백 제출 (이미지 없는 경우 먼저 해당 기능/버그에 대해 이슈를 열어야 합니다)
-
연구 및 사용 사례 공유
-
Stay Updated: 리포 저장 및 Discord 가입을 통해 최신 업데이트 수신
TabPFNv2 를 설명하는 논문을 여기에서 읽을 수 있으며, TabPFN-2.5 의 모델 보고서를 여기에서 읽을 수 있습니다.
@misc{grinsztajn2025tabpfn,
title={TabPFN-2.5: Advancing the State of the Art in Tabular Foundation Models},
author={Léo Grinsztajn and Klemens Flöge and Oscar Key and Felix Birkel and Philipp Jund and Brendan Roof and
...
Q: TabPFN 과 함께 가장 잘 작동하는 데이터 세트 크기는 무엇인가요?
A: TabPFN-2.5 는 데이터 세트 50,000 rows 까지 최적화되어 있습니다. 더 큰 데이터 세트의 경우 Random Forest 전처리나 다른 확장 기능을 고려하세요. 전략을 Colab 노트북에서 확인하세요.
Q: Python 3.8 과 함께 TabPFN 을 사용할 수 없습니까?
A: TabPFN 은 새로운 언어 기능으로 인해 **Python 3.9+**를 요구합니다. 호환 버전: 3.9, 3.10, 3.11, 3.12, 3.13.
Q: TabPFN-2.5 / TabPFN-2.6 에 액세스하는 방법은 무엇인가요?
첫 번째 사용 시, TabPFN 은 브라우저 창을 자동으로 열며 PriorLabs 를 통해 로그인하고 라이선스 조건을 수락할 수 있습니다. 인증 토큰은 로컬에 캐시되므로 한 번만 수행하면 됩니다.
브라우저가 없는 headless / CI 환경의 경우, https://ux.priorlabs.ai 로 이동하여 License탭으로 이동하고 라이선스를 수락한 후 TABPFN_TOKEN 환경 변수로 토큰을 얻은 토큰을 설정하세요.
브라우저 기반 흐름을 통한 액세스가 불가능한 경우, sales@priorlabs.ai 로 연락하세요.
Q: 인터넷 연결 없이 TabPFN 을 사용하는 방법은 무엇인가요?
TabPFN 은 처음 사용 시 모델 가중치를 자동으로 다운로드합니다. 오프라인 사용:
제공된 다운로드 스크립트 사용
TabPFN 저장소를 가지고 있다면, 포함된 스크립트를 사용하여 모든 모델 (앙상블 변형 포함) 을 다운로드할 수 있습니다:
# TabPFN 설치 후
python scripts/download_all_models.py
이 스크립트는 시스템의 기본 캐시 디렉토리에 주요 분류기 및 회귀기 모델을, 그리고 모든 앙상블 변형 모델을 다운로드합니다.
수동 다운로드
-
HuggingFace 에서 모델 파일을 수동으로 다운로드:
-
분류기: tabpfn-v2.5-classifier-v2.5_default.ckpt (참고: 분류기 기본값은 실제 데이터로 미세 조정된 모델을 사용합니다).
-
회귀기: tabpfn-v2.5-regressor-v2.5_default.ckpt
-
파일을 다음 위치 중 하나에 배치:
-
직접 지정:
TabPFNClassifier(model_path="/path/to/model.ckpt") -
환경 변수 설정:
export TABPFN_MODEL_CACHE_DIR="/path/to/dir/(환경 변수 FAQ 를 참조) - 기본 OS 캐시 디렉토리는 다음과 같습니다: -
Windows:
%APPDATA%\tabpfn\ -
macOS:
`~/Library/Caches/tabpfn/ -
Linux:
`~/.cache/tabpfn/ -
Windows:
-
직접 지정:
Q: 모델을 로드할 때 pickle 오류가 발생하고 있습니다. 무엇을 해야 하나요?
A: 다음을 시도해 보세요:
-
tabpfn 최신 버전 다운로드
pip install tabpfn --upgrade -
모델 파일이 올바르게 다운로드되었는지 확인 (필요시 재다운로드)
Q: TabPFN 를 구성하는 데 사용할 수 있는 환경 변수는 무엇인가요?
A: TabPFN 은 Pydantic 설정을 사용하여 구성하며, 환경 변수 및 .env 파일을 지원합니다:
인증:
TABPFN_TOKEN
: PriorLabs 인증 토큰을 직접 제공 (헤드리스/CI 환경에 유용함). https://ux.priorlabs.ai 에서 하나를 획득하세요.
TABPFN_NO_BROWSER
: 자동 브라우저 기반 로그인 비활성화 (예: 브라우저 열기를 원하지 않는 환경에서) 설정.
모델 구성:
TABPFN_MODEL_CACHE_DIR
: 다운로드된 TabPFN 모델을 캐시하는 사용자 지정 디렉토리 (기본값: 플랫폼별 사용자 캐시 디렉토리)
TABPFN_ALLOW_CPU_LARGE_DATASET
: 큰 데이터셋 (>1000 샘플) 에서 TabPFN 을 CPU 로 실행할 수 있도록 허용. true로 설정하여 CPU 제한을 무시합니다. 참고: 매우 느릴 것입니다!
PyTorch 설정:
PYTORCH_CUDA_ALLOC_CONF
: GPU 메모리 사용을 최적화하기 위한 PyTorch CUDA 메모리 할당 구성 (기본값:max_split_size_mb:512). 자세한 정보는 PyTorch CUDA 문서를 참조하세요.
예시:
export TABPFN_MODEL_CACHE_DIR="/path/to/models"
export TABPFN_ALLOW_CPU_LARGE_DATASET=true
export PYTORCH_CUDA_ALLOC_CONF="max_split_size_mb:512"
또는 단순히 .env 파일에 설정하세요.
Q: 학습된 TabPFN 모델을 저장하고 로드하는 방법은 무엇인가요?
A: save_fitted_tabpfn_model 을 사용하여 피팅된 추정기를 영구화하고 나중에 load_fitted_tabpfn_model(또는 해당 load_from_fit_state 클래스 방법) 로 다시 로드하세요.
from tabpfn import TabPFNRegressor
from tabpfn.model_loading import (
load_fitted_tabpfn_model,
...
피팅된 추정기 없이 기본 모델 가중치만 저장하려면 save_tabpfn_model(reg.model_, "my_tabpfn.ckpt") 를 사용하세요. 이는 사전 학습된 가중치의 체크포인트를 저장하므로 나중에 새로운 추정기를 생성하고 피팅할 수 있습니다. load_model_criterion_config 로 체크포인트를 다시 로드하세요.
Q: TabPFN 은 결측치를 처리할 수 있나요?
A: 네!
Q: TabPFN 의 성능을 개선하는 방법은 무엇인가요?
A: 모범 사례:
AutoTabPFNClassifier를 사용하여 후속 앙상블 - 특징 공학: 모델 성능을 개선하기 위해 도메인별 특징 추가
효과적이지 않은:
- 기능 스케일링 조정
- 범주형 특성을 수치적 값으로 변환 (예: one-hot encoding)
Q: Hugging Face 의 다른 체크포인트는 무엇인가요?
A: 기본 체크포인트를 제외하고, 다른 이용 가능한 체크포인트들은 실험적이며 평균적으로 더 나쁘며, 우리는 항상 기본값부터 시작하는 것을 권장합니다. 이들은 앙상블 또는 하이퍼파라미터 최적화 시스템의 일부로 사용될 수 있으며 (그리고 AutoTabPFNClassifier 에서 자동으로 사용됨), 또는 수동으로 시도해 볼 수도 있습니다. 이름 접미사는 우리가 기대하는 데에 대한 것입니다.
각 TabPFN-2.5 체크포인트에 대한 자세한 정보
우리는 실제 데이터셋에서 파인튜닝된 체크포인트를 위해 🌍 이모지를 추가합니다. 43 개 데이터셋 목록은 TabPFN-2.5 논문에서 확인하세요.
tabpfn-v2.5-classifier-v2.5_default.ckpt
🌍: 실제 데이터 파인튜닝된 기본 분류 체크포인트.
tabpfn-v2.5-classifier-v2.5_default-2.ckpt
: 가장 좋은 합성 데이터 체크포인트. 실제 데이터 파인튜닝 없이 기본 TabPFN-2.5 분류 모델을 얻기 위해 사용하세요.
tabpfn-v2.5-classifier-v2.5_large-features-L.ckpt
: 더 큰 특성 (최대 500) 과 작은 샘플 (< 5K) 을 위한 전용 체크포인트.
tabpfn-v2.5-classifier-v2.5_large-features-XL.ckpt
: 더 큰 특성 (최대 1000, max_features_per_estimator=1000 을 지원할 수 있음) 을 위한 전용 체크포인트.
tabpfn-v2.5-classifier-v2.5_large-samples.ckpt
: 더 큰 샘플 크기 (> 30K) 를 위한 전용 체크포인트.
tabpfn-v2.5-classifier-v2.5_real.ckpt
🌍: 다른 실제 데이터 파인튜닝된 분류 체크포인트. 전반적으로 매우 좋지만 큰 특성 (>100-200) 에서는 나쁘습니다.
tabpfn-v2.5-classifier-v2.5_real-large-features.ckpt
🌍: 다른 실제 데이터 파인튜닝된 분류 체크포인트, 큰 샘플 (> 10K) 에서는 나쁩니다.
tabpfn-v2.5-classifier-v2.5_real-large-samples-and-features.ckpt
🌍: tabpfn-v2.5-classifier-v2.5_default.ckpt 와 동일합니다.
tabpfn-v2.5-classifier-v2.5_variant.ckpt
: 매우 좋지만 큰 특성 (> 100-200) 에서는 나쁩니다.
tabpfn-v2.5-regressor-v2.5_default.ckpt
: 합성 데이터만 훈련된 기본 회귀 체크포인트.
tabpfn-v2.5-regressor-v2.5_low-skew.ckpt
: 낮은 목표 편차 데이터에 특화된 변형 (하지만 평균적으로 매우 나쁘습니다).
tabpfn-v2.5-regressor-v2.5_quantiles.ckpt
: 분량/분포 추정에 흥미로울 수 있는 변형이지만, 여전히 기본값이 우선시되어야 합니다.
tabpfn-v2.5-regressor-v2.5_real.ckpt
🌍: 실제 데이터 파인튜닝됨. 실제 데이터에서 파인튜닝된 체크포인트들 중 가장 좋은 체크포인트입니다. 회귀 분석에서는 합성 데이터만 훈련된 체크포인트를 기본값으로 권장하지만, 이 체크포인트는 일부 데이터셋에서 상당히 더 좋습니다.
tabpfn-v2.5-regressor-v2.5_real-variant.ckpt
🌍: 다른 실제 데이터 파인튜닝된 회귀 변형.
tabpfn-v2.5-regressor-v2.5_small-samples.ckpt
: 작은 (< 3K) 샘플에서 약간 더 좋은 변형.
tabpfn-v2.5-regressor-v2.5_variant.ckpt
: 다른 변형, 명확한 전문성은 없으나 몇몇 데이터셋에서는 더 좋을 수 있습니다.
- uv 설치
- 환경 설정:
git clone https://github.com/PriorLabs/TabPFN.git
cd TabPFN
uv sync
...
- 커밋하기 전:
pre-commit run --all-files
- 테스트 실행:
pytest tests/
이 프로젝트는 사용자 분석을 위해 완전히 익명 데이터를 수집하며, 사용자의 분석 또는 확장된 분석에 대한 선택권을 제공합니다.
데이터는 관련 제품 및 컴퓨팅 환경을 안정화하고 향후 개선을 안내하는 데에만 사용됩니다.
개인 데이터는 수집되지 않습니다코드, 모델 입력 또는 출력은 결코 전송되지 않습니다데이터는 엄격히 익명이며 개인과 연결될 수 없습니다
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending All (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기