Critique-Guided On-Policy Distillation
When a teacher cannot reliably continue a student's flawed solution, CriticOPD asks it to identify errors and fixes, then trains from a student-authored rewrite scored with critique context.
Read the paper ↗What it is
- Error critique The teacher identifies incorrect parts of a student solution and gives a short fix for each one.
- Student rewrite The student keeps its work up to the last identified error, then writes a new continuation with the critique available.
- Feedback distillation The teacher scores the rewrite with the critique in view, while the student is trained without seeing that critique.
Why it matters
The teacher may be unreliable when continuing from a student's error. CriticOPD uses feedback to create a student-written continuation that the teacher can score more usefully, while keeping feedback out of inference.
Before the mechanics, here is the short version: when a student's solution goes wrong, the teacher points out the errors and suggests fixes. The student then rewrites from the last identified error with those notes in view, and the teacher scores that rewrite while still seeing the notes. This aims to make supervision useful without making the student depend on notes at inference.
-
Recoverability: A teacher can struggle to continue correctly from a student state after an error, even if it can recognize what went wrong. The canonical example is a solution with a faulty algebra step: continuing from the mistaken result may compound it, while naming the faulty step gives a clear place to recover. The analogy is a route correction: knowing where you left the road helps, but it does not mean every route from there is easy to navigate.
-
Keep the student's trajectory: The teacher critiques a solution written in numbered paragraphs, identifying each erroneous sentence and offering a short fix. The critique also includes the reference answer. The canonical example in the paper is a math solution with two errors: the critique flags both, and the student starts its rewrite at the later one. More generally, this preserves the student's own prefix instead of replacing the whole solution with teacher-authored text.
So the real question was never just whether the teacher can spot an error — where should the rewrite begin? The student keeps its prefix through the paragraph of the last identified error and discards the remainder. Think of a notebook: you preserve the pages up to the last marked mistake and rewrite from there. Unlike fading a whole page, this does not erase earlier work; it chooses a specific restart point. If the critique has no complete error, the rollout uses standard OPD instead.
- Student-authored rewrite: The student appends the critique to the retained prefix and generates a fresh suffix. In the example, the student corrects the later error and reaches the reference answer. This matters because the student writes every token of the training sequence; the teacher is not taking over the continuation. The critique is a temporary scaffold for generating a better on-policy continuation.
But if the student sees the critique while writing, how can training leave it out later? The teacher scores rewritten suffix tokens with the critique in context, while the student's probability is computed without it. In mechanism terms, the teacher's feedback says how plausible the sampled token is given both the current rewritten prefix and the correction; the student is asked to learn from that signal using only its ordinary context. Only the rewritten suffix gets this feedback supervision, because the retained prefix still contains the errors. The update is described as a surrogate rather than an unbiased gradient, since the suffix was sampled with context absent from the student's scoring context.
Overall, I like the clean separation between who writes and who evaluates: the student owns the rewrite, while the teacher gets privileged context to judge it. The cost is a mismatch between the context used to sample the rewrite and the context used to train the student. The student needs no critique at inference, but will this feedback-conditioned target remain useful when that scaffold is gone?
Read the deep dive
Why People Wanted It
On-policy distillation asks a teacher to supervise continuations from states the student actually reaches. But after the student makes an error, the teacher may no longer be reliable at continuing from that state. Simply handing the trajectory to the teacher to repair changes who wrote the training tokens; ignoring the bad region leaves the student without useful guidance. So the real question is: can we keep the student's trajectory, make the problematic part recoverable, and give it supervision that is reliable without requiring feedback at inference?
The Core Move
CriticOPD has the teacher identify errors and actionable fixes, lets the student rewrite from the last identified error with that critique in context, and has the teacher score the rewritten suffix with the critique visible while the student is scored without it.
The key distinction is that the critique changes the teacher's target context, not the student's inference-time context. No new closed-form objective is needed here: the source gives the sampled-token advantage and states that the overall objective combines standard OPD with feedback distillation.
Why the Last Error Sets the Cut Point
Here is the part that gets technical: the retained prefix is chosen to preserve the student's history up to the paragraph containing the last error, while discarding everything after it. The critique lists each error's paragraph index, erroneous sentence, and short fix, and also includes the reference answer. If there is no complete error in the critique, the rollout instead receives standard OPD.
The retained prefix is denoted . In words, it contains the problem and the original student tokens before the cut point. The rewrite begins at the last identified error so that it starts from the erroneous states the critique addresses; the prefix itself is not rewritten.
Why the Student Must Write the Rewrite
Now the version for readers who want more of the machinery: the student appends the critique to the retained prefix and samples a new suffix. The tokens before the cut remain unchanged, and the student—not the teacher—writes every token in the revised training sequence. The concrete example in the paper has two identified errors: the rewrite starts at the later one and uses the critique to reach the correct answer.
This is a deliberate boundary. The teacher supplies an error diagnosis and later a score, but does not author the replacement suffix. Why score that student-authored suffix with feedback still attached?
Why Feedback Changes the Teacher Target, Not the Student Input
Here is the technical distinction that matters: the teacher evaluates each rewritten suffix token with the critique in context, while the student's log-probability is computed from the same rewritten prefix without the critique. The source gives the sampled-token advantage as . In words, it compares the teacher's probability with critique visible against the student's probability without critique.
Only rewritten suffix tokens receive this feedback supervision; the retained prefix still contains the errors that motivated the cut. Because the suffix was sampled with critique context but the student's probability is computed without it, the update is a surrogate, not an unbiased gradient of the corresponding objective. Correct rollouts and rollouts without a valid critique use standard OPD; CriticOPD's overall loss combines that term with feedback distillation, with each rollout entering one term.
The distinction lets the student learn a continuation from privileged guidance without needing that guidance at inference. What tradeoff comes with asking the student to learn from a suffix sampled under context it will not have later?
Minimal Causal Code
This loop makes the context asymmetry and suffix-only update explicit. teacher_score and student_logprob stand in for model calls; they are not optimized for speed.
for rollout in batch:
if rollout.is_correct or not rollout.has_valid_critique:
for token in rollout.tokens:
loss += opd_loss(rollout.prefix_before(token), token)
continue
prefix = rollout.tokens_before(rollout.last_error_cut)
critique = rollout.critique
suffix = student.sample_suffix(prefix, extra_context=critique)
for token in suffix:
teacher_lp = teacher.logprob(prefix, token, extra_context=critique)
student_lp = student.logprob(prefix, token)
advantage = teacher_lp - student_lp
loss += feedback_distillation_loss(student_lp, advantage)
prefix = prefix + [token]
What You Gain, and What You Lose
The method keeps the student's own rollout states and has the student author the rewritten sequence, while critique context gives the teacher a more useful basis for scoring the suffix. It also leaves the student without critique at inference, so the training signal and inference context are intentionally different. That makes the feedback update a surrogate rather than an unbiased gradient, and the method depends on critiques that identify complete errors and fixes. The design is not simply standard OPD made faster: it changes the rewrite, the teacher's context, and which suffix tokens receive feedback supervision.
CriticOPD lets the student rewrite its own mistake while the teacher scores that rewrite with a critique the student will not need at inference.