#Think SFT 的 Off-Policy 问题:从反思轨迹到 On-Policy Distillation 的研究线
#0. 一句话核心结论
你的直觉是对的:把另一个模型生成的 <think>、反思、回退、搜索轨迹直接拿来给原模型做 SFT,本质上有明显的 off-policy 问题。
更具体地说:
- 普通答案 SFT 学的是“输入 -> 输出”的静态映射;
- Think SFT 学的是“在一串中间状态里如何继续想、何时反思、何时回退、何时修正”;
- 这些中间状态如果不是学生模型自己会走到的状态,而是强 teacher / 搜索器 / 另一个模型走出来的状态,那么学生在训练时看到的是 teacher 的状态分布,推理时却落在自己的状态分布里;
- 一旦学生自己的前缀偏离 teacher 前缀,后面的“反思”文本可能就不再是可执行的推理策略,而变成一种表面模仿:看起来会反思,但不知道为什么反思、在哪里反思、反思后如何改变行动。
所以这条研究线的核心问题不是“要不要 SFT reasoning trace”,而是:
如何让模型在自己的推理分布上学习 reasoning,而不是在别人的 reasoning 分布上背诵 reasoning 的样子?
目前最贴近这个问题的前沿主线是 On-Policy Distillation, OPD,以及它和 reasoning RL、search-trace training、process supervision、agent step-wise training 的交叉。
#1. 先把问题说人话:为什么 Think SFT 比普通 SFT 更容易 off-policy?
普通 SFT 的 off-policy 问题已经存在:训练数据来自人类或 teacher,推理时模型自己生成。但在普通回答里,错位主要发生在最终输出层面。
Think SFT 更麻烦,因为 <think> 不是一个普通输出,而是一条决策过程轨迹。
一条 reasoning trace 里往往包含:
- 当前问题理解;
- 子目标分解;
- 中间推导;
- 不确定性判断;
- 发现错误;
- 反思;
- 回退;
- 换策略;
- 停止思考并输出答案。
这些东西本质上都是 policy 的一部分。它们不是“解释文本”,而更像 agent 的 action trajectory。
如果 teacher 生成了:
我先尝试方法 A。
发现 A 在第 3 步有矛盾。
所以回退,改用方法 B。
这对 teacher 来说可能是合理的,因为 teacher 真的走到了“第 3 步矛盾”这个状态。但学生模型未必会:
- 它可能第一步就没理解题;
- 它可能不会发现第 3 步矛盾;
- 它可能发现的是另一个错误;
- 它可能根本不需要回退;
- 它可能在 teacher 的中间状态上没有足够概率支持。
于是 SFT 训练就变成:在一个学生自己不会自然到达的状态上,强迫学生模仿 teacher 下一步。
这就是 Think SFT 里的 off-policy 核心。
一个更直观的类比:
你不能只拿职业棋手的复盘笔记训练初学者,然后期待初学者在自己乱下出来的局面里也能复盘。因为职业棋手的“反思”发生在职业棋手会走到的局面上,而初学者真正需要的是:在自己会犯错的局面里,知道哪里错、怎么救、什么时候该放弃这条线。
#2. 这条研究线的祖先:从 imitation learning 的 distribution mismatch 开始
这个问题在 LLM 里看起来新,其实在 imitation learning 里很老。
#2.1 Behavior Cloning 的老问题
Behavior Cloning 就是拿 expert trajectory 做监督学习。问题是:训练时模型只见 expert 状态,测试时一旦模型犯一点小错,就会进入 expert 数据里很少出现的状态。之后错误会滚雪球。
这就是经典 exposure bias / covariate shift。
#2.2 DAgger 的关键思想
DAgger 的核心思想是:不要只在 expert 状态上学,而要让 learner 自己跑,收集 learner 会到达的状态,再请 expert 在这些状态上给动作。
用今天的语言说就是:
student goes where it naturally goes; teacher teaches there.
这句话几乎就是 OPD 的核心。
#2.3 为什么这对 LLM reasoning 特别重要?
因为 reasoning 是自回归的。每个 token / step 都会改变后续状态。
在 Think SFT 中,前面一个错误的 reasoning token 会改变后面所有“反思”的语境。teacher 在自己正确前缀下的反思,不一定适用于 student 错误前缀下的反思。
所以,LLM reasoning 里的 off-policy 问题不是小瑕疵,而是结构性问题。
#3. 第一阶段:CoT / STaR —— 先证明“推理轨迹可以训练”
#3.1 Chain-of-Thought:把中间计算显式写出来
Chain-of-Thought Prompting 和 Zero-shot CoT 证明了一件事:让模型把中间步骤写出来,确实能释放部分推理能力。
但 CoT 本身没有解决 off-policy 问题。它只是让 reasoning trace 变成可见文本。
#3.2 STaR:模型能否用自己生成的 rationale 训练自己?
STaR: Bootstrapping Reasoning With Reasoning 提出了一个闭环:
当前模型生成 rationale -> 检查答案是否正确 -> 保留能导向正确答案的 rationale -> 微调模型 -> 重复
它的重要性在于:它不只是“拿 teacher CoT 做 SFT”,而是开始让模型参与生成自己的 reasoning data。
但 STaR 仍然有几个关键限制:
- 依赖答案可验证;
- 正确答案不代表 reasoning process 真正确;
- 错误样本怎么用还不清楚;
- 生成-过滤-训练可能造成模式坍缩;
- 很多 rationale 可能是 post-hoc rationalization。
#3.3 Quiet-STaR:从 QA rationale 走向“思考再说话”
Quiet-STaR 进一步把 thinking 推到普通语言建模里:模型在预测 token 前生成内部 thought,再用对未来 token likelihood 有帮助的 thought 来训练。
它对 Think SFT 的启发是:reasoning trace 不一定只是数学题步骤,也可能是更一般的“隐含计算”。
但它也暴露一个更深的问题:
如果 thought 是模型自己生成的,它到底是 causally useful 的中间计算,还是只是对输出的语言化装饰?
这正是后面 process supervision、RL、OPD 要继续解决的问题。
#4. 第二阶段:反思不是魔法,反馈才是关键
很多 early reasoning/agent 工作都让模型“反思”:Self-Refine、Reflexion、Tree of Thoughts、Chain-of-Verification 等。
这些工作很重要,但它们共同说明了一件事:
反思本身不是能力来源;可验证反馈、环境反馈、搜索结构、评估器才是能力来源。
#4.1 纯 self-correction 的局限
Large Language Models Cannot Self-Correct Reasoning Yet 这类工作指出:如果没有外部反馈,仅仅让模型“再想想”“检查一下”,经常不能可靠提升,甚至会改错。
原因很简单:如果模型第一次没看出问题,第二次在没有新信息的情况下,也未必真的能看出。它可能只是生成更长、更像反思的文本。
#4.2 Process supervision:从最终答案监督到过程监督
Let's Verify Step by Step 把问题推进了一步:不要只看最终答案,要给中间步骤反馈。过程奖励模型 PRM 可以帮助模型知道哪一步错了。
这对 Think SFT 很关键,因为它说明:
- reasoning trace 不是越长越好;
- 中间过程需要可评估;
- “反思”必须和某种 error detection / verifier 绑定。
#4.3 Search trace:错误和回退可以是有价值的数据,但不是所有错误都有价值
Stream of Search 把搜索过程线性化为语言,让模型看到探索、剪枝、回退、目标检查等完整过程。它的关键洞察是:训练数据里不应该只有最优路径,也应该有“可恢复的错误”和“为什么回退”的结构。
这点非常贴近你的问题。
如果一个 Think SFT 数据里包含反思/回退,它有两种可能:
- 无意义反思:teacher 写了一段“哦我错了”,但学生并不知道哪里错;
- 搜索结构反思:轨迹清楚展示了哪个状态失败、失败信号是什么、回退到哪里、换什么策略。
只有第二种才可能真正训练 reasoning control。
一句话:
错误本身没有价值,有价值的是可诊断、可恢复、能暴露搜索结构的错误。
#5. 第三阶段:RL reasoning —— 不再模仿反思,而是让反思在奖励下涌现
DeepSeek-R1 之后,一个重要转向是:与其 SFT 别人的长 CoT,不如通过 RL 在可验证任务上激励模型自己形成 long reasoning、verification、reflection、backtracking 等模式。
DeepSeek-R1 的核心意义不是“它写了很长 think”,而是:
它表明 reasoning pattern 可以在 outcome reward 下从模型自己的 rollout 中涌现出来,而不完全依赖人工/teacher reasoning trace。
这缓解了 Think SFT 的 off-policy 问题,因为训练信号来自 student 自己生成的轨迹。
但 RL 也有自己的问题:
- outcome reward 太稀疏;
- credit assignment 很难;
- 长轨迹训练成本高;
- reward hacking;
- 反思可能变成冗长 overthinking;
- 对不可验证任务不友好。
所以,OPD 的吸引力出现了:
能不能既像 RL 一样用 student 的 on-policy rollout,又像 distillation/SFT 一样给 dense teacher signal?
#6. 第四阶段:On-Policy Distillation —— 直接瞄准 Think SFT 的 off-policy 病灶
#6.1 OPD 的基本定义
严格的 LLM OPD 有两个条件:
- student 自己采样轨迹:
y ~ pi_student(.|x); - teacher 在 student 走到的轨迹/前缀上提供监督:token logits、KL、verbal feedback、rubric、step-level correction 等。
人话版:
不是让学生背老师的解题过程,而是让学生先按自己的方式解,老师在学生真实会走到的地方纠正它。
这正好回答你的问题:Think SFT 的 off-policy 问题,最直接的解决范式就是从 offline teacher trace SFT 转向 OPD / on-policy reasoning training。
#6.2 MiniLLM 和 GKD:LLM OPD 的早期节点
MiniLLM 和 GKD / On-Policy Distillation of Language Models 是 LLM OPD 的早期代表。
它们要解决的是 autoregressive KD 的 distribution mismatch:传统 KD 在固定 teacher/human 序列上训练,但 student 推理时会生成自己的序列;一旦 student 前缀偏了,teacher 数据里的 next token 就不适用了。
GKD 的标题很直白:Learning from Self-Generated Mistakes。也就是让 student 生成自己的输出,再让 teacher 在这些输出上提供反馈。
这和 Think SFT 的关系非常直接:
- 普通 KD 的 mismatch 是 output sequence mismatch;
- Think SFT 的 mismatch 是 reasoning state mismatch;
- OPD 把训练分布改成 student-visited states,至少先把“在哪里学”这件事修正了。
#6.3 Qwen3 / Thinking Machines:OPD 变成 post-training 工程范式
到 2025-2026,OPD 开始从论文概念变成大模型 post-training recipe。
一些工业实践采用类似流程:
- 先用 off-policy SFT / distillation 做 cold start;
- 再让 student rollout;
- teacher 在 student rollout 上给 logit/KL/feedback;
- 结合 RL 或 verifier 继续优化。
这说明业界已经意识到:纯 off-policy SFT 不够,尤其是 reasoning/post-training 阶段。
#7. 最新进展:OPD 也不是银弹,它暴露了更细的研究问题
OPD 把分布从 teacher trace 拉回 student rollout,但它没有自动解决所有问题。2026 年的很多新工作,正是在研究 OPD 的失败模式。
#7.1 Rethinking OPD:什么时候 OPD 成功?
Rethinking On-Policy Distillation of Large Language Models 指出 OPD 成功至少需要两个条件:
- student 和 teacher 有兼容的 thinking patterns;
- teacher 必须提供 student 没见过的真正新能力。
这非常关键。
它意味着:不是任何强 teacher 都能教任何弱 student。如果 teacher 的 reasoning 风格和 student 完全不兼容,teacher 在 student 前缀上的信号可能并不可学。
这和你的问题里的“另一个模型的反思能不能直接 SFT”高度一致:
问题不只是 teacher 对不对,而是 student 能不能在自己的能力边界附近吸收这种 thinking pattern。
#7.2 Revisiting OPD:student 前缀漂移后,teacher 也可能不可靠
Revisiting On-Policy Distillation 指出:标准 OPD 的 token-level log-ratio / KL 在长 rollout 上会变得脆弱。原因是 student 前缀逐渐 drift 到 teacher 不熟悉的区域,teacher 在这些 off-manifold prefix 上的 token 分布可能不可靠。
这带来一个微妙但重要的结论:
OPD 解决了“数据是不是 student 自己走出来”的问题,但没有保证“teacher 在这些 student 状态上的反馈一定可靠”。
对 Think SFT 来说,这说明最合理的训练不是简单二选一:
- offline teacher trace SFT:off-policy;
- vanilla OPD:on-policy 但 teacher 可能在坏前缀上不可靠。
真正需要的是:识别哪些 student states 是可教的、可修复的、值得 distill 的。
#7.3 Entropy-Aware OPD:teacher 不确定时,反向 KL 会过度模式坍缩
很多 OPD 用 reverse KL,因为它倾向于追 teacher 高概率模式。但 Entropy-Aware OPD 指出:当 teacher 本身高熵、不确定时,reverse KL 会压缩多样性,导致不稳定。
这对 reasoning 很重要,因为复杂推理往往有多条正确路径。强行让 student 模仿 teacher 的单一路径,可能会压掉学生自己的有效策略。
对应到 Think SFT:
如果一个题有多种正确 reasoning path,那么 teacher 的
<think>不是唯一真理。把它当唯一标签 SFT,可能不是提升 reasoning,而是在削弱 reasoning 多样性。
#7.4 SCOPE / Uni-OPD:从“统一 KL”走向信号校准
SCOPE 提出按轨迹正确性走双路径:
- 对错误轨迹,用 teacher 监督修正;
- 对正确轨迹,不一定强迫它完全贴近 teacher,而要保留 student 的有效行为。
Uni-OPD 则强调两个瓶颈:
- student 对 informative states 探索不足;
- teacher 对 student rollouts 的监督不可靠。
这两点基本把 Think SFT 的核心难题说穿了:
- 不能只喂 teacher trace,要让 student 探索自己的边界状态;
- 不能 teacher 说什么都学,要校准 teacher signal 是否可靠、是否可学。
#7.5 SOD / TCOD:Agent 和工具调用里,token-level OPD 不够
SOD: Step-wise On-policy Distillation for Small Language Model Agents 研究 tool-integrated reasoning,发现 vanilla OPD 用在工具推理上会有错误级联:一次错误工具调用会让后续状态全部偏掉,teacher token-level supervision 变得越来越没用。
TCOD 则在 multi-turn autonomous agents 中提出 Trajectory-Level KL Instability:多轮错误积累会把 student 推到 teacher 有效支持之外,导致 KL 不稳定、成功率下降。
这对 LLM Agent 特别关键:
Agent 的 think/action/observation 轨迹不是普通文本。一步错工具调用会改变外部环境和后续观测。此时 “teacher 的下一 token” 往往不是合适监督,必须上升到 step-level、turn-level、trajectory-level。
#7.6 TRD:从 token-level loss 干预走向 trajectory-level correction
Trajectory-Refined Distillation 进一步指出 OPD 中常见 prefix failure:一旦前缀失败,dense per-token supervision 可能诱导碎片化梯度。它主张从 token-level loss reweighting 转向 trajectory-level output correction。
这很符合 Think SFT 的直觉:反思不是某个 token 对不对,而是整条轨迹是否在一个可修复的路径上。
#8. 回到你的问题:Think SFT 中的“反思”到底应该怎么训练?
我觉得可以把方法分成四类。
#8.1 最弱方案:直接 SFT teacher <think>
这是最常见、也最有问题的做法。
优点:
- 简单;
- 便宜;
- 容易做 cold start;
- 能让模型学会格式和基本 reasoning 风格。
问题:
- off-policy;
- 反思可能是 teacher 状态下的反思;
- 学生不知道何时反思;
- 可能学到表面话术;
- 会压制 student 自己的正确路径;
- 对长 agent 轨迹尤其危险。
我的判断:它适合作为 cold start,不适合作为最终 reasoning 训练范式。
#8.2 改进方案:filter / verifier / process reward 筛选 reasoning trace
这类方法会筛掉错误答案、低质量过程,或用 PRM 标注中间步骤。
它比直接 SFT 好,因为它至少知道哪些 trace 有 outcome/process 支持。
但它仍可能 off-policy:即使 trace 是正确的,也不代表学生会走到这个状态,或者能从这个状态学会策略。
#8.3 更强方案:student rollout + teacher/PRM 修正
这就是 OPD / on-policy reasoning distillation。
流程类似:
给任务 x
student 生成自己的 think/action trajectory
verifier/teacher/PRM 判断哪里好、哪里坏
只在可修复/关键/高价值状态上给监督
更新 student
这里的重点不是“teacher 比 student 强”,而是 teacher 的反馈发生在 student 自己会到达的状态上。
#8.4 最有研究价值的方案:learnability-aware / decision-sufficient OPD
我认为下一步最有价值的问题是:
不是所有 student states 都应该被 teacher distill。真正应该学的是学生能力边界附近、可修复、对最终决策有影响的状态。
可以把 student rollout 状态分成四类:
| 状态类型 | 应该怎么处理 |
|---|---|
| 已掌握状态 | 不必强迫贴 teacher,可 self-distill 或低权重 |
| 可学习边界状态 | 最值得 teacher/PRM 监督 |
| 不可修复 off-manifold 状态 | 不应继续 token KL,应该回退、重置或定位早期错误 |
| productive divergence | 如果 student 路径正确但不同于 teacher,应保留,不要压掉 |
这比 vanilla OPD 更接近真正的 reasoning 训练。
#9. 一条清晰的发展脉络
可以把这条线概括成 6 个阶段。
#阶段一:CoT scratchpad
问题:模型黑箱输出,复杂推理难。
做法:让模型写中间步骤。
新问题:中间步骤不一定可靠,也不一定 causally faithful。
#阶段二:STaR / self-training
问题:人工 rationale 太贵。
做法:模型自己生成 rationale,靠答案正确性筛选。
新问题:正确答案不等于正确过程;自训练可能坍缩。
#阶段三:reflection / search / verifier
问题:单一路径 CoT 容易错。
做法:引入自检、搜索、回退、verifier、process supervision。
新问题:没有反馈的反思不可靠;搜索 trace 怎么训练仍不清楚。
#阶段四:RL reasoning
问题:模仿 teacher trace 有 off-policy 问题。
做法:让模型在自己 rollout 上通过 reward 学 reasoning。
新问题:reward 稀疏,credit assignment 难,训练成本高。
#阶段五:OPD
问题:RL 太稀疏,SFT 太 off-policy。
做法:student rollout + teacher dense supervision。
新问题:teacher 在 student 坏前缀上可能不可靠;token-level KL 不一定对齐 task success。
#阶段六:Agent / trajectory-level / learnability-aware OPD
问题:长轨迹 agent 中 token 级监督太细,最终 reward 太粗。
做法:step-level、turn-level、trajectory-level、decision-level 的 on-policy 监督;识别可学习状态和关键决策点。
新问题:如何定义“可学习”“可修复”“关键决策”“productive divergence”?这正是前沿。
#10. 我认为最值得做的研究问题
结合你的兴趣——LLM Agent、长轨迹 RL、model-based RL、latent reasoning——我觉得这里有几条很强的研究线。
#10.1 Learnability-Aware OPD:学生能力边界上的蒸馏
核心问题:teacher signal 是否可靠还不够,关键是 student 是否可学。
可以定义一个 learnability score:
- student uncertainty;
- teacher entropy;
- student-teacher support overlap;
- verifier outcome sensitivity;
- prefix repairability;
- 多次 rollout 是否能自发接近正确;
- teacher critique 是否稳定。
然后只对 learnable boundary states 加大监督。
#10.2 Productive Divergence OPD:不要压掉学生自己的正确路径
在代码生成、数学、多解任务中,student 可能走出和 teacher 不同但正确的路径。vanilla KL 会惩罚这种差异。
一个很好的实验场景是 code:
- student solution 和 teacher solution token KL 很高;
- 但 unit tests pass;
- vanilla OPD 可能把这种有效多样性压掉;
- productive-divergence-aware OPD 应该保留它。
#10.3 Repairability-Aware OPD:不是所有错前缀都该继续学
对于错误 reasoning prefix,关键不是“teacher 下一 token 是什么”,而是:
- 这个 prefix 还能不能救?
- 如果能救,应该在哪里插入反思?
- 如果不能救,应该回退到哪个 earliest error?
这可以把 reflection/backtracking 和 OPD 结合起来。
#10.4 Decision-Sufficient OPD:只蒸馏真正影响决策的 thought
Think trace 很长,但不是每个 token 都重要。对 Agent 来说,真正关键的是:
- 选哪个子目标;
- 调哪个工具;
- 是否相信 observation;
- 是否继续搜索;
- 是否回退;
- 何时停止。
所以应该蒸馏 decision-sufficient states,而不是全 token KL。
这也自然连接 latent reasoning:也许真正该学的不是表面 <think> 文本,而是能支持这些决策的 latent task state。
#10.5 Model-Based OPD:用 imagined states 扩展学生分布
如果 student 只能在自己当前分布里探索,可能到不了高价值状态。可以引入 world model / outcome model:
student 当前策略 -> imagined rollouts -> 识别边界/高价值状态 -> teacher/verifier 标注 -> distill 回 student
这会把 OPD 和 model-based RL 接起来,也是你一直关心的方向。
#11. 结论:Think SFT 的核心不在 think,而在 state distribution
最后总结成几句话:
- 带反思的 Think SFT 确实有 off-policy 问题,而且比普通 SFT 更严重,因为它模仿的是中间决策过程。
- 直接 SFT teacher
<think>适合 cold start,但不适合作为最终 reasoning 能力来源。 - 反思不是魔法,反馈才是关键。没有 verifier、环境反馈、过程监督或可检测约束的反思,容易变成话术。
- OPD 是目前最贴近这个问题的研究主线:让学生在自己的轨迹上学习,而不是背 teacher 的轨迹。
- 最新前沿已经从“要不要 OPD”转向“哪些 student states 值得学、teacher signal 何时可靠、token-level KL 是否足够、agent 长轨迹如何做 step/trajectory-level supervision”。
- 最有潜力的下一步是 learnability-aware、repairability-aware、decision-sufficient、model-based / latent OPD。
如果用一句更研究化的话说:
Reasoning SFT 的关键瓶颈不是缺少更漂亮的
<think>数据,而是缺少一种能在学生自身状态分布上识别、评估、修复并蒸馏关键推理决策的训练范式。
这就是我认为这条研究线真正值得继续往下挖的地方。
#参考节点
- Chain-of-Thought Prompting, 2022
- STaR: Bootstrapping Reasoning With Reasoning, arXiv:2203.14465
- Let's Verify Step by Step, arXiv:2305.20050
- Large Language Models Cannot Self-Correct Reasoning Yet, arXiv:2310.01798
- MiniLLM: On-Policy Distillation of Large Language Models, arXiv:2306.08543
- On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes / GKD, arXiv:2306.13649
- Quiet-STaR, arXiv:2403.09629
- Stream of Search, arXiv:2404.03683
- DeepSeek-R1, arXiv:2501.12948
- Self-Backtracking, arXiv:2502.04404
- Scaling up Test-Time Compute with Latent Reasoning, arXiv:2502.05171
- To Backtrack or Not to Backtrack, arXiv:2504.07052
- How Much Backtracking is Enough?, arXiv:2505.24273
- Entropy-Aware On-Policy Distillation, arXiv:2603.07079
- Revisiting On-Policy Distillation, arXiv:2603.25562
- Rethinking On-Policy Distillation, arXiv:2604.13016
- SCOPE, arXiv:2604.10688
- TCOD, arXiv:2604.24005
- Uni-OPD, arXiv:2605.03677
- SOD: Step-wise On-policy Distillation for Small Language Model Agents, arXiv:2605.07725
- Trajectory-Refined Distillation, arXiv:2606.08432
- The Value Axis, arXiv:2606.17056