Notes · Method note · self-distillation
A model trained to match its own predictions under a richer condition — an older copy of itself, a prompt it will not have at test time, the feedback it just received, the tools it just called. No external teacher, a dense per-token signal, and a built-in anchor against forgetting. In 2026 it moved from a regularizer to a post-training stage. This note is about what it optimizes, why it forgets less than RL until suddenly it forgets more, and why the thing being distilled is usually not the model alone but the model plus its harness — so the two have to be versioned together.
Why this framing matters for continual post-training. Most forgetting measurements hold the harness fixed and vary the weights. But in an agentic stack the harness is where a surprising amount of behaviour lives — the system prompt that names the tools, the template that marks tool outputs, the verifier that defines "correct". Change it and a model can lose a skill without a single weight moving. Context distillation is the tool for moving that behaviour into the weights before the harness changes; a KL to the old pair is the tool for keeping it there. Treating (model, harness) as the unit of versioning makes both steps explicit, and makes "does the next post-training benefit from the previous one" a well-posed question: the previous pair is the teacher.
| Work | Teacher \(c\) | Sampling | What it showed | Continual-learning note |
|---|---|---|---|---|
| Learning without Forgetting (Li & Hoiem 2016) | previous network on new-task inputs | dataset | new task without old data, old outputs preserved by KL | the origin; every KL-to-reference since is this |
| Born-Again Networks (Furlanello et al. 2018) · Mobahi et al. 2020 | identical architecture, previous generation | dataset | students beat teachers; theory: repeated self-distillation is progressive regularization in RKHS, then underfitting | too many generations over-smooth — an early "denser is not better" |
| Context distillation (Snell, Klein, Zhong 2022) | same model + instruction / examples / scratchpad | student, on-policy | prompts and CoT internalized into weights | the harness-into-weights step of Fig 2 |
| GKD (Agarwal et al., ICLR 2024) | a separate teacher | student rollouts | on-policy sampling fixes exposure bias; choice of divergence matters | defines the on-policy form all of 2026 uses |
| Thinking Machines · On-Policy Distillation (Oct 2025) | larger sibling, or the pre-update self | student | reasoning at a fraction of RL compute; recovers an assistant skill after a domain update | names continual learning and personalization as the use case |
| SDPO (Hübotter et al., ETH LAS, 2026) | same model + rich feedback (compiler, tests) | student | beats RLVR baselines on science, tool use, LiveCodeBench v6 | feedback used whole instead of scalarized |
| Aligning LMs from User Interactions (Buening et al. 2026) | same model + the next user turn | student | real WildChat conversations improve alignment and IF benchmarks | the teacher signal arrives after deployment — continual by construction |
| Denser ≠ Better (Wang et al. 2026) | SDPO vs GRPO under sequential domains | student | SDPO forgets more than GRPO; larger drift in parameter and response space; "intermediate-distance interference" | StableSDPO: freeze / restart the teacher. The cautionary result for the whole family |
| Feedback Alignment in Self-Distillation (2026) · Pass-Rate-Weighted SD (2026) · Early-Stopping Rollout for OPD (2026) | SDPO-style | student | when the feedback-conditioned teacher actually agrees with the outcome; weighting by pass rate; shorter rollouts suffice | the knobs that keep the loop from chasing itself |
| Frontier reports: Kimi K3 (MOPD), DeepSeek V4, GLM-5 | own larger / earlier checkpoints | student | on-policy distillation as a named stage, incl. across stages | see the report diff for per-model detail |
Everything on this page is from public papers and posts. Nothing here draws on unpublished material.