3.1 KiB
NPC Reason — SFT result vs frozen baseline + PREREG (Dispatch 2, Stage 4)
NPC-Reason-SFT = R1-Distill-1.5B + LoRA (r64), distilled on 7,546 V4 chains that the FROZEN verifier confirmed verifiable AND correct. Evaluated on the frozen EVAL.lock (500 held-out GSM8K+MATH), same greedy decoding as the baseline (apples-to-apples), scored by the frozen verifier (VERIFIER.lock d5d146cf).
Result (format-prompt = the committed comparator)
| base (format) | NPC-Reason-SFT | delta | |
|---|---|---|---|
| verifiable-rate | 0.0% | 76.8% | +76.8pp |
| accuracy | 61.6% | 65.8% | +4.2pp |
| verified-and-correct | 0.0% | 58.0% | +58.0pp |
| mean assertions/chain | 0.0 | 3.44 | — |
Plain-prompt (native, no format instruction): verifiable 0.0%, accuracy 64.8%. The model emits
the <<EXPR=RESULT>> format under the format prompt it was trained on, not unprompted — expected,
and the format prompt is the committed comparator.
PREREG verdict (committed bars, frozen b5a49437 — graded honestly)
| Criterion | Bar | Result | Verdict |
|---|---|---|---|
| 1. Primary lift (verified-and-correct over format baseline) | ≥ +15pp | +58.0pp | SUPPORTED |
| 2. Verifiable-rate | ≥ 90% | 76.8% | NOT SUPPORTED |
| 3. Accuracy guard (no regression > 5pp) | ≥ −5pp | +4.2pp (improved) | SUPPORTED |
2 of 3 SUPPORTED. The all-three gate is not met (criterion 2 missed).
Honest read
- The central thesis is validated, strongly. Distilling only mechanically-verified teacher chains moved a model that produced zero checkable reasoning (0% verifiable, even when asked) to 76.8% verifiable / 58% verified-and-correct — a +58pp jump on the headline metric, far past the +15pp bar. The grounding transferred.
- Accuracy did not regress — it rose (+4.2pp). Verifiability was not bought by sacrificing correctness; the strict-basis corpus improved both. (Some of the rise is reduced greedy repetition vs the base; attributed, not overclaimed.)
- The one missed bar is verifiable-rate (76.8% vs 90%). ~23% of format-prompt chains still fail full verification — a step that doesn't verify, doesn't compose, or the model reverts to prose on harder MATH items. This is exactly the gap RL-with-verifier-reward is designed to close.
RL gate
The committed gate is: RL proceeds if SFT clears its bar OR produces a high verifiable-rate so RL has signal to sharpen. All-three bar: NOT cleared (verifiable 76.8 < 90). High-signal condition: MET — 76.8% verifiable / 58% verified-and-correct gives RL (verifier = reward, the same frozen code) dense signal to push toward ≥90%. So the RL phase is warranted, entered with eyes open that criterion 2 is the explicit target. A null at SFT would have been valid; this is not a null — it is a large, real lift that misses one of three bars.
Frozen: sft/SFT_RESULT.lock. Raw per-item outputs: eval/eval_raw.jsonl.