Research log Small Model Experimentation
GitHub

Qwen3.5-4B: Beating Sample-More with the Model's Own Uncertainty

Trust the surest answer, not the most common

The one idea you need

Ask a small model the same puzzle twelve times; each answer comes stamped with the model's own certainty. Majority vote trusts whichever answer repeats most, but the model often confidently repeats one wrong rule. Its single surest answer instead catches the rare try that truly cracked it.

The question

When a small model answers the same problem twelve times, is picking the most popular answer really the best way to combine those tries?

What we found

No. Picking the most common answer wastes the extra tries: accuracy stays flat near 48% however many you draw, because the model keeps confidently repeating the same wrong rule. Picking the answer it was surest of instead climbs from 47% to 62%, beating the popular vote at every budget and approaching the 83% a perfect picker would reach.

Why it matters

When you sample a small model many times, rank the candidates by how sure the model is of each answer, not by how often each appears. It costs one cheap extra read, needs no separate checker, and also tells you when to stop.

Most-common answer as you sample moreflat near 48%majority vote never improves with extra tries
Most-confident answer as you sample more47% → 62%picking the try the model was surest of
A perfect picker's ceiling83%if you always knew which try was right
Accuracy on the confident thirdabout 100%after skipping the low-confidence problems
On this page
  1. Results at a glance
  2. Overview
  3. Report
    1. Motivation
    2. Method
    3. Results (n=80/condition, k=12)
    4. Conclusion
    5. Honest scope
    6. Artifact Manifest
  4. Experiment log
  5. Figures
  6. Reproduce
  7. Related

Results at a glance 2

Extra tries only help if you pick by confidence, not by vote

How to read

Horizontal axis: tries drawn per problem (1 to 12). Vertical axis: accuracy, higher is better. The flat lower line picks the most common answer, the rising line picks the most-confident answer, and the top reference line marks a perfect picker.

20%40%60%80%100%510oracle / pass@12 (upper bound)oracle / pass@12 …confidence-select (argmax P(answer), verification-free)confidence-select…self-consistency (majority vote)self-consistency …

Takeaway → The vote line stays flat near 48% while the confidence line climbs to 62%, closing most of the gap to the perfect picker: confidence beats popularity at every budget.

Data table
samples per problem (budget)self-consistency (majority vote)confidence-select (argmax P(answer), verification-free)oracle / pass@12 (upper bound)
146.7%47.1%82.9%
246.3%46.7%
345.4%51.7%
442.9%57.9%
547.9%51.7%
646.7%58.3%
747.1%58.8%
847.9%60.8%
946.7%58.8%
1043.8%60%
1147.9%62.1%
1246.7%61.3%82.9%

Numbers from

Technical framing

Sample-more only helps if you SELECT by confidence, not majority: self-consistency is flat, confidence-select rises (verification-free) — Mission = beat sample-more. C40 unearthed a calibrated implicit confidence signal (answer-token probability P(answer)). Here: sample k=12 per problem on a mix of the C40 successor task, and compare ways to pick the answer at matched budget. Self-consistency (majority vote -- the standard verifier-free method) is FLAT at ~0.48 across ALL budgets: sample-more is WASTED, because on hard problems the model's MODE is confidently wrong (it repeats a wrong rule). Confidence-select (pick the sample with the highest P(answer), verification-FREE -- no execution, no verifier) RISES from 0.47 to 0.62 and beats majority at every budget, closing most of the gap to the oracle/pass@12 upper bound (0.83). It works because P(answer) is calibrated (C40): when the model derives the right rule it is confident, so the most-CONFIDENT sample beats the most-COMMON one. Turning naive sample-more into a rising accuracy-vs-compute curve.

Where more tries help, and where they are wasted

How to read

Three problem types along the bottom; accuracy up the side, higher is better. Each type has two bars: a single best guess versus whether any of twelve tries was correct. Easy problems are solved either way; the two harder types differ sharply.

0%25%50%75%100%executeexecute100%100%familiar_induce (coverage-limited)familiar_induce (coverage-limited)21%90%novel_induce (capability-limited)novel_induce (capability-limited)7%59%

Takeaway → On coverage-limited problems twelve tries jump from 21% to 90%; on capability-limited ones they stall at 59%, below the 72% blind guessing would give, so more sampling is futile there.

Data table
conditiongreedy (1 sample)pass@12 (sample-more ceiling)
execute100%100%
familiar_induce (coverage-limited)21%90%
novel_induce (capability-limited)7%59%

Numbers from

Technical framing

