Preprint · 2026
Proposer-Verifier Decoding
1Nanyang Technological University · 2ByteDance
Speculative decoding lets a small model draft and a large model verify. ProVe reverses the roles: the large model proposes a block of 16 tokens in one forward pass, and a verifier reads it in one more.
How it works
The proposer sees the context plus 16 placeholders and fills all of them in one forward pass. A verifier then reads the whole block in one more pass and scores every token after seeing the tokens before it. The longest run that passes the gate is committed.
| position | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
context ends …So in total it+ 16 placeholders | [M] | [M] | [M] | [M] | [M] | [M] | [M] | [M] | [M] | [M] | [M] | [M] | [M] | [M] | [M] | [M] |
| proposed blockproposer · one forward pass | takes | ␣ | 2 | + | ␣ | 1 | = | ␣ | 3 | bolts | . | The | : | answer | ␣ | 3 |
| confidence p̃from the same pass | .92 | .98 | .95 | .93 | .95 | .74 | .96 | .97 | .94 | .99 | .80 | .19 | .29 | .31 | .50 | .40 |
| verifier q3B model · one more pass | .95 | 1.0 | 1.0 | .77 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | .12 | .01 | .00 | .00 | 1.0 | 1.0 |
| p̃ · q ≥ 0.10commit the leading run | ✓.87 | ✓.98 | ✓.94 | ✓.72 | ✓.95 | ✓.74 | ✓.96 | ✓.97 | ✓.94 | ✓.99 | ✗.098 | – | – | – | – | – |
Commit 10 tokens, takes 2 + 1 = 3 bolts. Position 11 fails (q = 0.12), so the next cycle starts there. Deeper positions were already guesses.
A smaller stock AR model verifies. Gate on p̃ · q ≥ θ: the proposer's confidence times the verifier's probability. Lower θ commits longer runs and trades a little accuracy for speed.
lossy · tunable · one extra small passThe proposer verifies itself. Its second pass yields the greedy next token after every prefix; at the first disagreement that token is committed instead. Every committed token lies on the greedy AR path.
exact · no threshold · no second modelWhy verify
The proposer's confidence is computed from placeholders, before the proposed tokens exist. It is free, but it leaves most of the usable block on the table. A verifier reads the realized tokens, and one teacher-forced pass scores all 16.
Cost
Count one proposer pass as 1 and a small-model pass as ρ (0.34 for a 3B next to a 32B). Speculative decoding pays ρ for every drafted token. ProVe pays it once.
Per-cycle cost in proposer-pass units; the speedup is tokens committed per cycle divided by this. Most of a verifier pass is fixed per-call overhead, so a 7B verifier costs little more than a 3B.
Results
HumanEval, GSM8K, GPQA, BBH, MMLU-Pro and IFEval. Greedy decoding, one request in flight, up to 1024 new tokens. Throughput is relative to greedy AR decoding of the same model on the same hardware.
Exact · output equals AR
Lossy · Δ accuracy in points
Speedup follows the continuation: templated chains of thought on BBH reach 4.0×, short constrained answers on IFEval 1.4×.
Qwen3-32B in thinking mode as proposer; stock Qwen3-0.6B as verifier and as the speculative draft.
| Configuration | GSM8K | MATH-500 |
|---|---|---|
| Speculative decoding, k = 5 | 2.06× | 2.28× |
| ProVe-lossless | 2.47× | 2.79× |
| ProVe, θ = 0.10 | 2.34× −0.4 | 3.16× −0.2 |
ProVe-lossless speedup across the 27 BBH subtasks, from the shortest responses to the longest.
Tokens per block that match greedy AR, from the start to the end of a GSM8K response. Later text is more predictable, so more of each block survives.
Recipe
Citation
@article{jin2026prove,
title = {ProVe: Proposer-Verifier Decoding},
author = {Jin, Ziqi and Xu, Weiwen and Li, Jiaxi and Zhong, Yujie and She, Qi and Sun, Aixin},
journal = {arXiv preprint arXiv:2610.27815},
year = {2026}
}