← TinyGPT · docs · devlog · roadmap · speedup
source: docs/v11-baselines-2026-06-09.md · view on GitHub ↗

v11 baselines — committed 2026-06-09

This document records the v9 baseline against each of the six v11 ship-gate dimensions (pace-planner-v11-ship-gate.md). Frozen at commit time. Not for revision — v11 progress measured against these exact numbers.

v9-LoRA (currently shipped planner) baselines

DimEvalv9 scoreThresholdGap
1fm-fixtures-v2 (16 prompts)33.3%≥60%-26.7pp
2bfcl-pace-12 subset (96 prompts)structural 0% (v9 grammar has no intent field; deferred runtime measurement)≥40%-40pp
3fm-fixtures-oos (30 prompts)0.0% (measured via --skip-model baseline 2026-06-09)≥80%-80pp
4fm-fixtures-ambig (20 prompts)0.0% (structural, runner verified)≥50%-50pp
5Schema validity (AST exact)~85% (v9 grammar is loose)≥95%-10pp
6fm-fixtures-destructive (10 prompts)0.0% (structural, runner verified)≥90%-90pp

Non-regression gates:

v9Threshold
fm-fixtures-compose70%≥65%
TTFW p95 warm~119ms≤140ms

Why three baselines are “structural 0%”

Dimensions 3, 4, and 6 require the model to emit a new intent class that does not exist in v9’s training data, grammar, or system prompt:

Probability v9 spontaneously emits a never-seen JSON shape that happens to match the new spec = ~0. We record these as 0.0% rather than running 60 model inferences to verify, because the output language is provably disjoint from the target.

This shortcut is valid for the baseline-recording purpose, but should be re-verified by an actual run if anyone ever ports the v9 grammar to include the new classes. As of today, no such port exists.

Failure-mode distribution (qualitative, not scored)

Quick assessment of what v9 does do when fed an out-of-scope or ambiguous prompt (informally observed during prior eval sessions, not scored against new suite):

These failure modes are exactly what the new training data + rules + grammar layer should fix.

Eval runner status

What this lets us do today

With these baselines committed, the v11 ship gate from pace-planner-v11-ship-gate.md is now fully specified:

The remaining work to ship-or-fail v11 is:

  1. BFCL-12 subset construction + v9 score against it (#311)
  2. Hand-curated training data for the 3 new intent classes (~450 rows)
  3. v11 training (DoRA on combined corpus)
  4. Score runner extension for new fixture formats
  5. Score v11, compare to this doc

No part of this is allowed to revise the numbers above.

2026-06-10 ADDENDUM — Dim1 baseline was measured under the wrong harness config

The frozen 33.3% Dim1 number stands as recorded, but its provenance is now understood and it must NOT be the comparison point for the v11 verdict:

Rule for the v11 verdict: v11 runs with its own prompt+grammar (as-shipped), so compare it to v9-as-shipped = 60.0%, not 33.3%. Dim1 threshold ≥60% therefore means: v11 ships on Dim1 only if it beats the corrected v9 baseline. Note v9-as-shipped (60%) already ties zero-shot Qwen3-14B on this suite.

Process fix: evals must always pin —sys-prompt + —schema + serve —grammar to the model’s shipped config; score artifacts now record the sys-prompt used.

2026-06-11 FINAL VERDICT — v11 FAILS the ship gate. Planner freezes on qwen3-30b-a3b.

One run, as committed (plain LoRA r32, 709 rows, after the DoRA infra failure voided the first attempt — see #326):

Dimv11ThresholdVerdict
1 happy-path (fm-fixtures-v2)~rules-level≥60%FAIL
2 BFCL pace-1227.1% (26/96)≥40%FAIL
3 out-of-scope0/30≥80%FAIL
4 ambiguous0/20≥50%FAIL
6 destructive-confirm5/10≥90%FAIL
nonreg compose/holdoutrules-level≥65%FAIL

Failure mode (verified in eval-dim3.json, not harness drift): the model emits clean v11 JSON but intent:"answer" with a helpful attempt on out-of-scope prompts — the exact over-eagerness the 176 OOS rows were meant to train away. Train loss 0.001 = full memorization of 709 rows with near-zero generalization of the refusal/clarify DISCIPLINE to held-out phrasings. The 0.6B memorizes behaviors; it does not learn rules. confirm_destructive (50%) generalized best — it has the most surface-regular trigger words.

Decision (per the one-run freeze): specialist planner track CLOSED. Pace ships qwen3-30b-a3b (already the wired default). The factory’s adaptation pipeline survives and moves to 4B+ bases per qlora-large-model-finetune.md — where the zero-shot baseline already clears most of these dimensions and fine-tuning starts from competence, not memorization.

2026-06-11 zero-shot candidate gate (post-v11, planner replacement)

Same gate, no training. Run artifacts: ~/.cache/tinygpt/runs/{fm-zeroshot-guided,qwen3-4b-zeroshot}/.

DimThresholdv11 0.6B trainedApple FM guidedQwen3-4B-2507 4bit
1 happy-path≥60%13%13.3%66.7% PASS
2 BFCL pace-12≥40%27.1%32.3%58.3% PASS (p50 641ms)
3 out-of-scope≥80%0%93.3% PASS66.7%
4 ambiguous≥50%0%5%10%
6 destructive≥90%50%60%90.0% PASS

Notes:

Planner decision: Qwen3-4B-Instruct-2507 is the fine-tune base (QLoRA phase Q3 target). Training closes dim3 (+13pp) and dim4 — starting from competence, not memorization. Apple FM is the zero-footprint refusal champion; keep as optional pre-filter/fallback on Apple Intelligence Macs. 30B stays the dev-machine reference, never the shipped default.

2026-06-11 held-out (h2) zero-shot baselines — the QLoRA before/after reference

Fresh 60-fixture suites (tinygpt evals/fm-fixtures-{oos,ambig,destructive}-h2, zero overlap with training corpus or old fixtures, commit 95dbe2b):

SuiteThresholdQwen3-4B-2507Apple FM (guided)
oos-h2≥80%80.0% PASS96.7%
ambig-h2≥50%0%5%
destructive-h2≥90%70%20%