Research log Small Model Experimentation
GitHub

Qwen3.5-4B: Can the Model Localize Its Own Errors in Multi-Step Reasoning?

Its confidence dips exactly where it first slipped

The one idea you need

Picture reciting a memorized phone number: your voice naturally steadies as you get going, but wavers exactly on the digit you misremember. Correct for that natural steadying, and the leftover waver pinpoints the wrong digit. That waver is the model's confidence dip.

The question

When a small model makes a mistake partway through a multi-step calculation, can its own confidence tell you exactly which step first went wrong?

What we found

Yes, and the dip lands on the exact step, not just late in the chain. Confidence naturally climbs the deeper the model goes, so "least sure" could just mean "last step." Correcting for that, the least-confident step is the true first slip 56% of the time, versus 36% for guessing the usual trouble spot and 19% for blind chance. When it slips several times, though, only 27%.

Why it matters

Log how confidently your small model commits to each reasoning step. When an answer has one error, redo from its least-confident step: cheaper than restarting and just as effective. Don't trust the signal when several steps look shaky.

First wrong step pinpointed56%the least-confident step is the true first slip, on single-error chains (vs 19% for blind chance)
Beats guessing by position36% → 56%how often the first slip is found: position guess vs the model's confidence
When it slips several times27%confidence catches the FIRST error only about 1 in 4 times
Cheaper repair3.8 vs 5.6 stepsredo from the flagged step vs redo the whole chain
On this page
  1. Results at a glance
  2. Overview
  3. Report
    1. Motivation
    2. Method (review-hardened)
    3. Results (600 chains)
    4. Conclusion
    5. Honest caveats
    6. Artifact Manifest
  4. Experiment log
  5. Figures
  6. Reproduce
  7. Related

Results at a glance 2

Confidence bottoms out exactly at the first mistake

How to read

The horizontal axis is each step's distance from the first error: negative before it, zero the error itself, positive after. The vertical axis is confidence with the natural climb-with-position removed; lower means less sure.

-0.200.20.4-20246mean de-trended confidence (residual) vs step-offset from the first errormean de-trended c…

Takeaway → The line sits high two steps before the slip, plunges to its lowest point precisely at the first error, then recovers: the dip marks the origin, not just late steps.

Data table
step offset from first errormean de-trended confidence (residual) vs step-offset from the first error
-20.227
-10.063
0-0.146
1-0.049
2-0.084
3-0.005
4-0.024
5-0.031
60.017

Numbers from

Technical framing

The confidence dip marks the error origin: de-trended confidence is minimized exactly AT the first slip (offset 0) — Extends C40 (single-step metacognition) to MULTI-step: does per-step confidence show WHERE the model first slips? The model advances k steps in a cyclic order over depth-4-7 chains via scaffolded decoding (force 'Step i: <digit>', read the digit distribution at each step). Because confidence RISES with step position (a confound), we DE-TREND (subtract the per-position mean) and plot the residual against the offset from the model's first slip. The dip is EXACTLY at the origin: mean residual confidence is high just before the error (+0.23 at offset -2), plunges to its minimum AT the first error (-0.15 at offset 0), and recovers afterward. So the confidence dip marks the ORIGIN of the error, not merely late positions -- genuine, position-controlled localization. Per-step error prediction also survives de-trending (AUROC 0.75 vs 0.73 raw).

Confidence pinpoints the slip better than guessing by position

How to read

Each bar is one way to guess which step is the first slip on single-error chains; bar height is how often it's right, so taller is better. Confidence-based methods sit beside guessing-by-position, always-guess-last, and blind chance.

0%20%40%60%80%de-trended residualde-trended residual56%raw confidenceraw confidence64%position priorposition prior36%always lastalways last1%uniform 1/Duniform 1/D19%

Takeaway → The two confidence bars (56% and 64%) tower over guessing by position (36%) and chance (19%), while always-last is near zero: confidence carries real information about where the error is.

Data table
conditionlocalization accuracy = argmin-confidence step is the first slip (single-slip chains, n=137)
de-trended residual56%
raw confidence64%
position prior36%
always last1%
uniform 1/D19%

Numbers from

Technical framing

Localizing the slip (single-slip chains): de-trended confidence beats position baselines -- deployable targeted repair — On single-slip chains (exactly one error = one well-posed origin, n=137), does the lowest-confidence step pinpoint the slip? The position-controlled DE-TRENDED confidence localizes it at 0.56 (raw confidence 0.64), ~3x the uniform 1/depth baseline (0.19) and clearly beating a position-prior baseline (guess the highest-error position, 0.36) and always-guess-last-step (0.01). So confidence carries genuine WHERE-information beyond position. Deployable: redo the chain from the located step (oracle-downstream) fixes 56% of single-slip chains at avg 3.8 steps vs 5.6 for redo-all -- cheaper targeted repair. Caveat: on MULTI-slip chains (n=224) the argmin finds AN error 76% of the time but the FIRST only 27% (several low-confidence steps compete), so the clean single-origin/repair story holds when the model slips once.

In the author’s words from the Overview · “Results”

