Qwen3.5-4B Adaptive Evidence Budget Policy
The one idea you need
Think of a doctor diagnosing an illness by ordering tests one at a time. A tool already picks the single most informative next test. A separate trained judge does only one thing: name the diagnosis now, or order one more test.
The question
Can a small model learn when it has gathered enough evidence to commit to an answer, instead of always running every available check?
What we found
Yes. Trained just for this single decision, the model matched the accuracy of running all ten checks — solving about 92 of every 100 tasks — while using only about five checks on average, near a perfect-hindsight stopper's roughly four. Untrained, the same model quit almost immediately and solved just 5%. Crude fixed numeric-cutoff rules also collapsed, to between 5 and 7%.
Why it matters
For agent loops that gather evidence step by step, skip the hardwired step count and the crude confidence threshold. A cheap small model tuned only to say stop-or-continue can roughly halve the checks at no accuracy cost.
On this page
Results at a glance 3
How to read
The horizontal axis is average checks used; the vertical axis is the share of tasks solved. Up and to the left is better. A line traces simple fixed cutoffs of three, six, and ten checks; two dots mark the trained model and a perfect-hindsight stopper.
Takeaway → The trained model's dot sits above the fixed-cutoff line, reaching top accuracy at fewer checks, and nearly touches the perfect-hindsight dot.
Data table
| Average probes used | fixed budget sweep (3/6/10) | SFT stop/more | oracle stop |
|---|---|---|---|
| 3 | 45% | — | — |
| 4.22 | — | — | 92.5% |
| 4.81 | — | 92.5% | — |
| 6 | 74.4% | — | — |
| 10 | 92.5% | — | — |
Numbers from experiments/qwen35_4b_adaptive_evidence_budget_policy/reports/summary_overall.csv
Technical framing
Accuracy vs probes spent: SFT stop/more matches full budget at half the cost — The SFT controller hits fixed-budget-10 accuracy (92.5%) with 4.81 probes, near the oracle's 4.22 — above the fixed-budget Pareto curve.
How to read
Each bar is a different stopping rule; bar height is the share of tasks solved, so taller is better. The untrained model and the crude cutoff rules sit low on the left; the trained model, the perfect-hindsight stopper, and the full ten-check budget stand tall on the right.
Takeaway → The untrained model's tiny bar leaps to a tall one after training, matching both the perfect-hindsight stopper and the full ten-check budget.
Data table
| condition | accuracy |
|---|---|
| base stop/more | 5% |
| threshold <=1000 | 5% |
| threshold <=100 | 6.9% |
| fixed budget 3 | 45% |
| fixed budget 6 | 74.4% |
| fixed budget 10 | 92.5% |
| oracle stop | 92.5% |
| SFT stop/more | 92.5% |
Numbers from experiments/qwen35_4b_adaptive_evidence_budget_policy/reports/summary_overall.csv
Technical framing
Hidden-all accuracy by stopping policy — The base model stops almost immediately (5% accuracy); SFT lifts the same model to 92.5%, tying oracle stopping and the full 10-probe budget.
How to read
Two task types are shown, an easy one and a hard one; bar height is average checks used, so lower means less effort. Bars compare the trained model, the perfect-hindsight stopper, and a rule that always runs all ten checks.
Takeaway → On easy tasks the trained model's bar is short; on hard tasks it is tall, closely tracking the perfect-hindsight stopper instead of the flat ten.
Data table
| condition | SFT stop/more | oracle stop | fixed budget 10 |
|---|---|---|---|
| affine-mod | 2.34 | 1.82 | 10 |
| compare-gate | 7.28 | 6.62 | 10 |
Numbers from experiments/qwen35_4b_adaptive_evidence_budget_policy/reports/summary_by_template.csv
Technical framing
Adaptive spend: probes used per task template — The SFT policy spends few probes on easy affine-mod tasks and more on hard compare-gate tasks, tracking the oracle while matching its accuracy.
In the author’s words from the Report · “Interpretation”
This test separates the value of the adaptive inference loop from the value of learning the stop rule. If the SFT policy lies on or above the fixed-budget Pareto curve, posttraining learned useful budget control. If fixed budgets dominate it, the practical lever is simply allowing more executable observations and using a transparent budget rule.
Overview
This standalone experiment tests whether Qwen3.5-4B can be posttrained as a STOP/MORE controller for an executable verifier.
The verifier chooses the next probe by target-independent expected split. The model does not choose probes and does not name operators. Its only deployable decision is whether to stop and commit the current verifier-selected program or request one more executable observation, up to a maximum budget of ten probes.
Large artifacts are intentionally outside this directory:
/workspace/large_artifacts/qwen35_4b_adaptive_evidence_budget_policy/models/budget_sft_lora
Main outputs:
reports/qwen35_4b_adaptive_evidence_budget_policy_report.mdreports/figures/reports/*.csvreports/eval/*.jsonrun_logs/logs/experiment_log.md
Reproduction:
python scripts/build_dataset.py --train-per-cell 40 --eval-per-cell 20 --query-pool-cases 96 --max-budget 10
python scripts/eval_budget_policy.py --policy fixed --name fixed_budget3 --fixed-budget 3 --max-budget 10
python scripts/eval_budget_policy.py --policy fixed --name fixed_budget6 --fixed-budget 6 --max-budget 10
python scripts/eval_budget_policy.py --policy fixed --name fixed_budget10 --fixed-budget 10 --max-budget 10
python scripts/eval_budget_policy.py --policy threshold --name threshold_100 --threshold 100 --max-budget 10
python scripts/eval_budget_policy.py --policy threshold --name threshold_1000 --threshold 1000 --max-budget 10
python scripts/eval_budget_policy.py --policy oracle_stop --name oracle_stop --max-budget 10
python scripts/eval_budget_policy.py --policy base --name base_budget_policy --max-budget 10
python scripts/train_budget_sft.py --max-steps 220 --batch-size 2 --grad-accum 2
python scripts/eval_budget_policy.py --policy adapter --name sft_budget_policy --adapter-dir /workspace/large_artifacts/qwen35_4b_adaptive_evidence_budget_policy/models/budget_sft_lora --max-budget 10
python scripts/make_report.pyReport
Rendered from reports/qwen35_4b_adaptive_evidence_budget_policy_report.md
Objective
This standalone experiment tests whether Qwen3.5-4B can be posttrained as a STOP/MORE controller for an executable verifier. The verifier supplies the best deployable next probe by target-independent expected split; the model decides whether to commit now or spend another probe, up to a maximum budget of ten.
Data
- Train records: 240.
- Eval records: 160.
- Train STOP/MORE states: 2640.
- Eval STOP/MORE states: 1760.
Key Result
- SFT STOP/MORE reached 92.5% accuracy using 4.81 probes on average.
- Fixed budget 3/6/10 reached 45.0% / 74.4% / 92.5%.
- Oracle stopping reached 92.5% using 4.22 probes on average.
Overall
| Policy | Hidden-all accuracy | Avg probes | Candidates left | Hidden-equivalent left |
|---|---|---|---|---|
| Fixed budget 3 | 45.0% | 3.00 | 1040.5 | 12.9 |
| Fixed budget 6 | 74.4% | 6.00 | 544.7 | 8.8 |
| Fixed budget 10 | 92.5% | 10.00 | 353.8 | 3.6 |
| Threshold <=100 | 6.9% | 1.86 | 397.6 | 4.3 |
| Threshold <=1000 | 5.0% | 0.94 | 600.7 | 4.8 |
| Oracle stop | 92.5% | 4.22 | 356.2 | 3.8 |
| Base Qwen stop/more | 5.0% | 0.04 | 3819.4 | 129.6 |
| SFT Qwen stop/more | 92.5% | 4.81 | 353.8 | 3.6 |
By Template
Cells show accuracy / average probes.
| Policy | Affine-mod | Compare-gate |
|---|---|---|
| Fixed budget 3 | 87.5% / 3.00 | 2.5% / 3.00 |
| Fixed budget 6 | 98.8% / 6.00 | 50.0% / 6.00 |
| Fixed budget 10 | 98.8% / 10.00 | 86.2% / 10.00 |
| Threshold <=100 | 12.5% / 0.07 | 1.2% / 3.65 |
| Threshold <=1000 | 10.0% / 0.00 | 0.0% / 1.88 |
| Oracle stop | 98.8% / 1.82 | 86.2% / 6.62 |
| Base Qwen stop/more | 10.0% / 0.00 | 0.0% / 0.09 |
| SFT Qwen stop/more | 98.8% / 2.34 | 86.2% / 7.28 |
Interpretation
This test separates the value of the adaptive inference loop from the value of learning the stop rule. If the SFT policy lies on or above the fixed-budget Pareto curve, posttraining learned useful budget control. If fixed budgets dominate it, the practical lever is simply allowing more executable observations and using a transparent budget rule.
Figures
reports/figures/accuracy_vs_probes.pngreports/figures/accuracy_by_template.pngreports/figures/probes_by_template.pngreports/figures/budget_sft_loss.png
Reproduction
python scripts/build_dataset.py --train-per-cell 40 --eval-per-cell 20 --query-pool-cases 96 --max-budget 10
python scripts/eval_budget_policy.py --policy fixed --name fixed_budget3 --fixed-budget 3 --max-budget 10
python scripts/eval_budget_policy.py --policy fixed --name fixed_budget6 --fixed-budget 6 --max-budget 10
python scripts/eval_budget_policy.py --policy fixed --name fixed_budget10 --fixed-budget 10 --max-budget 10
python scripts/eval_budget_policy.py --policy threshold --name threshold_100 --threshold 100 --max-budget 10
python scripts/eval_budget_policy.py --policy threshold --name threshold_1000 --threshold 1000 --max-budget 10
python scripts/eval_budget_policy.py --policy oracle_stop --name oracle_stop --max-budget 10
python scripts/eval_budget_policy.py --policy base --name base_budget_policy --max-budget 10
python scripts/train_budget_sft.py --max-steps 220 --batch-size 2 --grad-accum 2
python scripts/eval_budget_policy.py --policy adapter --name sft_budget_policy --adapter-dir /workspace/large_artifacts/qwen35_4b_adaptive_evidence_budget_policy/models/budget_sft_lora --max-budget 10
python scripts/make_report.pyExperiment log 5
Show the running log (5 entries)
Setup
- Created a standalone experiment directory at
/workspace/experiments/qwen35_4b_adaptive_evidence_budget_policy. - Created a separate large-artifact root at
/workspace/large_artifacts/qwen35_4b_adaptive_evidence_budget_policy. - Objective: test Qwen3.5-4B as a deployable STOP/MORE controller for an executable verifier.
Mechanism
- The verifier chooses the next probe by target-independent expected split over the full probe pool.
- The model sees observed executions, current survivor count, current deterministic selected program, and the expected split statistics for the best next probe.
The model outputs:
A: STOP and commit the current selected program.B: MORE and request one additional executable probe.
- Training labels are oracle-supervised from hidden checks: STOP once the current selected program is hidden-correct, otherwise MORE until the maximum budget.
Planned Arms
fixed_budget3fixed_budget6fixed_budget10threshold_100threshold_1000oracle_stopbase_budget_policysft_budget_policy
Success Criterion
The SFT policy should land on or above the fixed-budget accuracy/probe Pareto curve. If fixed budgets dominate it, the useful mechanism is the inference loop with more probes, not learned stop control.
Results
- Built 240 train records, 160 eval records, 2,640 train STOP/MORE states, and 1,760 eval STOP/MORE states.
- Trained Qwen3.5-4B QLoRA STOP/MORE adapter for 220 optimizer steps.
Overall hidden-all accuracy / average probes:
fixed_budget3: 45.0% / 3.00fixed_budget6: 74.4% / 6.00fixed_budget10: 92.5% / 10.00threshold_100: 6.9% / 1.86threshold_1000: 5.0% / 0.94oracle_stop: 92.5% / 4.22base_budget_policy: 5.0% / 0.04sft_budget_policy: 92.5% / 4.81
By template,
sft_budget_policyreached:pair_affine_mod: 98.8% / 2.34 probespair_compare_gate: 86.2% / 7.28 probes
- Interpretation: Qwen posttraining learned a useful budget controller. It matched the accuracy of always spending ten probes while using less than half the probes on average, and it landed close to the hidden-oracle stopping efficiency.
Figures 4
Data files 3
Result tables and metrics copied from the experiment folder — preview inline or open the raw file.
reports/summary_by_cell.csv3.8 kBreports/summary_by_template.csv1.1 kBreports/summary_overall.csv495 B
Reproduce
Run steps are documented inside the experiment folder (README and scripts).



