Parameter-efficient tabular FMs
Why train a 70M-parameter model when a 13M-parameter one matches it within 4 pp? We focus on the small end of the size/accuracy frontier where models run on a laptop and can be audited end-to-end.
0.751 classification accuracy / 0.609 regression R² on a locked 25-dataset OpenML benchmark. Apache-2.0. Calibrated outputs — returns full prediction confidence intervals, not just point estimates.
The next decade of AI will be defined as much by what models can do with tables of data as by what they can do with text. Most real business decisions still happen on rows and columns. We're closing the gap, openly.
Why train a 70M-parameter model when a 13M-parameter one matches it within 4 pp? We focus on the small end of the size/accuracy frontier where models run on a laptop and can be audited end-to-end.
A prediction without a confidence interval is a guess. Our regression head returns full predictive distributions over 1024 quantile bins, not point estimates. Calibration is a first-class objective, not an afterthought.
LLMs aren't built for numerical inference. Our models ship as MCP tools that any LLM agent can call. The agent reasons; the model predicts. We treat the LLM–tool boundary as a first-class research problem.
13M parameters · 54 MB · Apache-2.0
The smallest open-weight tabular foundation model with calibrated uncertainty. Statistically tied with Base on classification and within ~4 percentage points R² on regression. Runs on any modern laptop.
26M parameters · 105 MB · Apache-2.0
The best-accuracy model in the family. Teacher for Mini and the architecture of record for our published evaluations. Apache-2.0 across the board — suitable for commercial deployment.
One pip install. One PredictLM object. Returns class probabilities and full regression confidence intervals.
from predictlm import PredictLM
import pandas as pd
# One model object — partner ckpt is auto-downloaded on first .predict()
# and the package runs the published Duo + TTT recipe under the hood.
model = PredictLM.from_pretrained(
"zerooneresearch/predictlm-mini-13m"
)
X_train = pd.DataFrame(...) # labeled context rows
y_train = pd.Series(...) # labels (float = regression, int/str = cls)
X_test = pd.DataFrame(...) # rows you want predictions for
# 0.751 cls / 0.609 reg on the locked OpenML benchmark.
preds = model.fit(X_train, y_train).predict(X_test)
probs = model.predict_proba(X_test)Also available as an MCP server for Claude Desktop, Cursor, and Continue. See setup →
PredictLM is pre-trained. You don't fine-tune it. You give it your data, and it predicts.
A CSV or DataFrame with rows you have labels for, plus rows you want predictions for. Up to 128 features per row. Classification or regression — the model figures out which.
In ~2-15 seconds (depending on dataset size), the model adapts to your specific task using its pre-trained representations. No GPU required for Mini. No hyperparameter tuning.
Not just point predictions — full probability distributions. For regression you get a 1024-bin posterior. For classification, calibrated class probabilities. Everything you need for downstream decisions.
Try it in your browser — no install needed.
Launch the live demoThe biggest business decisions still run on tables. PredictLM gives those tables the same lift LLMs gave text.
Apache-2.0 license, open weights — deployable on your own infrastructure for regulated industries.
Model release · 2026-05-27
The smallest checkpoint in the family. Distilled from a 26M Base. Runs on a laptop. The launch release.
ReadTechnical · 2026-05-27
Before settling on Mini's architecture, we ran six experiments at the 26M-57M scale. Five lost to the smaller model. Here's the full writeup.
ReadTechnical · 2026-05-27
A 1024-bin output for regression is the difference between a guess and a calibrated prediction. Why we use it and how to use it.
Read