tabctx¶
The serving engine for tabular foundation models.
Fit a table once, keep it on the GPU, and answer later predictions typically well under a second, for many tables and many users, on hardware you control.
from tabctx import TabctxClassifier, TabctxClient
clf = TabctxClassifier(client=TabctxClient("http://127.0.0.1:8000"))
clf.fit(X_train, y_train) # encodes the table once, on the server
clf.predict_proba(X_test) # reuses the cached context
What tabctx does¶
TabPFN and TabICL often beat gradient boosting with no training loop: the training table is the model's input. Encoding that table is the expensive part, and it is the same work on every prediction. tabctx encodes each table once and serves predictions against the result. Why a server, need by need →
-
Fit once, predict many
A fitted table becomes a context, addressed by id. Every later predict skips the re-encode.
-
Many tables, one GPU
Contexts share a byte-budgeted cache. The coldest is evicted or spilled to disk, and a fit that would run the GPU out of memory is refused before it runs.
-
Three models, one endpoint
tabicl-v2,tabpfn-3.5andtabdpt-1.3behindGET /v1/models(two licensed for commercial use); pick one per request. Adding a model is one backend class and a few lines of wiring. -
Prediction intervals
Regression predicts a distribution, so ask for its quantiles, such as a 90% interval per row, from the same model call as the mean.
-
Drop-in scikit-learn
TabctxClassifierandTabctxRegressortake DataFrames with text, dates and missing values, and work in pipelines andcross_val_score. -
Tools for coding agents
tabctx-mcplets Claude Code, Codex and Gemini CLI fit, predict, explain and run what-ifs on a CSV. -
Built for production
Multi-GPU placement, multi-replica routing on Ray Serve or one plain process, tenant isolation, list and delete, and a container image.
Compared with the alternatives¶
| Model in your process | Hosted API | tabctx | |
|---|---|---|---|
| Data stays on your machines | |||
| Many tables cached at once, per tenant | |||
| Refuses a fit before it runs out of GPU memory | n/a | ||
| Models from several labs behind one endpoint | |||
| Open source, no per-call metering | |||
| You can list and delete what the server holds | n/a | varies |
Models¶
| Model id | Model | Weights license |
|---|---|---|
tabicl-v2 |
TabICLv2 (Inria) | BSD-3-Clause: commercial use OK |
tabpfn-3.5 |
TabPFN-3.5 (Prior Labs) | Non-commercial; production use needs a license from Prior Labs |
tabdpt-1.3 |
TabDPT (Layer 6) | Apache-2.0: commercial use OK |
tabctx itself is Apache 2.0; each model's weights keep their own license.