tabfm-1.0.0-pytorch / README.md
weihaokong's picture
fix LICENSE link (404 on tree path) (#6)
77cb9cc
|
Raw
History Blame Contribute Delete
5.82 kB
---
license: other
license_name: tabfm-non-commercial-v1.0
license_link: https://huggingface.co/google/tabfm-1.0.0-pytorch/blob/main/LICENSE
library_name: tabfm
pipeline_tag: tabular-classification
tags:
- tabular
- tabular-regression
- zero-shot
- in-context-learning
- pytorch
- foundation-model
---
# TabFM 1.0.0 (PyTorch)
TabFM is a zero-shot tabular foundation model from Google Research. It supports
classification and regression on structured/tabular data with mixed numerical and
categorical columns, requiring no fine-tuning or hyperparameter search - training
examples are passed as context and predictions are made in a single forward pass.
This repository contains the **PyTorch** weights. For the JAX/Flax weights see
[google/tabfm-1.0.0-jax](https://huggingface.co/google/tabfm-1.0.0-jax).
## Getting Started
```bash
pip install tabfm[pytorch]
```
**Classification:**
```python
from tabfm import TabFMClassifier, tabfm_v1_0_0_pytorch as tabfm_v1_0_0
model = tabfm_v1_0_0.load(model_type="classification")
clf = TabFMClassifier(model=model)
clf.fit(X_train, y_train)
probs = clf.predict_proba(X_test)
```
**Regression:**
```python
from tabfm import TabFMRegressor, tabfm_v1_0_0_pytorch as tabfm_v1_0_0
model = tabfm_v1_0_0.load(model_type="regression")
reg = TabFMRegressor(model=model)
reg.fit(X_train, y_train)
preds = reg.predict(X_test)
```
You can also load directly using the HuggingFace Hub API:
```python
from tabfm.src.pytorch.tabfm_v1_0_0 import TabFM_HF
clf_model = TabFM_HF.from_pretrained("google/tabfm-1.0.0-pytorch", subfolder="classification")
reg_model = TabFM_HF.from_pretrained("google/tabfm-1.0.0-pytorch", subfolder="regression")
```
### Available Checkpoints
| Subfolder | Task | `is_classifier` |
|-----------|------|-----------------|
| `classification/` | Classification (up to 10 classes) | `True` |
| `regression/` | Regression | `False` |
## Developers and Affiliations
Developed by the [Google Research](https://research.google) team.
## Intended Use
- Tabular data with numerical and/or categorical columns
- Binary and multiclass classification (up to 10 classes)
- Regression on continuous targets
- Zero-shot inference: no dataset-specific training or hyperparameter tuning
- Works with DataFrames (pandas) or numpy arrays
## Not Intended For
- Images, audio, video, or raw text
- More than 10 output classes (hard model limit)
- Tasks requiring task-specific fine-tuning
- Non-tabular structured data (graphs, sequences)
- Commercial use (see License below)
## Model Architecture
TabFM uses alternating row and column attention to capture both feature interactions
and row-level patterns:
1. **Column attention** (Set Transformer): embeds each cell using Fourier features and
a per-group linear projection, then aggregates across rows via induced self-attention
2. **Row compression**: CLS tokens summarise each row into a dense vector via row-level
attention with Rotary Position Embedding (RoPE)
3. **ICL Transformer**: a 24-block causal transformer operates over the compressed row
vectors, treating training rows as context and outputting predictions for test rows
Key hyperparameters:
| Parameter | Value |
|-----------|-------|
| Embedding dim | 256 |
| Column attention blocks | 3 (4 heads, 256 induced points) |
| Row attention blocks | 3 (8 heads, 8 CLS tokens) |
| ICL transformer blocks | 24 (8 heads) |
| Feed-forward factor | 4 |
| Max classes | 10 |
| Activation | SwiGLU |
| Fourier features | 32 frequencies |
## Training Data and Priors
TabFM was trained on hundreds of millions of **synthetic** datasets generated
dynamically using structural causal models (SCMs). Synthetic data was chosen due to
the scarcity of diverse, high-quality open-source tabular datasets and to avoid
privacy/licensing concerns with real-world industrial data. The SCM prior encodes
inductive biases about causal structure and feature relationships typical in tabular
tasks.
## Performance
TabFM was evaluated on [TabArena](https://tabarena.ai) across 51 datasets
(38 classification, 13 regression). In zero-shot mode - a single forward pass with no
hyperparameter search - TabFM outperforms heavily-tuned supervised baselines including
gradient-boosted trees. The `TabFMClassifier.ensemble()` preset (feature crosses,
SVD features, NNLS blending) yields further improvements.
See the [Google Research blog post](https://research.google/blog/introducing-tabfm-a-zero-shot-foundation-model-for-tabular-data/) for full benchmark details.
## Ethical Considerations
TabFM was trained entirely on synthetic data. Performance on specific real-world
domains, minority groups, or edge distributions is not fully characterised. Users
should evaluate the model on held-out data representative of their use case before
deploying in high-stakes settings.
## Limitations
- **Max 10 classes** for classification (hard architectural limit)
- Memory usage scales with the number of training rows (all rows are passed as context)
- Optimised for tables up to 500 features; behaviour on very wide tables may degrade
- Performance is not guaranteed to match task-specific, fine-tuned models on all datasets
- Not an officially supported Google product
## License
The model weights in this repository are released under the
**TabFM Non-Commercial License v1.0** - see [LICENSE](https://huggingface.co/google/tabfm-1.0.0-pytorch/blob/main/LICENSE). The source code is
Apache 2.0 licensed via [google-research/tabfm](https://github.com/google-research/tabfm).
## Version
1.0.0
## Citation
```bibtex
@article{tabfm2026,
title = {TabFM: A Zero-Shot Foundation Model for Tabular Data},
author = {Google Research},
year = {2026},
url = {https://research.google/blog/introducing-tabfm-a-zero-shot-foundation-model-for-tabular-data/}
}
```