Back to Devoured - October 19, 2026
DEVOURED
TabPFN (GitHub Repo)

TabPFN (GitHub Repo)

Data GitHub
Prior Labs released TabPFN-3.5, a transformer-based foundation model that performs tabular machine learning tasks without needing to train a model per dataset.
What: TabPFN-3.5 is a tabular foundation model that handles classification and regression tasks directly using a `fit` and `predict` scikit-learn compatible API. It is built on PyTorch and requires a GPU for optimal performance, supporting up to 1,000,000 rows and 20,000 features in its latest iteration.
Why it matters: This represents a shift toward zero-shot or few-shot learning for tabular data, moving away from traditional model training and hyperparameter tuning pipelines toward a model-as-a-service approach for structured data.
Takeaway: If you have a small-to-medium dataset, try using `pip install tabpfn` and the `TabPFNClassifier` class to get baseline results immediately without feature scaling or one-hot encoding.
Deep dive
  • Foundation Model for Tables: Uses a transformer architecture trained on synthetic tabular datasets to generalize to new, unseen data.
  • No Training Required: Designed to perform well out-of-the-box on small data without the heavy lifting of traditional model training.
  • Fast Inference: Uses proprietary distillation techniques in the Enterprise Edition to lower latency for real-time applications.
  • API Compatibility: Provides a scikit-learn-like interface (.fit(), .predict()), lowering the barrier to entry for existing data science workflows.
  • Hardware Requirements: Highly optimized for CUDA and Apple Silicon GPU support; requires Python 3.10+.
  • Data Handling: Automatically handles missing values and does not require manual categorical feature encoding or scaling.
  • License Model: Recent model weights (3.0+) are released under non-commercial licenses, differing from earlier v2 releases that used a more permissive license.
Decoder
  • Tabular Data: Data organized in a table with rows and columns, typically found in spreadsheets, SQL databases, or CSV files.
  • Foundation Model: A large-scale model trained on a massive, diverse dataset that can be adapted to a wide range of downstream tasks.
  • Inference: The process of using a trained model to make predictions on new, unseen data.
  • Distillation: A technique where a smaller, more efficient 'student' model is trained to reproduce the behavior of a larger, more complex 'teacher' model.
Original article

TabPFN

Quick Start

Interactive Notebook Tutorial

Dive right in with our interactive Colab notebook! It's the best way to get a hands-on feel for TabPFN, walking you through installation, classification, and regression examples.

Installation

pip install tabpfn

TabPFN supports Python 3.10+.

⚡ GPU Recommended: For optimal performance, use a GPU (even older ones with ~8GB VRAM work well; 16GB needed for some large datasets). On CPU, only moderate datasets are feasible (TabPFN-3, TabPFN-3.5 and TabPFN-3.5-Fast allow up to 5000 samples; older versions up to 1000). No GPU? Use our free hosted inference via TabPFN Client.

On macOS: GPU support is automatically included for Apple Silicon Macs. For best performance, ensure you are using PyTorch 2.13 or newer.

On Linux: Nvidia GPU support is automatically included. For AMD GPUs, first install PyTorch with ROCm, then install TabPFN. For example,

pip install torch --index-url https://download.pytorch.org/whl/rocm7.2
pip install tabpfn

For a CPU-only install, first install CPU-only PyTorch, then install TabPFN. This saves disk space if you do not have a GPU.

On Windows: For Nvidia GPUs, install PyTorch with CUDA, then install TabPFN. For AMD GPUs, install PyTorch with ROCm, then install TabPFN.

Basic Usage

To use our default TabPFN-3.5 model:

from tabpfn import TabPFNClassifier, TabPFNRegressor

clf = TabPFNClassifier()
clf.fit(X_train, y_train)  # downloads checkpoint on first use
predictions = clf.predict(X_test)

reg = TabPFNRegressor()
reg.fit(X_train, y_train)  # downloads checkpoint on first use
predictions = reg.predict(X_test)

To use the smaller, faster TabPFN-3.5-Fast you can use ModelVersion.V3_5_FAST or "v3.5-fast".

from tabpfn.constants import ModelVersion

classifier = TabPFNClassifier.create_default_for_version(ModelVersion.V3_5_FAST)
regressor = TabPFNRegressor.create_default_for_version(ModelVersion.V3_5_FAST)

To use other model versions (e.g. the previous default, TabPFN-3):

classifier = TabPFNClassifier.create_default_for_version(ModelVersion.V3)
regressor = TabPFNRegressor.create_default_for_version(ModelVersion.V3)

TabPFN Ecosystem

