inference-efficiency · 2026-10-15 · Tier 1

DoubtLess: a small model talks a big reasoner out of re-checking

DoubtLess: a small model talks a big reasoner out of re-checking

Date: 2026-10-15 · Source: HuggingFace Daily Papers (14 Oct) · Paper: arXiv 2610.18862 · Code Raw: raw/huggingface/2026-10-14-doubtless-training-free-contrastive-decoding-for-efficient-r.md

TL;DR

Reasoning models over-spend tokens, mostly by re-checking answers they already have. Existing fixes either need training per model, add a fixed steering vector, or use blunt heuristics (stop early, ban the word "wait") that cost accuracy. DoubtLess is training-free. A much smaller reasoning model reads the big model's chain of thought (CoT) so far twice: once prompted to be brief, once prompted to be verbose. The difference between those two logit vectors, times a strength, is added to the big model's logits at every CoT step. The small model supplies a "brevity direction" that adapts to the current context. On seven math, science and coding benchmarks it shortens Qwen3-32B's CoT by 31% at unchanged accuracy, beating five inference-time baselines; it cuts thinking tokens per turn by 20% in a self-debugging coding agent; it transfers to two other model families; and it stacks on top of models already trained for brevity. Most savings come after the correct answer first appears in the CoT.

The brevity signal is a difference of two small-model readings
Same prefix, two prompts; the gap between them steers the big model at every step.
flowchart LR
  C["CoT so far<br/><small>big model's prefix</small>"] --> B["Small LM, brief<br/><small>prompted to be short</small>"]
  C --> V["Small LM, verbose<br/><small>prompted to be long</small>"]
  B --> D["Logit difference<br/><small>times strength</small>"]
  V --> D
  C --> L["Big LM logits<br/><small>Qwen3-32B</small>"]
  L --> M["Steered next token<br/><small>less re-checking</small>"]
  D --> M
  M --> O["31% shorter CoT<br/><small>same accuracy</small>"]
  classDef input fill:#d0ebff,stroke:#1971c2,color:#1b1b1b,stroke-width:2px
  classDef core fill:#e5dbff,stroke:#6741d9,color:#1b1b1b,stroke-width:2px
  classDef loop fill:#fff3bf,stroke:#f08c00,color:#1b1b1b,stroke-width:2px
  classDef exit fill:#d3f9d8,stroke:#2f9e44,color:#1b1b1b,stroke-width:2px
  class C input
  class B,V,D loop
  class L core
  class M,O exit
Blue is the shared prefix, amber is the small model's steering signal, purple is the big model, green is the output.

Key points

  • Contrastive decoding, repurposed. Classic contrastive decoding subtracts a weak model's logits to boost what the strong model knows that the weak one does not. DoubtLess contrasts the same small model under two prompts, isolating a style direction (brief minus verbose) rather than a knowledge direction.
  • Cost. Two extra small-model forward passes per CoT token. With a small model several times smaller than the target, the 31% shorter CoT is a net saving; the paper does not report wall-clock net of the overhead in the abstract.
  • Where the tokens go. Savings concentrate after the answer first appears, i.e. the method mostly cuts verification loops. That matches the 10-14 "Thinking Inertia" finding that models keep thinking when told not to.

Relation to prior wiki pages

  • Same mechanism family as LoopCD (10-03), which contrasts a looped model's own loop depths. Two contrastive-decoding steering papers in two weeks; both are training-free.
  • Complements the 10-06 shorter-CoT faithfulness result: length pressure lowered faithfulness mostly through inconsistency, but monitorability survived. DoubtLess cuts length at decode time, not by training, so it is a cleaner test of whether shorter traces stay monitorable.
  • Contrasts with HyperThink (10-14), which replaces the trace with a query-specific weight update. HyperThink removes the trace; DoubtLess trims it.

Research angle

  • Does the brevity direction also shorten traces that matter for safety monitoring? The method suppresses re-checking, which is exactly where a model might reveal doubt.
  • The steering model could be a decision model reading "is the answer already in the CoT?" A stop signal is cheaper than per-token steering.

Concept page: Test-time compute allocation