Nori 1.5
Nori 1.5 is the ~21M-parameter (20,757,832) Model v3 variant of Nori, a tabular foundation model for regression via in-context learning (ICL). Given a few labeled rows as context, it predicts on new query rows in a single forward pass, with no task-specific training or fine-tuning. The model is trained entirely on synthetic data.
- Documentation: https://docs.synthefy.com/nori/
- Repository: https://github.com/Synthefy/synthefy-nori
- Library:
pip install "synthefy-nori>=0.22.0" - Checkpoint:
nori.pt(this repo) - Parameters: ~21M (20,757,832)
- License: Apache-2.0
What is different about Model v3
The other Nori sizes share one architecture. Nori 1.5 adds a two-phase encoder: a 9-layer cell encoder (embedding 128, 4 heads) followed by a separate 12-layer row encoder (width 256, 8 heads), with two target tokens per row and query-key normalisation throughout. Features are tokenized with RBF64 + PLE64.
It also has its own inference config: a fixed 4-member preprocessing ensemble, where the other
sizes use 8 members. The config is stored inside nori.pt, so every way of loading this file uses
it. Pass inference_config= to choose a different one.
Results
Mean and median R² across 95 public regression tasks from three suites, for all four sizes, from one sweep on one machine with the same code:
| Suite | Datasets | Nori-6M | Nori 1.5 (21M) | Nori-30M | Nori-100M |
|---|---|---|---|---|---|
| TabArena | 13 | 0.8068 / 0.8772 | 0.8175 / 0.8939 | 0.8097 / 0.8831 | 0.8120 / 0.8901 |
| TALENT | 71 | 0.7561 / 0.8918 | 0.7614 / 0.8939 | 0.7523 / 0.8942 | 0.7539 / 0.8944 |
| OpenML | 11 | 0.6366 / 0.5719 | 0.6559 / 0.6265 | 0.6430 / 0.6190 | 0.6488 / 0.6313 |
| Overall | 95 | 0.7492 / 0.8708 | 0.7569 / 0.8869 | 0.7475 / 0.8752 | 0.7497 / 0.8799 |
Nori 1.5 has the highest mean on every suite. Task by task, it beats Nori-100M on 57 tasks, ties 31 (within 0.001 R²) and loses 7. It does this with 4 ensemble members instead of 8, so on TabArena and TALENT it took 309 s of model time against 782 s for Nori-30M (2.5x faster) and 3,370 s for Nori-100M (11x faster). Each size ran on its own H100 alongside other jobs, so treat the times as approximate.
How the table was produced: synthefy-nori-eval with --max-elements-budget 2000000 and up to
50,000 context rows, on one H100 per size. Each size used its default inference config. TALENT
excludes topo_2_1, as the 6M/30M/100M benchmark in the
repository README does. TALENT and
Overall sit about 0.01 below that README for every size. One dataset, CookbookReviews, scores
R² −0.37 to −0.63 for every size (the released 0.21.1 code gives the same −0.63 for Nori-30M), and
dropping it alone puts every size above the README's TALENT mean. Compare sizes within this table.
Usage
pip install "synthefy-nori>=0.22.0"
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
from synthefy_nori import NoriRegressor
X, y = load_diabetes(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
model = NoriRegressor(model="nori-1-5") # downloads these weights from the Hub on first use
model.fit(X_train, y_train) # "fit" just stores the labeled rows as context
pred = model.predict(X_test) # predictions in a single forward pass, no training
It uses a GPU when one is available and falls back to CPU. A one-shot helper skips the object entirely:
from synthefy_nori import predict
pred = predict(X_train, y_train, X_test, task="regression", model="nori-1-5")
To run from a local copy of this checkpoint, pass its path; the stored config comes with it:
model = NoriRegressor(model_path="path/to/nori.pt")
Earlier synthefy-nori releases cannot load this checkpoint; use 0.22.0 or later.
This model is public: the first call downloads and caches it automatically, with no token and no
access request. A Hugging Face token (read scope) is only worth setting if you hit anonymous
download rate limits — provide it via export HF_TOKEN=hf_..., hf auth login, or
NoriRegressor(model="nori-1-5", token="hf_...").
Intended use & limitations
- Intended for small-to-medium tabular regression where in-context learning is attractive (no per-task training).
- Limitations: dense O(N²) sample attention bounds practical context size, so the current gap vs the best baselines is on large-N / long-context tables. Trained entirely on synthetic data; no benchmark data is used in training.
Citation
@software{synthefy_2026_20710462,
author = {Synthefy and
Li, Po-han and
Narayanan, Aditya and
Narasimhan, Sai Shankar and
Mallampalli, Raghav and
Agrawal, Aahan and
Ajan, Bekzat and
Shah, Raimi and
Agarwal, Shubhankar},
title = {Synthefy Nori: Tabular Foundation Model for Regression},
month = jun,
year = 2026,
publisher = {Zenodo},
version = {0.6.0},
doi = {10.5281/zenodo.20710462},
url = {https://doi.org/10.5281/zenodo.20710462},
}
License
- Downloads last month
- 179