certo-decision-model (v1)
A small, calibrated, non-generative decision model: it reads a state and a set of options described in text and returns a calibrated probability for each โ in one forward pass, no text generation. Default model for certo.
- Backbone: ModernBERT-large + a per-option query/scoring head (options scored independently โ order-invariant by construction).
- Trained on: a synthetic world with a known answer, so calibration is learned against the exact posterior (soft/distributional targets). 60k examples, 25 epochs.
Evaluation (held-out; graded against the exact answer)
| eval | KL(rโp) โ | TV โ | acc | ECE โ |
|---|---|---|---|---|
| unseen options (new prototypes + names + wording) | 0.008 | 0.016 | 0.844 | 0.004 |
| more options (8โ10 presented; trained on 3โ6) | 0.015 | 0.026 | 0.760 | 0.003 |
| option-order invariance | 0.00 (exact) |
It generalizes to options, names, wording, and counts it never trained on, with tight calibration.
Scope & honest limits
- In-distribution = synthetic, structured inputs (option "profiles" of the form "typically attribute value, โฆ"). On this distribution it is excellent and well-calibrated.
- It does NOT transfer to arbitrary natural-language prose yet. On real free text it tends to return a near-uniform distribution and abstains โ a safe failure, but it can't do a real routing/triage task out of the box. Handling real language is the v2 goal (real data + a paraphrase layer). Treat this as a research preview / reference checkpoint, not a general model.
Usage
from huggingface_hub import snapshot_download
from infer import DecisionModel # from the certo repo
m = DecisionModel.load(snapshot_download("altslate/certo-decision-model"))
r = m.decide(
state="We measured salinity as ember, tempo as gale, density as gale.",
options=[{"id": "A", "description": "typically salinity ember, tempo gale, density gale"},
{"id": "B", "description": "typically salinity dawn, tempo frost, density brine"}],
abstain_below=0.6)
r["probs"] # calibrated probability per option
Code + technical report: https://github.com/AltSlate-Labs/certo ยท https://altslate-labs.github.io/certo/report.html
Inspired by Jev / System-1 decision models. Independent, not affiliated with TypeSafe. MIT.