Choose the right TabPFN implementation for your needs:

  • TabPFN Client: Simple API client for using TabPFN via cloud-based inference.
  • TabPFN Extensions: Community extensions and integrations, including:
    • interpretability: Gain insights with SHAP-based explanations, feature importance, and selection tools.
    • unsupervised: Tools for outlier detection and synthetic tabular data generation.
    • embeddings: Extract and use TabPFN's internal learned embeddings for downstream tasks or analysis.
    • many_class: Handle multi-class classification problems that exceed TabPFN's built-in class limit.

    To install:

    pip install tabpfn-extensions
  • TabPFN (this repo): Core implementation for fast and local inference with PyTorch and CUDA support.
  • TabPFN UX: No-code graphical interface to explore TabPFN capabilities—ideal for business users and prototyping.

License

The code in this repository is licensed under the Apache License 2.0. Third-party code is subject to its own licenses and attribution requirements.

Model weights are licensed separately.

The TabPFN-2.5, TabPFN-2.6, TabPFN-3 and TabPFN-3.5 model weights are released under non-commercial licenses. TabPFN-3.5 is used by default.

The TabPFN-2 model weights are licensed under the Prior Labs License (Apache 2.0 with an additional attribution requirement). To use the v2 model weights, instantiate your model as follows:

from tabpfn import TabPFNRegressor
from tabpfn.constants import ModelVersion

tabpfn_v2 = TabPFNRegressor.create_default_for_version(ModelVersion.V2)

Enterprise & Production

For high-throughput or massive-scale production environments, we offer an Enterprise Edition with the following capabilities:

  • Fast Inference Mode: A proprietary distillation engine that converts TabPFN into a compact MLP or tree ensemble, delivering orders-of-magnitude lower latency for real-time applications.
  • Commercial Support: Includes a Commercial Enterprise License for production use-cases, dedicated integration support, and access to private high-speed inference engines.

Join Our Community

  1. Connect & Learn:
    • Join our Discord Community
    • Read our Documentation
    • Check out GitHub Issues
  2. Contribute:
    • Report bugs or request features
    • Share your research and use cases
    • Submit pull requests
  3. Stay Updated: Star the repo and join Discord for the latest updates

Citation

You can read our paper explaining TabPFNv2 here, and model reports for TabPFN-2.5, TabPFN-3 and TabPFN-3.5.

Usage Tips

  • Use batch prediction mode: Each predict call recomputes the training set. Calling predict on 100 samples separately is almost 100 times slower and more expensive than a single call. If the test set is very large, split it into chunks of 1000 samples each.
  • Avoid data preprocessing: Do not apply data scaling or one-hot encoding when feeding data to the model.
  • Use a GPU: TabPFN is slow to execute on a CPU. Ensure a GPU is available for better performance.
  • Mind the dataset size: TabPFN works best on datasets within its recommended size limits. TabPFN-3.5 and TabPFN-3.5-Fast accept up to 1,000,000 rows and 20,000 features.

❓ FAQ

Usage & Compatibility

Q: What dataset sizes work best with TabPFN? Recommended row and feature limits vary by checkpoint. As a quick reference, the current default (TabPFN-3.5, and TabPFN-3.5-Fast) accepts up to 1,000,000 rows and 20,000 features. If your dataset exceeds the recommended limits for your checkpoint, you can subsample, set ignore_pretraining_limits=True to push past the size guardrail, or upgrade to a release with a higher limit.

Q: Why can't I use TabPFN with Python 3.9? TabPFN requires Python 3.10+ due to newer language features. Compatible versions: 3.10, 3.11, 3.12, 3.13, 3.14.

Installation & Setup

Q: How do I get access to TabPFN-2.5 / TabPFN-2.6 / TabPFN-3 / TabPFN-3.5? On first use, TabPFN will automatically open a browser window where you can log in via PriorLabs and accept the license terms. Your authentication token is cached locally so you only need to do this once.

Q: How do I use TabPFN without an internet connection? TabPFN automatically downloads model weights when first used. You can manually download the model files and place them in your system's cache directory.

Q: What environment variables can I use to configure TabPFN? TabPFN supports various environment variables for authentication (TABPFN_TOKEN), model configuration (TABPFN_MODEL_CACHE_DIR, TABPFN_ALLOW_CPU_LARGE_DATASET), and performance optimization (PYTORCH_CUDA_ALLOC_CONF).

Q: How do I save and load a trained TabPFN model? Use save_fitted_tabpfn_model to persist a fitted estimator and reload it later with load_fitted_tabpfn_model.

Performance & Limitations

Q: Can TabPFN handle missing values? Yes!

Q: How can I improve TabPFN's performance? Feature engineering is effective, while feature scaling and one-hot encoding are generally not.

Explore all 62 articles in today's digest

Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi