Not Every Rollout Needs Distillation: Correctness-Filtered On-Policy Self-Distillation
Organizations: Meta
Abstract
On-policy self-distillation (OPSD) supervises student-generated trajectories with a reference-conditioned version of the same base model. We ask whether every trajectory supplies distinct supervision that warrants its distillation cost. Gradient measurements on Qwen3-1.7B at initialization reveal that correct and incorrect responses have similar individual gradient magnitudes, but incorrect responses have approximately three times the coherent gradient share. Their estimated population-mean directions also largely overlap. A signal--noise model fitted at a small group size tracks alignment at larger group sizes without refitting. Motivated by these measurements, we introduce correctness-filtered OPSD (C-OPSD), which generates one response per problem and distills only a subset of incorrect responses. Removing unselected rows before both distillation forwards avoids their teacher/student forward and student backward work. Across Qwen3-1.7B, 4B, and 8B on AIME24, AIME25, and HMMT25, C-OPSD achieves on-par performance with full OPSD. In a measured micro-batch-size-four implementation, executed rows decrease by approximately 68%, and with retained rows packed into full micro-batches, training takes about 40% less time while rollout generation remains unchanged. Together, the measurements and training results connect outcome-conditioned supervision redundancy to more compute-efficient distillation.
Figures & tables
| Population | Trajectories | Mean p 0 | p 0 = 0 | p 0 0.875 |
|---|---|---|---|---|
| All | 2,027 | 0.34 | 45.8% | 21.5% |
| Correct | 680 | 0.80 | 0.0% | 62.1% |
| Incorrect | 1,347 | 0.11 | 68.9% | 1.0% |
| Population | Within-population cosine | Mean-gradient magnitude | Noise scale | Coherent share q |
|---|---|---|---|---|
| Correct | 0.2042 | 0.3776 | 1.4911 | 6.0% |
| Incorrect | 0.4778 | 0.6339 | 1.3253 | 18.6% |
| Group size | Correct: predicted | Correct: measured | Incorrect: predicted | Incorrect: measured |
|---|---|---|---|---|
| 16 | 0.506 | 0.521 | 0.785 | 0.790 |
| 64 | 0.804 | 0.800 | 0.936 | 0.940 |
| 218 | 0.933 | 0.934 | 0.980 | 0.982 |
| Checkpoint | Correct q | Incorrect q | Ratio | Corrected cross cosine |
|---|---|---|---|---|
| Initialization | 6.4% | 19.1% | 2.99 | 0.975 |
| Step 25 | 8.3% | 25.9% | 3.12 | 0.980 |
| Step 50 | 11.3% | 33.2% | 2.94 | 0.941 |
| Step 100 | 11.5% | 33.9% | 2.95 | 0.943 |
| Arm | Retained trajectories | Count for the same batch | Role |
|---|---|---|---|
| Full OPSD | All trajectories | n | Performance reference |
| Correct-only | All correct trajectories | k | Opposite outcome allocation |
| C-OPSD | First s incorrect trajectories | s = min(k, n k) | Proposed filtered objective |
| Random selection | Outcome-blind subset of all trajectories | s | Count-matched selection control |
| All-incorrect | All incorrect trajectories | n k | Higher-retention comparison |
| Setting | Value |
|---|---|
| Optimizer-step rollout count | 32 distinct problems; one response per problem |
| Student rollout mode | Non-thinking; vLLM ( Kwon et al., 2023 ) colocated generation |
| Maximum rollout length | 1,024 tokens |
| Rollout sampling | Temperature 1.1; top-p 0.95; top-k 20 |
| Learning rate | ; constant schedule |
| Token-divergence clip parameter | 0.05 for 1.7B/4B; 0.06 for 8B |
| Result block | Per-device batch | Gradient accumulation | Ranks | Total rollouts/step |
| All experiments | 4 | 8 | 1 | 32 |
| Model | Method | AIME24 | AIME25 | HMMT25 | Mean | SD | Retention |
|---|---|---|---|---|---|---|---|
| 1.7B | Base | 49.10 | 33.89 | 23.26 | 35.42 | — | — |
| SFT | 50.42 | 38.59 | 24.44 | 37.82 | 0.19 | 100% | |
| GRPO | 49.26 | 36.16 | 23.66 | 36.36 | 0.42 | 100% | |
| OPSD | 56.19 | 41.85 | 28.74 | 42.26 | 0.29 | 100% | |
| C-OPSD | 56.18 | 41.50 | 28.51 | 42.06 | 0.34 | 26% | |
| 4B | Base | 74.38 | 65.35 | 43.75 | 61.16 | — | — |
| Arm | Retention | Incorrect among retained | Mean p 0 | Mean accuracy (SD) |
|---|---|---|---|---|
| Correct-only | 33% | 0% | 0.83 | 40.35 (0.20) |
| Random selection | 26% | 66% | 0.42 | 41.58 (0.31) |
| C-OPSD | 26% | 100% | 0.09 | 42.06 (0.34) |
| All-incorrect | 68% | 100% | 0.09 | 42.17 (0.38) |
| Strategy | Expected retained trajectories/step | Shared-direction signal | Noise | Estimated SNR | Mean accuracy |
|---|---|---|---|---|---|
| Correct-only | 10.56 | 3.86 | 4.85 | 0.80 | 40.35 |
| Random selection | 8.32 | 4.51 | 3.99 | 1.13 | 41.58 |
| C-OPSD | 8.32 | 5.27 | 3.82 | 1.38 | 42.06 |
| Distillation operation | Full OPSD rows | C-OPSD mean rows | Executed-row reduction |
|---|---|---|---|
| Student forward | 4 | 1.29 | 68% |
| Teacher forward | 4 | 1.29 | 68% |
| Student backward | 4 | 1.29 | 68% |
| Model scale | Generation | Student f+b | Teacher f | Full total | Filtered total | Modeled saving |
|---|---|---|---|---|---|---|
| 1.7B | 101.7 | 305.2 | 157.3 | 564.1 | 250.9 | 55.5% |
| 4B | 262.3 | 786.8 | 405.5 | 1454.6 | 646.8 | 55.5% |
| 8B | 501.5 | 1504.3 | 775.3 | 2781.1 | 1236.6 | 55.5% |
| 100-step training (min) | Per step (s) | ||||
| Model | OPSD | C-OPSD | Saving | OPSD | C-OPSD |
| 1.7B | 14.2 | 8.4 | 41% | 7.86 | 4.79 |
| 4B | 19.8 | 11.8 | 40% | 12.36 | 6.95 |
| 8B | 22.6 | 13.7 | 40% | 12.98 | 8.05 |
Appendix figures & tables1 asset
Supplementary material from the paper’s appendix.
Appendix
| Model | Dataset | Method | Step 25 | Step 50 | Step 75 | Step 100 |
|---|---|---|---|---|---|---|
| 1.7B | AIME24 | OPSD | 53.33 | 54.76 | 56.00 | 55.10 |
| 1.7B | AIME24 | C-OPSD | 52.64 | 54.03 | 56.04 | 55.14 |
| 1.7B | AIME25 | OPSD | 39.60 | 41.32 | 41.01 | 39.75 |
| 1.7B | AIME25 | C-OPSD | 39.03 | 40.40 | 41.38 | 40.38 |
| 1.7B | HMMT25 | OPSD | 24.57 | 27.08 | 28.74 | 27.89 |
| 1.7B | HMMT25 | C-OPSD | 24.43 | 25.42 | 27.49 | 28.46 |
On-Policy Self-Distillation
On-policy self-distillation trains a model on its own generated trajectories using a teacher view to provide dense supervision.
See all 148 papers