Skip to navigation

Kumo Tabular

View as Markdown

Kumo Tabular predicts a target column for new rows from labeled rows of the same table, in one forward pass, with no training or tuning. It handles classification and regression on numerical and categorical features.

At a Glance

PropertyValue
Classsdm.models.KumoTabular
TasksClassification (any number of classes) and regression (999 quantiles)
FeaturesNumerical and categorical columns
Sizessmall, medium, large (default)
Weightsnvidia/Kumo-Tabular, OpenMDW-1.1, public
Available inSDM 0.2.1 and later
ReferenceNVIDIA Kumo Tabular Sets a New Accuracy-Efficiency Frontier for Tabular Prediction

When to Use It

  • Your examples are rows of one table, and the target is a label or a number.
  • You want a strong baseline without hyperparameter tuning or feature engineering.
  • Choose Kumo Relational instead when the signal lives in other tables linked by keys.

How It Works

Kumo Tabular overview: a table of labeled context rows and unlabeled query rows passes through three stages in one forward pass. Cell embedding turns every cell into a token, the table encoder attends across columns and rows to turn each row into one vector, and in-context learning lets query rows attend to the labeled rows to output class probabilities or quantiles.

Kumo Tabular overview: a table of labeled context rows and unlabeled query rows passes through three stages in one forward pass. Cell embedding turns every cell into a token, the table encoder attends across columns and rows to turn each row into one vector, and in-context learning lets query rows attend to the labeled rows to output class probabilities or quantiles.

  1. Cell embedding. Numerical and categorical cells use separate learned Fourier features and projections, plus a missingness projection.
  2. Table encoder. Column-wise induced set attention and row-wise attention alternate. Learnable readout tokens compress each row into a fixed-size representation.
  3. In-context learning. A transformer over rows lets each query row attend to the labeled context rows and predicts class logits or quantiles.

Kumo Tabular was pretrained only on synthetic tables generated from structural causal models, with context sizes up to 60,000 rows and up to 100 columns.

Example

The Quickstart runs Kumo Tabular end to end on CPU. The core call is:

model = sdm.models.KumoTabular(task="classification", device=device)
probs = model(x_context=x_context, y_context=y_context, x_query=x_query, num_estimators=8)

Choose a Size

SizeClassifier parametersRegressor parametersICL transformer
small27.46M28.47M12 layers, 512 channels
medium61.49M62.49M24 layers, 512 channels
large (default)213.67M215.68M24 layers, 1024 channels

Inputs and Limits

  • One target column per call. Related tables are not accepted.
  • One forward pass covers up to 10 classes; SDM extends this to any number of classes with error-correcting output codes.
  • The default recipe keeps at most 500 feature columns per estimator, after shuffling columns.
  • Accuracy may degrade on tables far beyond the pretraining ranges, or when query rows come from a different distribution than context rows.
  • Text, datetime, and other column types need recipe processors that turn them into numerical features.

Key Parameters

ParameterWhereMeaning
taskConstructor"classification", "regression", or both (default). Loads only the heads you need.
sizeConstructor"small", "medium", or "large"
num_estimatorsForward, fitNumber of ensemble members over randomized views
estimator_batch_sizeForward, fitMembers per model call. Lower it to reduce device memory.
recipeForward, fitReplace the default preprocessing and postprocessing
generatorForward, fitSeeded torch.Generator for reproducible results

Fine-Tuning

Kumo Tabular supports full fine-tuning through a differentiable forward pass. See the fine-tuning guide and examples/tabular/finetune.py.

Learn More