When Should LLMs Trust Their Own Revisions? A Risk-Aware Study of Intrinsic Self-Correction
Organizations: Nokia Bell Labs, Massy, France
Abstract
Intrinsic self-correction asks a language model to revise its own answer without receiving new external evidence. A second pass can recover mistakes, but it can also overturn answers that were already correct. We study this trade-off across 29 open-weight LLMs on BoolQ, GSM8K, and Corr2Cause by tracking correctness transitions between initial and revised answers. Aggregate accuracy can conceal substantially different revision behavior: for example, Llama-3.1-8B improves by 25.5 percentage points on GSM8K, while refinement changes 19.1% of initially correct answers into wrong ones. A controlled BoolQ study further shows that refinement prompts shift the balance between recovery and harm. We then compare three runtime choices: keeping the initial answer, always accepting the revision, and selectively invoking revision using signals available after the initial response. The comparison identifies settings where learned gating is useful and others where a simpler unconditional policy performs better. These results suggest treating intrinsic self-correction as a revision policy rather than as a uniformly beneficial second pass, and evaluating it through both the corrections it recovers and the errors it introduces.
Figures & tables
| GSM8K check | OLMo-3-7B | Phi-4-plus |
|---|---|---|
| Matched items | 1,319 | 1,319 |
| Invalid initial / revised | 18 / 13 | 2 / 4 |
| Both answers parseable | 1,301 | 1,314 |
| Correct initial / revised | 533 / 533 | 1,220 / 1,216 |
| Helpful / harmful flips | 0 / 0 | 27 / 31 |
| Transition counts | Rates / delta (%) | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Model | Task | Net | Harm | Rec. | Takeaway | ||||
| Olmo-3.1-32B-Instruct | BoolQ | 2767 | 40 | 96 | 367 | +1.7 | 1.4 | 20.7 | low-harm gain |
| Llama-3.1-70B-Instruct | BoolQ | 2762 | 159 | 122 | 227 | -1.1 | 5.4 | 35.0 | net harmful |
| Llama-3.1-8B-Instruct | GSM8K | 186 | 44 | 381 | 708 | +25.5 | 19.1 | 35.0 | high-gain/high-harm |
| DeepSeek-R1-Distill-Qwen-14B | GSM8K | 1005 | 44 | 130 | 140 | +6.5 | 4.2 | 48.1 | gain/lower-harm |
| DeepSeek-R1-Distill-Qwen-7B | Corr2Cause | 1446 | 50 | 301 | 449 | +11.2 | 3.3 | 40.1 | broad recovery |
| Dataset | Model | Initial | Revised | Gate | Selected | Policy |
| Gate exceeds both unconditional baselines | ||||||
| GSM8K | Llama-3.1-8B | 17.44 | 42.99 | 43.59 | 43.59 | gate |
| Corr2Cause | Qwen2-57B-A14B | 71.24 | 79.52 | 79.70 | 79.70 | gate |
| BoolQ | Qwen2.5-7B | 80.83 | 72.32 | 86.02 | 86.02 | gate |
| BoolQ | gpt-oss-20b | 82.45 | 84.13 | 85.08 | 85.08 | gate |
| Recorded selector chooses an unconditional policy | ||||||
| Dataset | Settings | S1 S0 | Selected S0 | Percentage | S0/S1/gate | Median saved |
|---|---|---|---|---|---|---|
| BoolQ | 28 | 20 | 25 | 89.3 | 1/3/24 | 56.5 |
| GSM8K | 28 | 10 | 25 | 89.3 | 6/11/11 | 30.0 |
| Corr2Cause | 26 | 9 | 22 | 84.6 | 3/8/15 | 2.0 |
Appendix figures & tables12 assets
Supplementary material from the paper’s appendix.
Appendix
| Dataset | Evaluation | Size | Development |
|---|---|---|---|
| BoolQ | validation | 3,270 | train: 9,427 |
| GSM8K | test | 1,319 | train: 7,473 |
| Corr2Cause | test | 2,246 | dev: 2,246 |
| Model | Acc0 | Applied acc. | Candidate acc. | KEEP count | CHANGE count | Failed-change count |
|---|---|---|---|---|---|---|
| Llama-3.1-8B-Instruct | 17.5 | 43.0 | 44.8 | 568 | 731 | 20 |
| Qwen2.5-32B-Instruct | 37.9 | 37.1 | 0.0 | 586 | 69 | 664 |
| Olmo-3.1-32B-Instruct | 47.5 | 48.6 | 26.8 | 1225 | 26 | 68 |
| Feature group | Examples | Role in the learned gate |
|---|---|---|
| Parser and final-answer format | parse OK, final present, final count, final-line length | Captures whether the initial answer satisfies the task contract and whether refinement may mainly repair formatting or extraction risk. |
| Prompt and generation metadata | prompt length, prompt truncation, generation length, post-final truncation | Records length and truncation conditions visible after Stage 0 that may signal unreliable or incomplete initial outputs. |
| Generation log-probability summaries | mean/min/last log-probability, log-probability standard deviation | Measures confidence and instability in the emitted Stage 0 text when token log-probabilities are available. |
| Binary-answer confidence features | yes/no confidence, entropy, logit margin, probability gap | Used for BoolQ and Corr2Cause to estimate whether the initial yes/no answer is uncertain enough to justify refinement. |
| Integer-answer candidate features | integer confidence, entropy, logit margin, number of candidates | Used for GSM8K when candidate scores are available to capture uncertainty over numeric final answers. |
| Parsed-answer consistency features | parsed/scored answer match, signed margin, parsed integer is best | Checks whether the parsed answer agrees with the model’s scored candidate preference under the same Stage 0 prompt. |
| Dataset | Model | Gated accuracy | Accepted | Accepted |
|---|---|---|---|---|
| BoolQ | Qwen2.5-7B | 86.0 | 276 | 106 |
| BoolQ | gpt-oss-20b | 85.1 | 121 | 35 |
| BoolQ | Olmo-3.1-32B | 87.8 | 81 | 17 |
| BoolQ | Phi-4-mini-reasoning | 83.6 | 80 | 38 |
| BoolQ | Phi-4-reasoning-plus | 88.2 | 8 | 2 |
| BoolQ | Qwen2.5-72B | 89.0 | 5 | 3 |
| Dataset | Feature group | Runs | S0 | both | Gain | Saved |
|---|---|---|---|---|---|---|
| BoolQ | conf/logprob | 17 | 12 | 10 | +0.4 | 69.2 |
| BoolQ | parser/format | 23 | 19 | 15 | +0.4 | 54.8 |
| BoolQ | trace/protocol | 13 | 9 | 4 | +0.1 | 76.4 |
| BoolQ | full gate | 25 | 21 | 19 | +0.5 | 57.2 |
| GSM8K | conf/logprob | 14 | 9 | 4 | +0.1 | 50.5 |
| GSM8K | parser/format | 18 | 14 | 2 | +0.6 | 0.1 |
| Model | Task | Net benefit 95% CI | Harm rate 95% CI |
|---|---|---|---|
| Olmo-3.1-32B-Instruct | BoolQ | [+1.0, +2.4] | [1.0, 1.9] |
| Llama-3.1-70B-Instruct | BoolQ | [-2.1, -0.1] | [4.6, 6.3] |
| Llama-3.1-8B-Instruct | GSM8K | [+22.9, +28.4] | [14.2, 24.3] |
| DeepSeek-R1-Distill-Qwen-14B | GSM8K | [+4.6, +8.4] | [3.0, 5.5] |
| DeepSeek-R1-Distill-Qwen-7B | Corr2Cause | [+9.6, +12.7] | [2.5, 4.3] |
| Phi-4-reasoning-plus | Corr2Cause | [+5.9, +8.7] | [2.5, 4.4] |
| Model | Initial | Revised | Gate | Selected policy | Selected accuracy | Saved tokens (%) | |
|---|---|---|---|---|---|---|---|
| DS-R1-Llama-70B | — | 87.65 | 87.50 | 87.20 | gate | 87.20 | 20 |
| DS-R1-Llama-8B | — | 85.37 | 83.62 | 83.62 | S1 | 83.62 | 0 |
| DS-R1-Qwen-14B | — | 87.16 | 87.09 | 88.13 | gate | 88.13 | 56 |
| DS-R1-Qwen-32B | — | 88.90 | 88.07 | 89.33 | gate | 89.33 | 57 |
| DS-R1-Qwen-7B | — | 77.77 | 74.80 | 78.81 | gate | 78.81 | 52 |
| Devstral-2-123B-2512 | — | 91.41 | 30.49 | — | S0 | 91.41 | 100 |
| Model | Initial | Revised | Gate | Selected policy | Selected accuracy | Saved tokens (%) | |
|---|---|---|---|---|---|---|---|
| DS-R1-Llama-70B | — | 89.20 | 90.80 | 90.80 | S1 | 90.80 | 0 |
| DS-R1-Llama-8B | — | 54.59 | 59.29 | 59.36 | S1 | 59.29 | 0 |
| DS-R1-Qwen-14B | — | 79.53 | 86.05 | 85.90 | S1 | 86.05 | 0 |
| DS-R1-Qwen-32B | — | 87.19 | 90.30 | 89.84 | S1 | 90.30 | 0 |
| DS-R1-Qwen-7B | — | 72.25 | 77.79 | 77.56 | S1 | 77.79 | 0 |
| Devstral-2-123B-2512 | — | 39.20 | 39.20 | 39.20 | gate | 39.20 | 88 |
| Model | Initial | Revised | Gate | Selected policy | Selected accuracy | Saved tokens (%) | |
|---|---|---|---|---|---|---|---|
| DS-R1-Llama-8B | — | 82.63 | 83.25 | 83.56 | gate | 83.56 | 98 |
| DS-R1-Qwen-14B | — | 80.54 | 81.70 | 81.66 | S1 | 81.70 | 0 |
| DS-R1-Qwen-32B | — | 80.94 | 81.12 | 81.12 | S1 | 81.12 | 0 |
| DS-R1-Qwen-7B | — | 66.61 | 77.78 | 71.28 | S1 | 77.78 | 0 |
| Devstral-2-123B-2512 | — | 78.05 | 40.03 | 80.19 | gate | 80.19 | 74 |
| Llama-3.1-70B | — | 84.64 | 82.72 | 84.64 | gate | 84.64 | 100 |
LLM Self-Correction
Large language model self-correction studies how language models detect and repair errors in their own answers, reasoning, and actions.
See all 159 papers