![]()
Mira 的THINKING MACHINES又整了一个大活,开源了一个非常牛逼的的LLM后训练方法:On-Policy Distillation (在线策略蒸馏)
这是博客文章:
https://thinkingmachines.ai/blog/on-policy-distillation/
![]()
简单来说在线策略蒸馏巧妙地结合了两种主流后训练范式的优点:它既有强化学习等在线策略方法的相关性和可靠性,能够让模型从自身的错误中学习;又具备监督微调 (SFT) 等离线策略 (Off-policy) 方法的数据效率,通过密集的监督信号加速学习过程
在线策略蒸馏是一种兼具性能与成本效益的强大技术,尤其适用于为小型、专业化的模型赋予前沿能力,例如在数学推理和企业知识个性化等场景中。它通过将一个更强大的教师模型用作过程奖励模型,在不牺牲训练稳定性的前提下,极大地提升了训练效率,并为模型的持续学习和个性化定制开辟了新的可能性
特别值得一提的是THINKING MACHINES这个在线策略蒸馏方法在最新的实践中使用 自家的Tinker训练 API,复制了 Qwen3 的结果,即在推理基准上通过在线策略蒸馏实现同等性能,而成本仅为 RL 的一小部分,比如数学推理能力计算成本降低了惊人的 9 到 30 倍。而在线策略蒸馏方法综合计算效率提高了恐怖的50到100倍
个人感觉这个在线策略蒸馏是解决 RL“通过吸管汲取监督信号,”(由大神karpathy 创造的概念,可以看我之前的文章)的一个潜在方向,感兴趣的继续往下看
以下是详细解读
模型的后训练:在强化学习与监督微调之间的权衡
语言模型,特别是大型语言模型,其强大的专业领域能力并非一蹴而就,而是通过一系列精心设计的训练阶段堆叠而成的。这个过程大致可以分为三个核心阶段:
预训练 (Pre-training): 这是模型学习基础能力的阶段。通过处理海量的文本数据,模型掌握了语言的使用规律、广泛的推理能力和基础的世界知识
中训练 (Mid-training): 这个阶段旨在向模型注入特定的领域知识。例如,通过训练代码、医疗数据库或公司内部文档,让模型成为特定领域的专家
后训练 (Post-training): 这是最后也是至关重要的一步,旨在引导模型产生特定的、有用的行为,比如遵循指令、解决数学问题或进行流畅的对话
在后训练阶段,我们通常面临两种主要的训练范式选择:在线策略 (On-policy) 训练和离线策略 (Off-policy) 训练。这两种方法各有优劣,理解它们的差异是理解在线策略蒸馏价值的关键
在线策略训练 (On-policy training) 的典型代表是强化学习 (Reinforcement learning, RL)。在这种模式下,学生模型自行生成完整的行为序列,称为 rollout。然后,系统会根据这个序列的最终结果给予一个奖励。例如,在解决数学问题 What is 5 + (2 x 3)? 时,学生模型可能会生成错误的计算过程 5 + 2 is 7, and 7 x 3 is 21。由于最终答案 21 是错误的,系统会给予一个零奖励或负奖励。这种方法的优点在于,模型直接从自己产生的样本中学习,能够更直接地学会避免自己常犯的错误。然而,它的主要缺点是奖励信号极其稀疏。模型只知道最终结果是错的,但无法得知错误究竟出在哪一步:是运算顺序错了,还是算术本身出错了?这种反馈的稀疏性导致强化学习的效率在许多应用中都非常低下,因为它在每个训练回合中只能学到固定数量的信息,而与解决问题所需的token数量无关
离线策略训练 (Off-policy training) 则依赖于一个外部数据源。最常见的形式是监督微调 (Supervised fine-tuning, SFT) 和知识蒸馏 (Distillation)。在这种模式下,我们使用一个强大的、已经验证过能力的教师模型来生成大量高质量的、带有正确步骤的示例。学生模型的目标是学习模仿这些教师轨迹。例如,对于同一个数学问题,教师模型会生成正确的步骤 2 x 3 equals 6, add 5 to get 11。学生模型在训练时,会被鼓励在每一步都生成与教师模型相同的token。这种方法的优点是提供了密集的监督信号,学生在每一步都能得到明确的指导,学习效率很高。然而,它的核心缺陷在于,学生只在教师模型经常遇到的上下文中学习。一旦学生在实际应用中犯了一个教师从未犯过的早期错误,它就会进入一个完全陌生的状态,导致后续错误不断累积和放大,即复合误差 (Compounding error)。此外,研究发现,学生模型有时只会模仿教师的风格和自信度,而未必能学到其真正的知识准确性
为了更形象地理解这两种方法的困境,我们可以用学习下棋来类比:
![]()
在线策略的强化学习 就像自己和自己下棋,没有任何指导。你只有在整盘棋下完后,通过输赢这一个信号来学习。虽然反馈直接与你的行为相关,但你很难知道究竟是哪几步棋导致了最终的胜负
离线策略的蒸馏 就像观看特级大师的棋局录像。你看到的是最高水平的棋步,但这些棋步都发生在普通玩家几乎永远不会遇到的复杂棋局状态下。你很难将这些学习应用到自己的实战中
显然,我们需要一种方法,既能像在线策略一样让模型在自己的棋局中学习,又能像离线策略一样,在每一步棋后都能得到大师级的密集指导。这,正是在线策略蒸馏 (On-policy distillation) 旨在解决的问题
在线策略蒸馏:结合两种范式的最佳实践
在线策略蒸馏的核心思想非常直观:它将在线策略的自主探索与离线策略的密集监督结合起来,创造了一个“两全其美”的训练框架。其工作流程旨在让学生模型在自己生成的轨迹上学习,但每一步都由一个更强大的教师模型进行细致的评分和指导。
该方法具体的工作流程可以分解为以下几个步骤,其实现通常基于现有的强化学习脚本:
1.初始化教师客户端: 首先,我们需要一个高性能的教师模型。这个模型可以是规模更大、能力更强的通用模型,也可以是经过专门训练的专家模型。在实现上,我们为这个教师模型创建一个独立的客户端,它只负责计算概率,而不需要进行反向传播更新梯度
2.学生模型采样轨迹: 与标准的强化学习一样,我们让学生模型根据给定的提示 (Prompt) 自主生成一系列完整的回答或行为序列 (Rollouts)。在生成过程中,我们会记录下学生模型在每一步选择每个token的对数概率(logprobs)
3.教师模型计算奖励: 这一步是在线策略蒸馏的关键。我们将学生模型生成的轨迹,原封不动地交给教师模型。教师模型会对这个轨迹的每一个token进行评估,计算出在相同的上下文下,它自己生成这个token的对数概率。然后,通过学生和教师的对数概率之差,我们可以计算出两者在每一步的分歧 (Divergence)。
4.使用分歧作为奖励进行训练: 我们将这个逐词计算出的分歧作为奖励信号,来更新学生模型。具体来说,我们使用负的逆向KL散度 (Negative reverse KL divergence) 作为优势函数。逆向KL散度 是衡量学生策略分布与教师策略分布差异的指标。当学生模型的行为与教师模型一致时,KL散度为零;当学生模型的选择与教师模型的期望相差甚远时,KL散度会变得很大,从而产生一个强烈的负面奖励(惩罚)。学生模型的目标就是通过训练,最小化这个KL散度
这种方法使用的损失函数,即逆向KL散度,具有两个非常优秀的特性:
不可被利用: 在传统的强化学习中,奖励模型可能会被利用(Reward hacking),即模型学会用一些投机取巧的方式获得高分,但并未真正掌握任务。而逆向KL散度直接与教师模型的期望行为挂钩,低KL散度总是意味着学生的行为更接近教师的期望,不存在被利用的空间
模式寻求: 它会驱使学生模型学习教师模型那种特定的、高质量的行为模式,而不是在多个次优选择之间摇摆不定,从而使学习过程更加稳定和聚焦。
让我们通过一个具体的例子来理解这个过程。在一个需要物理常识的数学问题中,学生模型 Qwen3-4B-Instruct-2507 忽略了“冰块在煎锅里会融化”这一关键物理背景,错误地将其当作纯数学计算,并得出答案20。教师模型 Qwen3-235B-A22B-Instruct-2507 则能正确理解问题并给出正确答案0。在对学生的错误轨迹进行评分时,教师模型会重点惩罚那些引导学生走向错误方向的关键分叉词元 (Forking tokens)。例如,当学生开始写下 Note: The ice cubes are not removed during the process... 这样的错误假设时,这些词元会获得非常高的KL散度(即非常大的惩罚)。相比之下,学生在错误逻辑下推导出的最终答案20,由于在给定错误前提的情况下是可预测的,所以受到的惩罚反而不大。这表明,在线策略蒸馏能够精准地识别并纠正导致思维链走偏的根本原因
总而言之,在线策略蒸馏通过让教师模型对学生的每一步进行打分,将强化学习中稀疏的、滞后的最终奖励,转化为了密集的、即时的过程奖励。这不仅极大地提升了训练的计算效率,也让模型能够更精确地学习如何从错误中恢复,从而克服了传统离线策略蒸纯粹模仿所带来的复合误差问题
应用案例一:高效实现数学推理能力的迁移Qwen3-32B -> Qwen3-8B-Base
为了验证在线策略蒸馏在实际任务中的效果,首先将其应用于训练模型的数学推理能力。实验的目标是将一个强大的教师模型 (Qwen3-32B) 的推理能力,高效地迁移到一个较小的学生模型 (Qwen3-8B-Base) 上。实验使用了数学竞赛基准 AIME'24 来衡量模型的性能
所有实验都从一个共同的起点开始:学生模型首先通过离线策略蒸馏,即在教师模型生成的 OpenThoughts-3 数据集上进行监督微调 (SFT),完成了中训练。在训练了40万个样本后,学生模型在 AIME'24 上的得分达到了 60%。此时,研究人员们比较了三种不同的后训练方法,以将模型性能从 60% 提升到 70%
1.继续离线策略蒸馏 (SFT): 这是最直接的方法。根据已有的训练数据,性能的提升与训练样本数量的对数呈线性关系。通过外推这条曲线,研究人员估计,要达到 70% 的分数,大约需要额外训练 200 万个样本。这是一个非常巨大的计算开销,并且其前提是性能增长不会提前停滞
2.强化学习:根据 Qwen3 团队的技术报告,在一个相似的SFT初始化模型之上,通过强化学习将性能提升到 67.6%,花费了 17,920 个 GPU 小时。这个成本与训练 200 万个SFT样本的成本大致相当
3.在线策略蒸馏 :从 60% 的检查点开始,在线策略蒸馏仅用了大约 150 个训练步骤就达到了 70% 的目标分数。为了更公平地比较计算成本,将所有操作都转换为了浮点运算次数 (FLOPs)。结果显示:
与外推到 200 万样本的SFT相比,在线策略蒸馏的计算成本降低了 9 到 30 倍
成本降低的范围取决于如何计算SFT的教师成本。如果SFT数据集是现成的,只考虑学生的训练成本,那么成本降低约 9 倍
如果考虑到在实际应用中,SFT数据集也需要由教师模型生成,即将教师模型的采样成本也计算在内,那么总成本降低可以达到 30 倍
如果从 GPU 小时的角度看,由于教师模型计算对数概率 (log-probs) 的过程可以高效并行化,实际节省的时间成本可能更接近 18 倍
![]()
这个案例有力地证明了在线策略蒸馏在计算效率上的巨大优势。它用远低于传统SFT或RL的成本,实现了同等甚至更好的性能提升。这种效率的来源在于,它摒弃了RL中效率低下的试错搜索过程,也避免了SFT中因数据分布不匹配而造成的大量冗余训练。通过让教师模型直接对学生模型自身产生的、最需要被纠正的行为进行密集指导,每一份计算资源都用在了刀刃上,从而实现了性能的快速飞跃。这对于在有限的计算预算下,训练出高性能的专用模型具有极其重要的现实意义
应用案例二:在个性化定制中恢复被模型遗忘的行为:Qwen3-8B
在线策略蒸馏的另一个强大应用场景是模型个性化 (Personalization) 与 持续学习 (Continual learning)。在实际应用中,我们常常需要让一个已经具备通用能力(如遵循指令)的模型,去学习新的、私有的领域知识(如公司内部文档)。然而,这个过程常常伴随着一个棘手的问题:灾难性遗忘 。即在学习新知识的过程中,模型会逐渐忘记原有的重要能力
研究人员设计了一个实验来模拟这个场景:目标是创建一个内部企业助理。这个助理需要满足两个要求:
1.知识性: 能够准确回答基于公司内部文档的问题(通过 internal QA 进行评估)
2.指令遵循: 保持强大的通用对话和指令遵循能力(通过 IF-eval 进行评估)
实验的起点是一个经过后训练的 Qwen3-8B 模型,它在 IF-eval 上表现出色(得分 85%),但对内部文档一无所知(得分 18%)
首先,研究人员尝试了传统的中训练方法 (Mid-training):将内部文档数据和通用的聊天数据混合起来,对模型进行监督微调 (SFT)。实验发现:
增加内部文档的比例可以显著提升模型的知识水平,当文档数据占 100% 时,internal QA 得分可以达到 43%
然而,这个过程对指令遵循能力的破坏是巨大的。即使混合了 30% 的聊天数据来试图维持原有能力,IF-eval 的分数依然会大幅下降。在只用文档数据训练时,IF-eval 分数会从 85% 暴跌至 45%
无论数据混合比例如何,只要开始微调,IF-eval 性能就会下降,并且无法完全恢复。即使使用 LoRA 这种旨在限制参数更新范围的技术,也同样会面临知识学得更少、行为忘得一样多的困境
这表明,通过SFT的方式来注入新知识,很容易破坏模型经过复杂(且昂贵)的RL训练才获得的精细行为。此时,在线策略蒸馏展现了其作为能力恢复工具的独特价值
在模型已经通过微调学习了内部知识(例如,使用 70% 文档和 30% 聊天数据进行训练,此时 internal QA 得分为 36%,IF-eval 下降至 79%)之后,研究人员进行了第二阶段的训练:
教师模型:使用训练开始前的、原始的 Qwen3-8B 模型作为教师
训练数据:使用通用的指令遵循数据集 Tulu3 的提示 (prompts)
训练方法:在线策略蒸馏
这个阶段的目标非常纯粹:让学生模型重新学习并恢复它被遗忘的指令遵循能力,而教师就是过去的自己。结果非常惊人:
经过在线策略蒸馏后,模型的 IF-eval 分数从 79%恢复到了 83%,几乎回到了最初的水平
更重要的是,这个恢复过程没有损害它新学到的知识。internal QA 的分数甚至还略有提升,从 36% 增加到了 41%,这可能是因为恢复聊天能力和更好地理解知识之间存在正向迁移
![]()
这个案例深刻地揭示了在线策略蒸馏在模型生命周期管理中的巨大潜力。我们可以构想一种交替训练 (Phase-alternating)的模式:首先通过微调注入新的领域知识,然后通过在线策略蒸馏来“唤醒”和恢复模型可能被遗忘的通用能力。这使得模型可以在不回归基础性能的前提下,持续不断地学习和适应新数据,为实现真正的终身学习AI助理提供了一条切实可行的技术路径
深度解析:在线策略蒸馏为何如此高效
在线策略蒸馏之所以能够在多个任务中展现出远超传统方法的效率,其背后有多重深层原因。它不仅是一种技术上的融合,更在信息论和学习理论层面带来了根本性的改变。
密集的监督信号极大提升了信息效率
强化学习 (RL) 的信息效率极低。从信息论的角度看,每次RL的训练回合 (Episode) 无论长短,最终的成功或失败只能为模型提供大约 O(1) 比特的信息。相比之下,蒸馏是逐词 (per-token) 进行监督的。如果一个轨迹有 N 个词元,那么在线策略蒸馏在每个回合中就能提供 O(N) 比特的信息。这意味着在处理长序列任务时,两者的信息效率差距可以是成百上千倍。对比实验显示,从零开始训练数学能力,在线策略蒸馏达到与RL相同的性能水平,所需的梯度步数少了 7-10 倍,综合计算效率提升了 50-100 倍。这证明了密集的过程监督 (Process supervision) 相对于稀疏的结果监督 (Outcome supervision) 在学习效率上的压倒性优势
高效的数据复用能力
在数据稀缺的场景下,我们希望能够反复利用已有的训练数据。然而,用RL在同一个提示 (prompt) 上进行多轮训练,模型很容易陷入对最终答案的死记硬背,而不是学习通用的解题策略。在线策略蒸馏则不同,它的目标是学习教师模型在每一步的完整概率分布,而不仅仅是最终的那一条成功路径。这使得我们可以用同一个提示生成大量不同的轨迹,并对它们进行训练,模型依然能够学习到稳健的、可泛化的策略。实验表明,仅使用一个训练提示,通过多轮次的在线策略蒸馏,学生模型的性能也能达到与使用大量数据训练的教师模型相近的水平,这展现了其卓越的数据效率
学习的本质:从搜索到直接教学
我们可以将后训练过程理解为在不同层面的空间中进行搜索。预训练是在高维的参数空间中进行搜索,寻找一组能够编码世界知识的权重,这个过程极其耗费计算资源。而强化学习则可以被看作是在语义策略空间 (Space of semantic strategies)中进行搜索。它通过随机采样,不断“偶然发现”新的、有效的行为策略,然后通过奖励信号来强化这些策略。这个搜索的过程同样是昂贵且低效的。
在线策略蒸馏则为这个学习过程提供了一条捷径。它跳过了漫长的搜索阶段。一旦教师模型(通过其自身的训练或搜索)已经找到了一个优秀的策略,蒸馏就可以像一位老师直接传授知识一样,将这个策略高效地“教”给学生模型。我们无需再花费大量计算去复现教师模型曾经走过的所有中间弯路,而可以直接学习最终的、最优的策略
作为持续学习的理想工具
在线策略蒸馏天然适合持续学习任务。传统的SFT,即使用模型自己生成的样本进行训练,也会因为采样批次的随机性而导致模型状态偏离初始分布,随着时间推移,这种训练会退化为离线策略训练,从而引发性能衰退。而在线策略蒸馏中,教师模型是固定不变的。这为学生模型的学习提供了一个稳定的“锚点”或“引力中心”。无论学生模型如何探索,它始终会被拉回到教师模型的行为轨道上,从而保证了学习过程的稳定收敛,避免了在自我学习中出现性能退化的问题。这使得在线策略蒸馏成为在不断变化的环境中保持模型能力和知识更新的强大工具
参考:
https://thinkingmachines.ai/blog/on-policy-distillation/
https://github.com/thinking-machines-lab/tinker-cookbook/tree/main/tinker_cookbook/recipes/distillation





京公网安备 11011402013531号