You need to agree to share your Hugging Face information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

TabFORGE

[NeurIPS 2026] TabFORGE: A Tabular Foundation Model for Generative Modelling

Paper Docs PyPI CI Hugging Face License Downloads

Official code for the paper TabFORGE: A Tabular Foundation Model for Generative Modelling, accepted at NeurIPS 2026.

Authors: Xiangjian Jiang, Mingxuan Liu, Nikola Simidjievski, Tassilo Klein, and Mateja Jamnik

Institutions: University of Cambridge; SAP SE; TΓ©lΓ©com Paris, Institut Polytechnique de Paris

Maintainer: Xiangjian Jiang

Related tools: TabCamel for tabular data preparation Β· TabEval for synthetic-data evaluation Β· TabStruct for tabular generator benchmarking.

🌐 Overview

TabFORGE learns contextual representations of mixed-type tables with its Structure-aware Feature Encoder, models them with the Score-based Diffusion Transformer, and reconstructs them with the Denoising-aligned Latent Decoder. Its estimator API supports synthetic data generation, classification, regression, embedding, imputation, clustering, and anomaly detection.

TabFORGE: one tabular foundation model for generation, classification, regression, embedding, imputation, clustering, and anomaly detection

Model architecture

Original paper architecture: Structure-aware Feature Encoder, Score-based Diffusion Transformer, and Denoising-aligned Latent Decoder

✨ Key features

  • One estimator interface for pandas DataFrames and NumPy arrays, with schema-aware numerical, categorical, and target handling.
  • Pretrained TabFORGE model and leakage-aware held-out-fold embeddings for supervised training rows.
  • Latent diffusion with EDM preconditioning, Karras-style schedules, and Euler/Heun sampling.
  • Canonical checkpoints for complete estimator restoration or data-free backbone transfer.
  • CPU-friendly mock embeddings, single-device execution, and torchrun distributed execution.

πŸš€ Installation

TabFORGE requires Python 3.10 or later. Install the PyPI distribution tabforge-ml:

pip install tabforge-ml

The Python import name and command-line entry point are both tabforge. For notebooks or optional Weights & Biases logging:

pip install 'tabforge-ml[tutorials]'
pip install 'tabforge-ml[wandb]'

For development, clone the source repository and install it in editable mode:

git clone https://github.com/SilenceX12138/TabFORGE.git
cd TabFORGE
pip install -e .

You can also download the source ZIP.

The default workflow uses the pretrained TabFORGE model with checkpoint="pretrained". Model weights are downloaded on first use. For offline examples, configure TabFORGEEmbeddingConfig(model_path="mock") and use checkpoint=None to train all TabFORGE components from scratch.

πŸ“Š Logging with W&B

Install tabforge-ml[wandb], authenticate with wandb login, and pass an online logging configuration to an estimator:

from tabforge import TabFORGERuntimeConfig

runtime = TabFORGERuntimeConfig(
    log_wandb=True,
    wandb_project="tabforge",
    wandb_dir="./logs/wandb",
)

Use the estimator's runtime_config=runtime argument, or pass an existing run through logger to keep metrics in your surrounding experiment.

⚑ Quick sanity check

This small CPU example uses deterministic mock embeddings and initializes the TabFORGE model from scratch:

import pandas as pd

from tabforge import (
    TabFORGEArchitectureConfig,
    TabFORGEEmbeddingConfig,
    TabFORGEGenerator,
    TabFORGERuntimeConfig,
    TabFORGETrainingConfig,
)

X = pd.DataFrame({
    "age": [21.0, 35.0, 48.0, 62.0],
    "city": ["Cambridge", "London", "Cambridge", "Oxford"],
})

model = TabFORGEGenerator(
    task="unsupervision",
    embedding_config=TabFORGEEmbeddingConfig(model_path="mock", n_folds=0),
    architecture_config=TabFORGEArchitectureConfig(
        embedding_dimension=8,
        decoder_layers=1,
        decoder_heads=2,
        decoder_ffn_factor=2,
        denoiser_layers=1,
        denoiser_heads=2,
        denoiser_ffn_factor=2,
    ),
    training_config=TabFORGETrainingConfig(max_steps=2, batch_size=4),
    runtime_config=TabFORGERuntimeConfig(device="cpu"),
    random_state=7,
).fit(X, checkpoint=None)

synthetic = model.generate(5, random_state=7)
print(synthetic)

🧩 Example workflows

Prepare train.csv with feature columns in their original order. Categorical DataFrame columns are inferred from their dtypes; pass categorical_features explicitly for integer-coded categories.

import pandas as pd

from tabforge import TabFORGEGenerator

X_train = pd.read_csv("train.csv")
generator = TabFORGEGenerator(task="unsupervision", random_state=7)
generator.fit(X_train)  # Uses the pretrained TabFORGE backbone by default.
synthetic = generator.generate(1_000, random_state=7)
generator.save_checkpoint("checkpoints/generator")

For supervised tasks, fit a classifier or regressor with X_train, y_train, then call predict (and predict_proba for classification, or predict_std and predict_interval for regression). TabFORGEEmbedder.transform extracts embeddings, TabFORGEImputer.transform fills missing values, and the clusterer and anomaly detector expose predict and score_samples respectively. See the linked tutorials for complete examples.

πŸ““ Tutorials

Open a notebook with its Open in Colab badge and follow the tutorial setup guide to install tabforge-ml[tutorials] in the runtime. Select a GPU for practical pretrained workloads; the sanity check above is designed for CPU.

Workflow Notebook
Unconditional generation Unconditional generation Β· Open in Colab
Pretrained and scratch training Pretrained and scratch training Β· Open in Colab
Devices and distributed execution Device and distributed execution Β· Open in Colab
Classification Classification Β· Open in Colab
Regression Regression Β· Open in Colab
Feature embeddings Feature embeddings Β· Open in Colab
Missing-value imputation Missing-value imputation Β· Open in Colab
Clustering Clustering Β· Open in Colab
Anomaly detection Anomaly detection Β· Open in Colab

πŸ’Ύ Checkpoints and data privacy

The official pretrained backbone is available from the TabFORGE Hugging Face repository. Estimator fitting uses checkpoint="pretrained" by default; use checkpoint=None to train from scratch or pass a canonical checkpoint path to restore model components.

save_checkpoint(path) stores a complete fitted estimator, including preprocessing state and the fitted context required for inference. save_backbone_checkpoint(path) stores reusable model weights without preprocessing state or training rows. Complete fitted checkpoints can contain provider training context. Use a backbone checkpoint for data-free distribution.

πŸ“– Citation

@article{jiang2026tabforge,
  title     = {{TabFORGE}: A Tabular Foundation Model for Generative Modelling},
  author    = {Jiang, Xiangjian and Liu, Mingxuan and Simidjievski, Nikola
               and Klein, Tassilo and Jamnik, Mateja},
  booktitle = {Advances in Neural Information Processing Systems},
  year      = {2026}
}

@inproceedings{jiang2026generative,
  title     = {A Generative Foundation Model for Heterogeneous Tabular Data},
  author    = {Jiang, Xiangjian and Liu, Mingxuan and Simidjievski, Nikola
               and Klein, Tassilo and Jamnik, Mateja},
  booktitle = {2nd ICML Workshop on Foundation Models for Structured Data},
  year      = {2026},
  url       = {https://openreview.net/forum?id=RcsaxrdpfE}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Paper for XiangjianJiang/TabFORGE