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 →
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