A critical look at self-distillation for reasoning A paper from researchers at the MIT-IBM Computing Research Lab, with Polina Golland and Yoon Kim of MIT CSAIL, reproduced two self-distillation methods — Self-Distillation Policy Optimization (SDPO) and On-Policy Self-Distillation (OPSD) — and found that SDPO induces overfitting, with degraded performance on new problems and out-of-distribution tasks, while OPSD does not rely on privileged information but instead depends on Qwen3 thinking-mode toggles. The authors also report that self-distillation gradients point the wrong way, breaking the assumptions underlying the paradigm as presented in Shenfeld et al. The work, appearing at the Transitioning from Pre-Training to Post-Training workshop at NeurIPS 2026, covers ablations across Qwen3 (1.7B–14B) and Olmo-3-7B-Instruct, with code released to reproduce the results. This blog post summarizes our paper which will appear at the Transitioning from Pre-Training to Post-Training https://pretrain2posttrain.github.io/ workshop at NeurIPS 2026. This is joint work with Ashutosh Sharma, Avinash Balakrishnan, and Rameswar Panda at the MIT-IBM Computing Research Lab https://mitibm.mit.edu/ ; along with Polina Golland and Yoon Kim at MIT CSAIL https://www.csail.mit.edu/ . This post focuses on the main results; the paper covers detailed ablations and results across Qwen3 1.7B–14B and Olmo-3-7B-Instruct along with our experimental setup; we also provide code to reproduce our results. There https://arxiv.org/abs/2608.01589 has https://arxiv.org/abs/2605.22511 been https://arxiv.org/abs/2605.17497 a https://arxiv.org/abs/2607.28582 surge https://arxiv.org/abs/2605.13255 of https://arxiv.org/abs/2606.19327 interest https://arxiv.org/abs/2604.12002 in https://arxiv.org/abs/2608.06296 the https://arxiv.org/abs/2605.28791 self-distillation https://arxiv.org/abs/2605.12652v2 paradigm https://arxiv.org/abs/2609.25623 . In typical policy gradient reinforcement learning e.g., GRPO https://arxiv.org/abs/2402.03300 , a model is trained to increase its expected reward, through gradient ascent on $\mathbb{E} {y\sim \pi \theta} R y $. This provides coarse learning signals at the level of entire trajectories $y\sim \pi \theta$, which might require a large number of samples to learn effectively. But we know that LLMs generate better solutions when given additional context. Namely, if we tell the model that the last time it tried to solve a task, it triggered ModuleNotFoundError: No module named 'numpy' , it probably won’t make the same mistake. So, why not train the model to behave as if it had access to this additional context? In self-distillation, this additional context or privileged information can take many forms: reference solutions to math problems, code execution feedback, etc. In practice, in self-distillation we minimize the “difference” between the model’s behavior with and without privileged information along trajectories sampled without privileged information. Formally, we write: $$ \mathcal{L} {\operatorname{SD}}=\mathbb{E} {y\sim \operatorname{\sg{\pi \theta}}}\left \sum {t=1}^{|y|} \D{\pi \theta y t|y {