Learning Dynamics of On-Policy Distillation
Organizations: University of Oxford · EPFL · City University of Hong Kong
Abstract
On-policy distillation (OPD) is emerging as an important paradigm for language-model post-training, combining dense teacher supervision with training on student-generated trajectories. This creates a feedback loop where each update changes the student and thereby the training distribution that generates subsequent updates. Yet, how this feedback shapes learning and generalization remains poorly understood. We conduct a mechanistic analysis of OPD's learning dynamics, distinguishing the two feedback loop stages: conversion of the distillation signal into parameter updates, and broadcast through which these updates change predictions across prefixes and reshape the rollout distribution. This framework helps us understand both limited student responsiveness despite substantial teacher-student disagreement, and degeneration when updates that improve local teacher agreement also increase the probability of unsuccessful continuations, exposing the student to unreliable supervision in subsequent rollouts. Finally, we show that offline distillation can prepare a student for OPD without significantly improving immediate held-out accuracy. While OPD alone may degrade generation, it can yield substantial accuracy gains after sufficient offline preparation. Together, our results connect teacher supervision, student geometry, and the evolving rollout distribution in determining the learning dynamics of OPD and its effects on downstream performance.
Figures & tables
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
| 1.5B student | 7B student | |||
| Position category | Sibling | Larger | Sibling | Larger |
| Reframe | 1.63 | 0.70 | 2.61 | 0.65 |
| Check-conclude | 1.52 | 0.91 | 1.86 | 0.62 |
| Doubt flag | 1.15 | 1.84 | 2.95 | 0.68 |
| Check-initiate | 1.37 | 1.20 | 2.64 | 1.32 |
| Planning: opening | 3.59 | 0.30 | 4.13 | 1.06 |
| Run | Class | |||||
|---|---|---|---|---|---|---|
| 7B healthy | Control | 0.192 | 119.8 | 0.081 | 9.70 | 43.1 |
| 7B healthy | Technical | 0.151 | 106.3 | 0.055 | 5.85 | 29.7 |
| 7B stalled | Control | 0.521 | 148.1 | 0.025 | 3.70 | 43.9 |
| 7B stalled | Technical | 0.599 | 128.8 | 0.020 | 2.58 | 39.3 |
| 1.5B healthy | Control | 6.024 | 39.6 | 0.041 | 1.62 | 98.9 |
| 1.5B healthy | Technical | 2.569 | 54.5 | 0.064 | 3.49 | 94.7 |
| Run | Class | Step | |||||
|---|---|---|---|---|---|---|---|
| 7B healthy | Control | 200 | 0.005 | 0.983 | 0.012 | 0.012 | 1.414 |
| 7B healthy | Technical | 200 | 0.007 | 2.159 | 0.036 | 0.079 | 1.232 |
| 7B stalled | Control | 150 | 0.740 | 0.827 | 0.520 | 0.430 | 0.810 |
| 7B stalled | Technical | 150 | 0.740 | 0.884 | 0.500 | 0.442 | 0.889 |
| 1.5B healthy | Control | 200 | 0.009 | 1.216 | 0.341 | 0.415 | 2.829 |
| 1.5B healthy | Technical | 200 | 0.015 | 3.628 | 0.031 | 0.113 | 5.399 |
| Run | Step | (pp) | Median | |||
|---|---|---|---|---|---|---|
| 7B healthy | 50 | 1.19 | 0.034 | -0.23 | 1.04 | 1.23 |
| 7B healthy | 200 | 1.25 | 0.041 | -0.36 | 1.07 | 1.34 |
| 7B stalled | 50 | 0.79 | 0.018 | +1.12 | 0.93 | 0.90 |
| 7B stalled | 150 | 0.74 | 0.032 | +1.51 | 0.91 | 0.85 |
| 1.5B healthy | 50 | 1.00 | 0.232 | +5.49 | 1.19 | 3.95 |
| 1.5B healthy | 200 | 2.31 | 0.369 | +5.07 | 2.08 | 3.78 |
| Run | Trained gain (pp) | Other gain (pp) | Paired difference (pp) | 95% interval |
|---|---|---|---|---|
| 7B healthy | -0.23 | +0.07 | -0.16 | |
| 7B stalled | +1.12 | +1.25 | +0.00 | |
| 1.5B healthy | +5.49 | +2.42 | +1.79 | |
| 1.5B stalled | +1.06 | +1.00 | -0.16 |
| Local loss | Conditional entropy | |||||||
|---|---|---|---|---|---|---|---|---|
| Learner | Initial | Final | Initial | Final | ||||
| DeepSeek | 0.263 | 0.015 | -0.033 | -0.214 | 0.664 | 0.707 | -0.049 | 0.093 |
| Unprepared | 0.579 | 0.073 | 0.474 | -0.980 | 0.650 | 3.988 | 3.666 | -0.327 |
| Prepared | 0.707 | 0.362 | 0.108 | -0.453 | 2.171 | 0.842 | -1.183 | -0.146 |
| Learner | Reference class | Positions | at reference | at 200 | log-odds |
|---|---|---|---|---|---|
| DeepSeek | Above teacher | 33,010 | 0.0789 | 0.0032 | -2.073 |
| DeepSeek | Below teacher | 11,336 | 0.1915 | 0.0149 | +1.381 |
| Prepared Qwen | Above teacher | 25,794 | 0.0276 | 0.0580 | -0.606 |
| Prepared Qwen | Below teacher | 18,211 | 0.5627 | 0.3813 | +0.721 |
| log-odds of | correctness | change in two-branch value | |||||
| Evaluator | answering | answer | continue | natural | probability term | value term | |
| initial student | 0.30 | 0.22 | 0.27 | — | — | — | |
| update 20 | 0.30 | 0.29 | 0.29 | ||||
| update 30 | 0.33 | 0.32 | 0.31 | ||||
| update 40 | 0.29 | 0.27 | 0.26 | ||||
| update 50 | 0.31 | 0.17 | 0.21 | ||||
| Student surprisal (nats) | Teacher top-1 probability | |||
| Batch | First 512 | 1536–2047 | First 512 | 1536–2047 |
| 1 | .85 | — | .79 | — |
| 5 | .69 | — | .81 | — |
| 10 | .58 | .12 | .83 | .94 |
| 15 | .58 | — | .83 | — |
| 20 | .62 | 3.24 | .81 | .51 |
| Cut depth | Step 50 | Step 100 | Step 200 |
|---|---|---|---|
| 256 | |||
| 512 | |||
| 1,024 |
| Student | Offline-control steps | Steps in the OPD arm | Sequence presentations per arm |
|---|---|---|---|
| Qwen 1.5B | 200 offline | 200 OPD | 51,200 |
| Qwen 7B | 100 offline | 100 OPD | 25,600 |
| Llama 8B | 200 offline | 200 OPD | 51,200 |
| Student | Arm | pass@1 | pass@32 | Coverage | All 32 | |
|---|---|---|---|---|---|---|
| Qwen 1.5B | Base | 8 | 0 | 0 | ||
| Cold start | 8 | 0 | 0 | |||
| + offline | 5 | 0 | 0 | |||
| + OPD | 11 | 0 | 0 | |||
| Qwen 7B | Base | 19 | 4 | 0 | ||
| Cold start | 25 | 7 | 0 |
| Student | Year | pass@1 [95% interval] | pass@32 [95% interval] |
|---|---|---|---|
| Qwen 1.5B | 2024 | ||
| 2025 | |||
| Qwen 7B | 2024 | ||
| 2025 | |||
| Llama 8B | 2024 | ||
| 2025 |
| Student | Passes | Cold start | After OPD |
|---|---|---|---|
| Qwen 1.5B | 1 | [0.411, 0.506] | [0.409, 0.509] |
| 2 | [0.409, 0.504] | [0.476, 0.585] | |
| 4 | [0.420, 0.522] | [0.510, 0.614] | |
| Qwen 7B | 1 | [0.638, 0.725] | [0.782, 0.862] |
| 2 | [0.649, 0.736] | [0.791, 0.864] | |
| 4 | [0.669, 0.753] | [0.817, 0.887] |
On-Policy Distillation
On-policy distillation trains a model on its own outputs using teacher guidance, aligning supervision with the states it encounters at deployment.
See all 538 papers