CompassPlay: Rewarding the Proposer for Where It Moves the Solver
Organizations: University of California, Santa Barbara · Advanced Micro Devices
Abstract
In self-play, a proposer generates verifiable tasks to train a solver. Proposer rewards often depend on the solver's success rate, but equally difficult tasks can differ in their training value. We introduce CompassPlay, a self-play method that rewards the proposer through gradient alignment. The reward favors tasks whose solver loss gradients align with those of reference tasks representing the target capabilities. It draws on a first-order approximation to learning progress and scores each eligible task without additional solver training. Our experiments show gains in performance and training efficiency. In coding self-play with Qwen2.5-Coder-7B, a small external reference set guides task generation. CompassPlay improves average accuracy over AZR's difficulty reward by 1.5 percentage points on in-domain coding and 2.7 on out-of-domain mathematics. In Lean4 theorem proving, CompassPlay matches the difficulty baseline's 150-iteration cumulative coverage with 40% fewer GPU-hours.
Figures & tables
| Method | LiveCodeBench | CRUXEval-I | CRUXEval-O | Mean |
|---|---|---|---|---|
| Initial model | 40.02 | 48.98 | 50.89 | 46.63 |
| solve-only | 46.78 | 58.05 | 60.20 | 55.01 |
| AZR | 49.87 1.62 | 59.63 0.12 | 61.23 0.47 | 56.91 0.72 |
| CompassPlay ( cos ) | 52.60 0.17 | 60.08 0.34 | 62.56 0.44 | 58.41 0.18 |
| Gain over AZR (pp) | +2.73 | +0.45 | +1.33 | +1.50 |
| Method | MATH500 | AMC23 | GSM8K | Minerva | OlympiadBench | Mean |
|---|---|---|---|---|---|---|
| Initial model | 53.40 | 45.00 | 67.00 | 18.00 | 19.30 | 40.54 |
| solve-only | 66.11 | 37.73 | 78.25 | 26.84 | 31.22 | 48.03 |
| AZR | 60.73 2.63 | 43.94 0.92 | 76.98 1.83 | 26.54 1.40 | 30.40 2.04 | 47.72 1.07 |
| CompassPlay ( cos ) | 63.34 3.77 | 47.12 6.56 | 78.72 1.95 | 29.14 2.34 | 33.53 1.58 | 50.37 2.87 |
| Gain over AZR (pp) | +2.61 | +3.18 | +1.74 | +2.60 | +3.14 | +2.65 |
| Method | Alignment | Novelty | Copy rate | Gain (targets) |
|---|---|---|---|---|
| CompassPlay ( cos ) | 0.712 | +3.1 | ||
| novelty-only | 0.000 | |||
| CompassPlay ( cos novelty ) | 0.000 | +13.6 |
Appendix figures & tables6 assets
Supplementary material from the paper’s appendix.
Appendix
| reward | proposer reward (s) | optimizer update (s) | remainder (s) | step total (s) |
|---|---|---|---|---|
| difficulty | 72.1 (44%) | 13.7 (8%) | 77.1 (47%) | 162.9 |
| cos (ours) | 128.8 (58%) | 13.4 (6%) | 80.2 (36%) | 222.4 |
| in-domain | OOD | |||||
|---|---|---|---|---|---|---|
| budget (GPU-h) | cos | difficulty | SOAR | cos | difficulty | SOAR |
| 20 | 49.07 | 48.94 | 46.78 | 37.24 | 39.33 | 38.36 |
| 40 | 53.20 | 54.98 | 43.94 | 43.15 | 43.65 | 34.42 |
| 60 | 57.23 | 57.38 | 45.75 | 47.09 | 46.85 | 32.40 |
| 69 | 57.86 | 56.90 | 45.75 | 48.77 | 48.10 | 32.40 |
| endpoint | 59.20 (95) | 57.60 (71) | 42.15 (109) | 50.56 (95) | 47.93 (71) | 33.16 (109) |
| Method | Iteration | Pure-rename % | Near-copy % | Jaccard % |
|---|---|---|---|---|
| CompassPlay ( cos ) | 39 | 77.50 | 92.20 | 91.06 |
| CompassPlay ( cos novelty ) | 40 | 1.01 | 4.48 | 1.46 |
| difficulty | 39 | 0.27 | 2.45 | 0.54 |
| coding self-play | theorem-proving self-play | |
|---|---|---|
| base loop | AZR ( Zhao et al., 2025 ) | adapted SGS ( Bailey et al., 2026 ) |
| proposer / solver weights | shared, one model | separate copies of one base model |
| environment | Python execution | Lean 4 + mathlib4 |
| tasks | program-based deduction, abduction, induction | Lean statements |
| proposer conditioning | past self-generated tasks | a seed statement the solver has proved |
| verified solution | oracle answer in the solver’s format | up to verified proofs, averaged |
Self-Play RL
Self-play reinforcement learning trains agents through repeated interaction with copies, opponents, or co-evolving task generators.
See all 83 papers