OCF typed-decisions CE smoke (ModernBERT-base)

Not a foundation classifier. Not RLCD. No Jev comparison.

Open Classification Foundation (OCF) specialist smoke: non-autoregressive System-1 decision head on answerdotai/ModernBERT-base, fine-tuned with cross-entropy on LocalLLaMA/typed-decisions train, temperature-calibrated on a held-out train slice (cal_frac=0.1).

Architecture

ModernBERT-base (bidirectional)
  + 2-layer decision Transformer head
  + OptionScorer at each option [MASK]
  β†’ softmax(/T) over options
Knob Value
Params ~164M
max_len 640
Option token budget 48 / option
Primitives choice / score / noul

Training

Field Value
Objective CE on teacher-argmax labels (soft teachers in dataset)
Epochs / eff. batch 4 / 8
LR encoder / head 2.5e-5 / 1e-4
Seed (this upload) 1 (best of 0/1/2; mean acc 0.731, SD 0.028)
Temperatures (shipped) choice 1.5 Β· score 1.25 Β· noul 1.5

Evaluation (LocalLLaMA/typed-decisions test, 2,000 decisions)

Arm acc NLL ECE as-run ECE after equal crossfit
Laya typed-decisions (reference) 0.767 0.707 0.214 0.021
This checkpoint (s1) 0.751 0.629 0.044 0.030
OCF stub (prior, ~8M) β‰ˆ0.61 β‰ˆ0.90 β‰ˆ0.04 β€”

Latency (warm, RTX 3050 Laptop): p50 59.6 ms / p95 87.8 ms per question (n=200). Not a cross-vendor claim.

Full board: see source-repo snapshot results-snapshot-2026-09-28-ocf-typed-decisions-mbert.md.

Files

  • config.json β€” ClassifierConfig (includes temperatures)
  • temperatures.json β€” fitted per-type T
  • model.pt β€” full ClassifierBundle state_dict
  • recipe.json β€” train hyperparams + acc

How to run

Requires the OCF stack from the source repository (packages.classify + models_ai.classify):

from classify import load

agent = load("path/to/this/repo")  # config.json + model.pt + temperatures.json
out = agent.predict(
    {"subject": "Refund", "body": "Billed twice"},
    {
        "department": {
            "type": "choice",
            "instructions": "Which department?",
            "criteria": {"billing": "invoices", "tech": "bugs", "other": "else"},
        }
    },
)

Not a drop-in for the external laya package.

Concurrent baseline

Laya β€” open System-1 concurrent (ModernBERT-large). Matched estimand only; not a dependency.

Non-claims

  • Not a foundation / zero-shot System-1 model
  • Not RLCD-trained
  • Does not claim to beat TypeSafe Jev or Laya
  • Soft teacher labels; teachers disagree on ~41% of test decisions
Downloads last month
660
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for MSGEncrypted/ocf-typed-decisions-mbert-base

Finetuned
(1518)
this model

Dataset used to train MSGEncrypted/ocf-typed-decisions-mbert-base