cd .. / course
Part 3 · Lesson 6/8

Reasoning: buying accuracy with tokens

A reasoning model isn't a new brain — it's the same next-token predictor spending more tokens as a scratchpad before it answers. Each extra token is another cheap forward pass, and accuracy climbs with the thinking budget — then plateaus. Drag the token slider and watch the operating point ride the curve.

⏱ ~6 min 🎚 accuracy curve, computed live math: some

Part 1's myth-buster said the math for one token is trivial — the model isn't "thinking hard" on any single step. Reasoning models turn that into a strategy: emit more tokens as a visible scratchpad before the final answer, and each cheap step conditions the next.

This is test-time compute — instead of a bigger model, spend a longer generation. Accuracy rises with thinking length, then plateaus: the first hundred tokens buy a lot, the next hundred buy little.

It isn't free. Every thinking token is one decode step (Part 2 · Lesson 1) — you trade latency for correctness. And it pays off most on hard problems; easy ones were already right, so there's little to gain.

How much accuracy does a longer think buy? · computed live
Problem difficulty
t = 120 tokens
0150300450600
Accuracy now
64.8%
at t = 120 tokens
+pts from last 60 tokens
+13.1
marginal gain → 0
Thinking cost
120
decode steps · ≈ 0.79 s
accuracy(t) = floor + (cap − floor)·(1 − e−t/τ)  =  0.648
cost = t decode steps = 120 forward passes  ·  each step re-reads all 13.2 GB of weights → 6.61 ms/token

TRY → Drag the thinking-tokens slider right: the green dot climbs fast at first, then the curve flattens — the +pts from the last 60 card shrinks toward zero (that's diminishing returns). Now flip the difficulty to hard: the whole curve is redrawn low and rising, and reasoning earns its keep. Flip to easy: it starts high and barely moves. Every number is recomputed by reasonAcc(t, preset), not read from a table.

Show me the actual numbers (the curve and its diminishing returns)

The curve is a saturating exponential — acc(t) = floor + (cap − floor)·(1 − e^(−t/τ)). For a typical problem {floor 0.30, cap 0.85, τ 120}:

thinking taccuracy+pts (last 60)
030.0%—
6051.6%+21.6
12064.8%+13.1
18072.7%+7.9
24077.6%+4.9
48084.0%+1.0
54084.4%+0.4
60084.6%+0.2

The marginal gain per 60 tokens collapses from +21.6 (first 60) → +7.9 (at 180) → +0.4 (at 540): clear diminishing returns, and the curve caps just under 85%. Each of those 600 tokens is one decode step (Part 2 · Lesson 1) — at 13.2 GB of weights ÷ 2 TB/s that's ≈ 6.6 ms/token, so 600 tokens of thinking ≈ 4 s of latency for the last few points.

Difficulty is the whole story. Hard {0.15, 0.80, 200} climbs from 15% up past 76% across the full 600-token budget — reasoning transforms it. Easy {0.70, 0.95, 60} already starts at 70% and is basically done (≈ 86%) by 60 tokens — there was little to buy. Reasoning helps hard ≫ easy.

This is a toy. It's a smooth stand-in for the real, noisier empirical curves — but the shape (fast then flat, hard ≫ easy) and the mechanism (each extra token is another cheap forward pass that conditions the next) are real. Some tasks even dip if the model overthinks; the plateau is where you stop.

MythA reasoning model is a smarter architecture that "thinks before it speaks."
RealityIt's the same next-token predictor spending more tokens as a visible scratchpad. Accuracy scales with generation length, up to a plateau — you're buying compute at test time, not a new brain, and every thinking token is one decode step you pay for in latency.
Takeaway

Reasoning trades generation length for accuracy: more thinking-tokens = more test-time compute, with steeply diminishing returns and the biggest wins on hard problems. There's a plateau — spending past it just costs latency.

Why does letting a model "think" longer raise accuracy?
Why: reasoning spends generation length (decode steps) as compute — the frozen weights never change. Accuracy climbs with thinking tokens and then plateaus, most on hard problems.