Test-time scaling for complex reasoning tasks shows that leveraging inference-time compute, by methods such as independently sampling and aggregating multiple solutions, results in significantly better task outcomes. However, a critical bottleneck is verification: sampling is only effective if correct solutions can be reliably identified among candidates. While existing approaches typically evaluate candidates independently via scalar scoring, we demonstrate that models are substantially stronger at pairwise self-verification. Leveraging this insight, we introduce V1, a framework that unifies generation and verification through efficient pairwise ranking. V1 comprises two components: V1-Infer, an uncertainty-guided algorithm using a tournament-based ranking that dynamically allocates self-verification compute to candidate pairs whose relative correctness is most uncertain; and V1-PairRL, an RL framework that jointly trains a single model as both generator and pairwise self-verifier, ensuring the verifier adapts to the generator's evolving distribution. On code generation (LiveCodeBench, CodeContests, SWE-Bench) and math reasoning (AIME, HMMT) benchmarks, V1-Infer improves Pass@1 by up to 10 over pointwise verification and outperforms recent test-time scaling methods while being significantly more efficient. Furthermore, V1-PairRL achieves 7--9 test-time scaling gains over standard RL and pointwise joint training, and improves base Pass@1 by up to 8.7% over standard RL in a code-generation setting.
Figures & tables
Figure 1: (Left) Pairwise self-verification (using V1 -Infer, § 4 ) outperforms pointwise self-verification in self-verification measured on problems which have both correct and incorrect solutions in their parallel generations (Results with GPT-OSS-20B on LiveCodeBench-V6 prompts). (Middle and Right) Recursive self-aggregation on LiveCodeBench benchmarks shows declining Pass@N (diversity collapse) for both GPT-OSS-20B and Qwen3-4B-Instruct. See § 3 for more details.
Figure 2: Swiss Refinement Overview. Increasing pairwise verifications enables LLMs to better self-verify for selecting the best response among N self-generated solutions. See Section 4
Figure 3: Performance after self-verification using V1 -Infer compared with pointwise self-verification across benchmarks and models at N=16 base generations. Results presented for GPT-OSS-20B and Qwen3-4B-Instruct-2507. Results for GPT-OSS-120B and Qwen3-4B-Thinking-2507 are in Fig. 12 and show similar trends.
Figure 4: Accuracy vs. total budget (generation + verification calls). Stars, circles, and squares denote N=8 , N=16 , and N=32 base generations from the LLM, while the total budget =N+V where V is the number of verification calls. V1 -Infer consistently outperforms pointwise self-verification at equivalent budgets and shows monotonic performance scaling with compute. See Fig. 15 for per-benchmark results.
Figure 5: Comparison with Recursive Self-Aggregation (RSA) [ 44 ] on LCB-v6. V1 -Infer achieves higher accuracy with fewer model calls.
Figure 6: Pairwise comparison with vanilla solution generation and pointwise self-verification on SWE-bench Lite (300 instances, N=8 candidates, Gemini 2.5 Flash, mini-swe-agent [ 51 ] pipeline).
Figure 7: Accuracy improvement with increasing verification budget across problem difficulty levels (GPT-OSS-20B on LCB-v6, N=16). V1 -Infer provides the largest gains on hard problems (+23.7%).
Figure 8: Combining self-verification with RSA on AIME 2025.
Figure 9: V1 -PairRL: Unified RL training for co-evolving generation and pairwise verification. A single LLM is trained with two objectives: JGen optimizes solution generation using correctness rewards, while JPairVerif optimizes pairwise verification accuracy. The generator produces G solutions per problem, which are evaluated for correctness and paired for verification training. The verifier evaluates solutions in a paired setting by providing correctness scores for both solutions. Since we are in a verifiable setting and know from ground truth (such as test case execution during code generation) which of the generator solutions are correct, we can calculate correctness rewards for the verifier as well. See Section 5 for more details on how optimization proceeds and rewards are calculated in this framework.
Figure 10: V1 -PairRL training results (N=16). (left) Test-time scaling: V1 -PairRL outperforms V1 -PointRL and improves with increased verification budget. (middle) With V1 -Infer as the test-time scaling algorithm (at 2x budget): V1 -PairRL outperforms RL baseline even when both use pairwise verification. (right) Base Pass@1 accuracy without any test-time scaling: Co-training with pairwise verification improves generation quality over the RL baseline, even without test time scaling.
Figure 11: Co-evolving vs. non-co-evolving pairwise verification. Both use V1 -Infer (2x budget).
Appendix figures & tables6 assets
Supplementary material from the paper’s appendix.
Appendix
Hyperparameter
Qwen3-4B-Inst
Learning rate
1×10−6
Batch size
64
Rollouts per prompt ( G )
4 (8 for baseline RL)
Judge rollouts
4 (0 for baseline RL)
Max prompt length
10240
Max response length
24576
Appendix
Table 1: Training hyperparameters for V1 .
Figure 12: Self-verification bar plots across benchmarks and models (LiveCodeBench-v5, LiveCodeBench-v6, and CodeContests). Each plot compares Pass@1, pointwise verification, and pairwise verification (budgets 1 × /2 × /3 × ) at N∈{8,16} . For Qwen3-4B-Thinking (bottom row), we run experiments only on LiveCodeBench at N=8 to manage compute.
Figure 13: Comparing Pairwise Verification with RSA. Top row: LiveCodeBench-v6. Bottom row: LiveCodeBench-v5. Columns (left → right): gpt-oss-20b, Qwen3-4B-Instruct-2507. Here number of generations by the base model is 16 , followed by verification (pointwise, pairwise) or aggregation (RSA).
Figure 14: Comparing Pairwise Verification with RSA. Top row: LiveCodeBench-v6. Bottom row: LiveCodeBench-v5. Columns (left → right): gpt-oss-20b, Qwen3-4B-Instruct-2507. Here number of generations by the base model is 8 , followed by verification (pointwise, pairwise) or aggregation (RSA).
Figure 15: Budget vs accuracy per benchmark. Accuracy vs. total budget (generation + verification calls) for CodeContests (top row), LiveCodeBench-v5 (middle row), and LiveCodeBench-v6 (bottom row). Left column: GPT-OSS-20B. Right column: Qwen3-4B-Inst. Stars denote N=8 base generations, circles denote N=16 , squares denote N=32 (pointwise only).
Figure 16: V1 -PairRL vs RL baseline across benchmarks (N=16). Left: LiveCodeBench-v5. Middle: LiveCodeBench-v6. Right: CodeContests. Co-training with pairwise verification consistently improves Pass@1 accuracy across all benchmarks.