Per-step error prediction survives de-trending (AUROC 0.75 vs 0.73). The de-trended confidence dips EXACTLY at the first error (offset 0). Single-slip localization 0.56 (raw 0.64) >> position-prior 0.36 >> uniform 0.19. Targeted repair (redo from located step) fixes 0.56 at 3.8 steps vs redo-all 5.6. Caveat: multi-slip chains -- finds AN error 0.76 but the FIRST 0.27. See reports/report.md, analysis/error_localization.png.

Overview

Research Program

  • Program: benchmark_generalization
  • Question: extends C40 (single-step metacognition) to multi-step. Does per-step confidence pinpoint WHERE the model first slips?

Setup

  • Model advances k steps in a cyclic order over depth-4-7 chains via SCAFFOLDED decoding (force 'Step i: <digit>', read the digit distribution at each step = live per-step confidence). Ground truth = local correctness (m_i == successor of the model's OWN previous step). Familiar (natural) order -> genuine arithmetic slips ~31%/step. Make-or-break control: DE-TREND (confidence rises with position). Baselines: uniform, always-last, position-prior.

Run

python scripts/eval_localize.py --n-per-cond 150 then python scripts/analyze.py.

Results

Per-step error prediction survives de-trending (AUROC 0.75 vs 0.73). The de-trended confidence dips EXACTLY at the first error (offset 0). Single-slip localization 0.56 (raw 0.64) >> position-prior 0.36 >> uniform 0.19. Targeted repair (redo from located step) fixes 0.56 at 3.8 steps vs redo-all 5.6. Caveat: multi-slip chains -- finds AN error 0.76 but the FIRST 0.27. See reports/report.md, analysis/error_localization.png.

Interpretation

C40's implicit metacognition is STEP-RESOLVED: per-step confidence carries WHERE the model slipped. Deployable targeted repair; strongest when the model slips once.

Knowledgebase Update

  • Claim ledger: C42

Artifacts

  • scripts/chain_family.py, scripts/eval_localize.py (scaffolded decoding + per-step confidence), scripts/analyze.py
  • runs/localize.json, runs/verdict.json, analysis/error_localization.png, reports/{report,design_review}.md

Report

Rendered from reports/report.md

Motivation

C40 showed single-step implicit metacognition (answer-token probability predicts correctness). This asks whether that signal is step-resolved: on a multi-step chain, does per-step confidence drop at the step where the model first goes wrong — enabling deployable error localization and targeted repair?

Method (review-hardened)

The model advances k steps in a cyclic order over depth-4–7 chains, via scaffolded decoding: force the Step i: <digit> format and read the digit distribution at each step (genuine live per-step commitment confidence; no prose, no truncation, exact position alignment). Ground truth = local correctness (m_i == successor of the model's own previous output m_{i-1}), so a local error is a genuine slip and the first local error is the origin. Familiar (natural) order — the model applies +k but slips (~31%/step, genuine arithmetic errors). Novel/reversal orders were dropped: forced-scaffold makes the model apply a systematic wrong rule (no single origin — the review's failure case).

The make-or-break control — de-trending: confidence rises with step position (0.66→0.96), so a naive "lowest-confidence = error" could just track position. We subtract the per-position mean and require localization to survive on the residual, plus baselines: uniform 1/D, always-last-step, position-prior.

Results (600 chains)

  • Per-step error prediction survives de-trending: AUROC 0.75 (de-trended) vs 0.73 (raw) — not a position artifact.
  • The dip marks the origin: mean de-trended confidence by offset-from-first-error is minimized exactly at offset 0 (−0.15), high just before (+0.23 at −2), recovering after.
  • Localization (single-slip chains, n=137, well-posed):
methodlocalization accuracy
de-trended residual (position-controlled)0.56
raw confidence0.64
position-prior baseline0.36
always-last0.01
uniform 1/D0.19
  • Targeted repair (oracle-downstream, redo from located step): fixes 0.56 of single-slip chains at avg 3.8 steps vs 5.6 for redo-all — cheaper.

Conclusion

The model's per-step confidence is step-resolved: it carries where it slipped, not just that it did. C40's implicit metacognition composes over multi-step reasoning and enables deployable targeted repair.

Honest caveats

  • Multi-slip chains (n=224): the argmin finds an error 0.76 of the time but the first only 0.27 (several low-confidence steps compete) — localization is strongest when the model slips once (38% of error-chains).
  • Execute-mode arithmetic slips (familiar order); forced-scaffold competence is lower than free-form (the scaffold strips reasoning) — this is deliberate, to produce genuine per-step slips. Single seed.

Artifact Manifest

See reports/artifact_manifest.yaml.

Experiment log 1

Show the running log (1 entry)

Scaffold

Created as a new experiment scaffold.

Figures 1

error localization
error localization · analysis/

Reproduce

Smoke test

python scripts/eval_localize.py --n-per-cond 25

Full run

eval_localize.py --n-per-cond 150; analyze.py

Run steps are documented inside the experiment folder (README and scripts).

Browse the experiment folder on GitHub ↗