All metrics, all models

Scorecard: fine-tuned 9B vs base 9B vs two frontier models

We fine-tuned a small open model — Qwen3.5-9B — to pull clauses out of commercial contracts, then scored it against the same 9B model untouched and two frontier models from closed APIs: GPT-5.6-luna and GPT-5.6-terra.

This dashboard uses the active, like-for-like 1,639-question paired sample. The fine-tuned model and base model also have complete full-run results; Sonnet 5 is intentionally excluded from this active comparison.

What exactly was tested?
The data
CUAD — 510 real commercial contracts read and marked up by lawyers across 41 clause types (anti-assignment, cap on liability, non-compete, and so on). Scoring is against those lawyers' highlights.
The task
Give the model a full contract plus one clause type. It returns {"found": true/false, "quote": "…"} — the verbatim passage, or nothing if the clause is absent.
The fine-tune
LoRA over 4,058 training examples, 3 epochs, ~2.2 H100-hours, about $9 as billed by the platform for seed 43. No prompt tricks: all four active models get the identical zero-shot prompt.
The test set
101 contracts held out at the contract level, so no question from a training contract can leak in.
Methodology & fairness checklist
Coverage
All 41 clause types scored, all 101 held-out contracts, at natural clause prevalence — no category selection, no cherry-picking.
Split integrity
Contract-level split: the same document never appears in both train and test. Audited for near-duplicates — max 8-word-shingle Jaccard similarity 0.256 against the training set. In law, template reuse is the deployment distribution; the binding check is document-level split integrity, and it is enforced here.
Prompting
One identical zero-shot prompt for every model. No per-model prompt tuning.
Pairing
Every model answers the same questions, so any difference is the model, not the test.
Decoding
gpt-5.6-luna rejects temperature 0 and was run at its forced default (1). That vendor constraint is disclosed, not hidden.
Scoring
One parser, equal leniency for every model. An invalid or unparseable output always counts against whichever model produced it.
Confidence
Contract-clustered bootstrap, not naive per-question resampling. Fine-tuned beat base in 1000/1000 paired resamples — detection F1 +0.099 [+0.080, +0.120], span F1 +0.204 [+0.178, +0.234].
Reproducibility
All raw model outputs are saved and re-scorable. Costs come from the Overmind platform's billing ledger; frontier prices come from published rate cards.
Metric Fine-tuned 9B Base 9B GPT-5.6-luna GPT-5.6-terra

Amber and ★ mark the best model in each row. For false alarms, cost and latency, lower is better. Terra’s cost is an estimate using its published API input/output rates and this run’s measured tokens.

Current run

Seed 43 — complete four-model comparison

All figures on this dashboard come from the seed-43 run: 1,639 paired questions for FT, base, Luna, and Terra, with full-run coverage for FT and base.