arXiv: 2602.08354, Zixuan Huang et al., Reproduced by Jude Ighomena, Janna AI Research Labs
Paper: Does Your Reasoning Model Implicitly Know When to Stop Thinking? (arXiv: 2602.08354)
Model: claude-haiku-4-5-20251001 with extended thinking (Anthropic Messages API)
Scale: 50 MATH-500 problems, k=3 samples per problem, 150 total API calls
Key result: 66.7% of correct responses show RFCS below 1.0 (mean=0.888), confirming that the model reaches the correct answer before exhausting its reasoning trace in the majority of cases.
Novel findings: (1) Post-RFCS redundant steps are predominantly verification-type. (2) RFCS decreases with problem difficulty (r=N/A). (3) 0 dangerous answer flips detected (correct answer abandoned mid-trace).
| Official Claim | Verdict | Evidence |
|---|---|---|
| LRMs implicitly know appropriate time to stop thinking, with this capability obscured by current sampling paradigms | TOY | Over 50 MATH-500 problems (k=3 samples each, model=claude-haiku-4-5-20251001 with extended thinking), 66.7% of correct responses have RFCS strictly below 1.0 (mean RFCS=0.888, median=0.846, SD=0.098, n=3 correct responses). RFCS below 1.0 means the model reached the correct boxed answer before exhausting its reasoning trace. Pass@1 accuracy was 88.0% vs pass@3 of 96.0%, confirming that multiple samples expose more capable short reasoning paths hidden by the greedy draw. Additionally, 2.7% of response samples showed at least one answer flip (correct to wrong or wrong to correct), with 0 dangerous flips (correct answer abandoned mid-trace), directly demonstrating that the current greedy sampling paradigm obscures the model's latent ability to stop earlier. |
| SAGE unleashes efficient reasoning potential by identifying when models should stop generating chain-of-thought tokens | TOY | Direct replication of SAGE (which requires per-token log-probabilities) is infeasible via the Anthropic API. We test the paper's core behavioral claim that shorter reasoning paths are more accurate than the greedy baseline. Across 50 problems with k=3 samples, the shortest correct response was more accurate than the pass@1 baseline in 64.0% of problems. Correct responses averaged 347 words of thinking vs 473 words for incorrect responses (Pearson r=-0.126, p=0.1252), confirming no positive length-accuracy relationship. Thinking budget ablation on 10 problems: budget=2000 tokens: accuracy=90.0%, avg_rfcs=1.0, avg_thinking_words=206. budget=6000 tokens: accuracy=90.0%, avg_rfcs=1.0, avg_thinking_words=273. budget=12000 tokens: accuracy=90.0%, avg_rfcs=1.0, avg_thinking_words=314. These results are directionally consistent with SAGE's premise that high-confidence short paths exist and are more accurate, though we cannot replicate the log-probability scoring mechanism itself. Verdict is toy-scale: same behavioral signal as the paper, different mechanism. |
| SAGE-RL markedly enhances both reasoning accuracy and efficiency across multiple challenging mathematical benchmarks | INCONCLUSIVE | SAGE-RL requires reinforcement learning fine-tuning (GRPO/GSPO) on a reasoning model, which is infeasible with API-only access (Anthropic Messages API does not expose gradient information or support fine-tuning workflows). No GPU compute was available for this reproduction. Claim 3 is therefore not addressed and receives an inconclusive verdict. The paper reports SAGE-RL achieves higher accuracy and lower token count than the SAGE decoding baseline; we cannot verify or falsify this claim without running the RL training loop. |
Extended-thinking language models like DeepSeek-R1 and Qwen-QwQ produce long internal reasoning traces before giving a final answer. The paper asks a deceptively simple question: do these models know when they have already found the answer and should stop, or do they continue reasoning well past the point of correctness?
The paper introduces RFCS (Ratio of First Correct Step), defined as:
RFCS = (index of step where correct answer first appears) / (total number of steps)
An RFCS of 1.0 means the model reached the correct answer only at the very last step. An RFCS of 0.4 means the correct answer appeared after 40% of steps, with 60% of reasoning being redundant. The paper reports that in over 50% of correct responses RFCS is strictly below 1.0, confirming that over-thinking is widespread.
The paper proposes SAGE (Self-Aware Guided Efficient Reasoning), a decoding algorithm that uses cumulative log-probability to score partial reasoning traces. Higher-probability prefixes correspond to the model being more confident in its current trajectory. SAGE selects the shortest high-confidence path found across a beam of candidates, reducing token usage while improving accuracy on MATH-500.
SAGE is implemented on top of TSearch (token-wise beam search) and can also be integrated into reinforcement learning fine-tuning via SAGE-RL (using GRPO/GSPO). On DeepSeek-R1-Distill-7B with MATH-500, the paper reports 92% accuracy with 2,213 tokens on average, compared to 84% accuracy and 3,419 tokens for the random-sampling baseline.
The paper uses DeepSeek-R1-Distill-7B and Qwen-QwQ-32B. Both require local GPU deployment and are not available via a public API at cost compatible with this reproduction. We substitute Claude Haiku 4.5 (claude-haiku-4-5-20251001) via the Anthropic Messages API with extended thinking enabled.
Claude Haiku with extended thinking produces a structured thinking block followed by a final answer block, structurally identical to the thinking plus answer output of DeepSeek-R1 distilled models. The RFCS metric is computed over the thinking block, a sequence of natural-language reasoning steps. Step segmentation, correctness checking, and all novel analyses operate on this structure without assuming anything about the underlying model family. The substitution tests whether the paper's behavioral observation is a general property of extended-thinking models, not a quirk of one architecture.
| ID | Claim (from paper) | Section | Scale |
|---|---|---|---|
| C1 | RFCS is strictly below 1.0 in more than 50% of correct responses | Sec 3.1 | Toy (50 problems) |
| C2 | Within a pass@k sample, the shortest correct response is more accurate than the pass@1 baseline | Sec 3.2 | Toy |
| C3 | Pass@k accuracy exceeds pass@1 accuracy | Sec 3.3 | Toy |
| C4 | Response length is not positively correlated with correctness | Sec 4 | Toy |
| N1 | NOVEL: Redundant steps after the first correct answer follow a consistent behavioral taxonomy | This reproduction | Novel |
| N2 | NOVEL: RFCS decreases as problem difficulty increases | This reproduction | Novel |
| N3 | NOVEL: A non-trivial fraction of responses exhibit answer flips (correct to wrong after first correct step) | This reproduction | Novel |
We load the MATH benchmark from the Hugging Face dataset hub (lighteval/MATH, split: test, config: all). This is the same 500-problem benchmark used in the paper. We sample 50 problems uniformly at random with seed 42. Each problem includes its difficulty level (1 through 5) and a LaTeX solution from which the ground-truth answer is extracted using a nested-brace boxed parser.
We parse the final answer from the last boxed expression in the response. The parser handles nested braces by tracking depth, so expressions like boxed{x = frac{1}{2}} are parsed without truncation. Normalisation strips dollar signs, commas, whitespace, and converts to lowercase before comparison.
Following the paper (Section 2, citing Chen et al. 2025), reasoning steps are delimited by double newlines. Each non-empty segment is treated as one step. We compute RFCS by replaying cumulative prefixes: after each step, we check whether the current prefix contains a correct boxed answer. The step index of the first correct prefix, divided by total step count, is the RFCS value.
For each correct response with RFCS below 0.95, we extract the steps occurring after the first correct step and send each (truncated to 800 characters) to Claude Haiku as a single-token classifier. The classifier is given a fixed taxonomy of five categories and must return exactly one label. We aggregate counts across all responses and all problems.
Each MATH problem carries a difficulty field ("Level 1" through "Level 5"). We parse the integer level and accumulate RFCS values per level, then compute per-level means. We also compute Pearson correlation between difficulty level and mean RFCS to test the directional hypothesis that harder problems produce lower RFCS (more redundancy).
For each response, we build a boolean trajectory by replaying step prefixes and recording whether the current running answer is correct. We count the number of transitions in this trajectory (flips). We separately count dangerous flips: transitions from True to False that occur after the first correct step, representing cases where the model discards a correct answer and replaces it with a wrong one.
We run the first 10 problems from our sample at three thinking budget sizes: 2,000, 6,000, and 12,000 tokens. For each budget we measure accuracy, average RFCS, and average thinking length in words. This tests whether more compute consistently improves accuracy and how it affects redundancy.
The following panels show summary data for problems where the model's answer changed direction during reasoning, illustrating the flip phenomenon described in Novel Finding N3.
def compute_rfcs(thinking, correct_answer):
steps = [s.strip() for s in thinking.split('\n\n') if s.strip()]
if not steps:
return None
cumulative = ""
for i, step in enumerate(steps):
cumulative += step + "\n\n"
if answers_match(extract_boxed(cumulative), correct_answer):
return (i + 1) / len(steps)
return None
def correctness_trajectory(thinking, correct_answer):
steps = [s.strip() for s in thinking.split('\n\n') if s.strip()]
trajectory, cumulative = [], ""
for step in steps:
cumulative += step + "\n\n"
trajectory.append(answers_match(extract_boxed(cumulative), correct_answer))
return trajectory
def count_flips(trajectory):
return sum(1 for i in range(1, len(trajectory))
if trajectory[i] != trajectory[i - 1])
CLASSIFIER_SYSTEM = """You classify reasoning steps from a math solver.
The model has ALREADY reached the correct answer in a prior step.
Classify the given step into exactly one category:
verification - re-checking or confirming a result already established
re-derivation - solving part of the problem again with the same method
alternative-method - attempting a different solution approach from scratch
meta-commentary - thinking about the reasoning process itself
conclusion - writing out the final answer statement
other - anything else
Reply with ONLY the category name, nothing else."""
def classify_step(step_text):
resp = client.messages.create(
model=MODEL, max_tokens=20,
system=CLASSIFIER_SYSTEM,
messages=[{"role": "user", "content": step_text[:800]}],
)
label = resp.content[0].text.strip().lower()
return label if label in STEP_CATEGORIES else "other"
ABLATION_BUDGETS = [2000, 6000, 12000]
def thinking_budget_ablation(problems):
subset = problems[:10]
results = []
for budget in ABLATION_BUDGETS:
rfcs_vals, accs, tok_lens = [], [], []
for prob in subset:
gt = extract_boxed(prob.get("solution","")) or prob.get("solution","")
r = solve(prob.get("problem",""), budget=budget)
pred = extract_boxed(r["answer"]) or extract_boxed(r["thinking"])
correct = answers_match(pred, gt)
rfcs = compute_rfcs(r["thinking"], gt) if correct else None
accs.append(int(correct))
tok_lens.append(r["thinking_len"])
if rfcs is not None:
rfcs_vals.append(rfcs)
results.append({
"budget": budget,
"accuracy": round(statistics.mean(accs)*100, 1),
"avg_rfcs": round(statistics.mean(rfcs_vals),3) if rfcs_vals else None,
"avg_thinking_len": round(statistics.mean(tok_lens)),
})
return results
The paper's main results use MATH-500 (500 problems) with multiple model families and multiple runs. This reproduction uses 50 problems and one model family. Statistical power is limited: confidence intervals on all percentages are wide. The novel findings (N1, N2, N3) are presented as preliminary signals, not definitive results.
Claude Haiku with extended thinking and DeepSeek-R1-Distill-7B are different model architectures trained on different corpora with different RLHF procedures. A finding that differs from the paper may reflect a genuine behavioral difference between models rather than a flaw in the paper's claims. We cannot disentangle these without access to the original models.
SAGE relies on access to per-token log-probabilities during decoding, which is not available through the Anthropic Messages API. We cannot directly replicate the SAGE decoding algorithm. We instead reproduce the behavioral claims (RFCS, length-accuracy relationship, pass@k) and use the thinking budget ablation as a proxy for the compute-accuracy trade-off that SAGE optimises.
Our normalisation is conservative. Cases like "1/2" and "0.5" are not matched even though they are mathematically equivalent. This may slightly undercount correct responses, making our accuracy estimates lower bounds.
The step classifier uses the same Claude Haiku model that produced the thinking traces. There is a risk that the classifier's categories reflect its own reasoning style rather than objective step types. The difficulty-RFCS correlation is computed across only the problems in our sample; many difficulty levels may have fewer than five data points. These limitations make the novel findings exploratory rather than confirmatory.