Two failure modes of sample-more, and abstention: max P(answer) predicts which problems are solvable (AUROC 0.83) — Sample-more has TWO failure modes. Coverage-limited (familiar_induce): greedy gets it right only 21% but pass@12 reaches 90% -- more samples help enormously. Capability-limited (novel_induce): greedy 7%, pass@12 only 59% (BELOW the pure-luck ceiling of 72% at chance 0.10 -- the model concentrates its samples on WRONG rules, so sampling is largely futile). The model's confidence distinguishes them: the max per-sample P(answer) predicts per-problem solvability at AUROC 0.83, so abstaining on low-confidence problems yields ~100% accuracy on the confident top third -- a working abstain/escalate signal for exactly the capability-limited problems where sampling does not pay. (Confidence-guided budget ALLOCATION was roughly tied with uniform confidence-select; the win is in SELECTION and ABSTENTION, not allocation.)

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

Self-consistency (majority vote) is FLAT (~0.48); confidence-select (argmax P(answer), verification-free) RISES 0.47->0.62, beating majority at every budget (oracle 0.83). Max P(answer) predicts solvability (AUROC 0.83) -> abstain on low-confidence -> ~1.0 on the confident third. Allocation ~tied with uniform confidence-select. See reports/report.md, analysis/confidence_guided_compute.png.

Overview

Research Program

  • Program: benchmark_generalization
  • Question: turn C40's calibrated implicit confidence (answer-token probability) into a compute tool -- can it beat uniform sample-more?

Setup

  • A mix of C40 successor problems spanning easy (execute), coverage-limited (familiar_induce), capability-limited (novel_induce). Sample k=12/problem; read each sample's P(answer) (one forward pass). Compare selection/allocation/abstention policies at matched budget.

Run

python scripts/eval_sampling.py --n 80 --k 12 then python scripts/analyze.py.

Results

Self-consistency (majority vote) is FLAT (~0.48); confidence-select (argmax P(answer), verification-free) RISES 0.47->0.62, beating majority at every budget (oracle 0.83). Max P(answer) predicts solvability (AUROC 0.83) -> abstain on low-confidence -> ~1.0 on the confident third. Allocation ~tied with uniform confidence-select. See reports/report.md, analysis/confidence_guided_compute.png.

Interpretation

The fixed 4B's own logits tell you which sample to trust and when to stop -- no verifier, no execution. Beats the standard verifier-free method (self-consistency). Deployable use of C40.

Knowledgebase Update

  • Claim ledger: C41

Artifacts

  • scripts/succ_family.py, scripts/eval_sampling.py (greedy + k sampled, each with P(answer)), scripts/analyze.py
  • runs/sampling_records.json, runs/verdict.json, analysis/confidence_guided_compute.png, reports/report.md

Report

Rendered from reports/report.md

Motivation

The mission is "beat sample-more." C40 unearthed a deployable implicit confidence signal (the model's answer-token probability P(answer) is calibrated to its own correctness). This turns that signal into a compute tool.

Method

A mix of problems on the C40 successor task ("advance k in a cyclic order") spanning three regimes: easy (execute), coverage-limited (familiar_induce), capability-limited (novel_induce). Sample k=12 per problem; read each sample's P(answer) (softmax over the 10 digit tokens, one forward pass). Compare selection/allocation policies at matched forward-pass budget. Verifiable ground truth; single seed.

Results (n=80/condition, k=12)

Two failure modes of sample-more:

conditiongreedy (1)pass@12
execute1.001.00
familiar_induce (coverage-limited)0.210.90
novel_induce (capability-limited)0.070.59 (below pure-luck 0.72)

Verification-free selection (pick 1 of 12 samples):

methodaccuracy
random0.44
self-consistency (majority vote)0.48
confidence-select (argmax P(answer))0.62
oracle (pass@12 upper bound)0.83

Across budgets: self-consistency is flat (~0.48) — sample-more is wasted — while confidence-select rises 0.47 → 0.62 and beats majority at every budget. It works because P(answer) is calibrated (C40): on hard problems the model's mode is confidently wrong, but when it derives the right rule it is confident, so the most-confident sample beats the most-common one.

Abstention: max per-sample P(answer) predicts per-problem solvability at AUROC 0.83; abstaining on low-confidence yields ~1.0 accuracy on the confident top third (a working abstain/escalate signal for the capability-limited problems where sampling is futile).

Conclusion

The fixed 4B's own logits tell you which sample to trust and when to stop — no verifier, no execution — turning naive sample-more (flat under majority vote) into a rising accuracy-vs-compute curve. This is a deployable use of C40's unearthed self-knowledge, and it beats the standard verifier-free method (self-consistency).

Honest scope

  • Confidence-guided allocation (probe-then-allocate budget) is roughly tied with uniform confidence-select — the win is in selection and abstention, not allocation.
  • Single toy substrate (successor task). Generalizing the signal to real code/MBPP (where "sample-more" is the standard baseline) is the owed next step.
  • Single seed; the design review agent died on an API error (not re-run), so the design was self-vetted against the arc's prior selection findings (C10, C17).

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

confidence guided compute
confidence guided compute · analysis/

Reproduce

Smoke test

python scripts/eval_sampling.py --n 15 --k 8

Full run

eval_sampling.py --n 80 --k 12; analyze.py

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

Browse the experiment folder on GitHub ↗