![]()
新智元报道
编辑:KingHZ 定慧
用1/10成本就能「吊打」强化学习,Thinking Machines最新一篇文章开源的这个策略,不看真OUT了!可在Tinker直接复现。
现在的大模型在特定领域能够达到专家级表现已经不足为奇。
但是能不能让模型变小的同时,也能在特定领域达到接近专家级表现?
现在通常的答案就是「模型蒸馏」(Model Distillation)。
比如DeepSeek-R1发布时,顺带着也发布了多个蒸馏模型(R1模型参数为671B,蒸馏模型都比较小,1.5B、7B、14B等)。
![]()
那还有没有更好的办法?
这就是今天要讲的On-Policy Distillation(同策略/在线策略蒸馏)。
这是一个Thinking Machines整的新活,这个新策略既有强化学习等在线策略方法的相关性和可靠性;又具备离线策略(Off-policy)方法的数据效率。
![]()
Mira Murati认为这个策略可以让小模型提升特定领域的表现,还能持续学习。
![]()
Lilian Weng夸赞新方法「优雅」。认为这个策略提供了一种优雅的方式,将教师模型作为过程奖励模型来提供稠密奖励。
![]()
在进入正题前,还是简单提一下这家「奇葩的」公司。
作为一家0产品0模型的公司(准确的说有一个产品Tinker),这家前OpenAI CTO Mira Murati创办的公司总是能吸引AI圈的注意力。
![]()
比如这篇最新的文章就是在他们发布Tinker之后的最新方法,本质是为了验证他们的这个产品。
Tinker是一个用于微调(fine-tune)开源LLMs(LLM)的开发者API平台。
过去要微调一个大模型,通常你要买或者租GPU集群、管理训练脚本、分布式同步、故障恢复、模型并行、存储、优化器调参……非常繁琐。
Tinker把这些基础设施工作抽象掉,让研究者更专注于「数据、算法、任务」而不是「训练流水线的运维」。
回到正题。
想要讲清楚为何On-Policy Distillation(在线策略蒸馏)能够让模型真正「学会」某种领域知识,还要从LLM训练讲起。
![]()
顺便说一句,这项新工作基于Qwen之前的工作。
![]()
以下内容对Thinking Machines的这篇博客进行节选。
大模型为何会有专家级表现?
LLMs能够在特定领域展现出专家级的性能,这是多种能力叠加的结果:输入感知、知识检索、计划选择和可靠执行。
为此需要一套训练方法,这套方法目前大致可分为三个阶段:
预训练用于教授语言使用、广义推理和世界知识等通用能力。
中期训练用于传授代码、医疗数据库或公司内部文档等领域知识。
后训练用于引导模型产生遵循指令、解决数学问题或聊天等目标行为。
经过更强训练的小模型,在其专长的领域中,其性能往往优于更大型的通用模型。
使用小模型有诸多益处:出于隐私或安全考虑,它们可以进行本地部署;可以更轻松地持续训练和更新;同时还能节省推理成本。
要利用这些优势,就需要为训练的后期阶段选择正确的方法。
后训练「学生」模型的方法可分为两种:
同策略/在线策略训练(On-policy)从学生模型自身采样轨迹,并为其分配一定的奖励。
异策略/离线策略训练(Off-policy)依赖于外部来源提供的目标输出,学生通过学习来模仿这些输出。
例如,我们可能希望训练一个紧凑模型来解决如下的数学问题:
![]()
我们可以通过强化学习进行同策略训练,依据学生生成的每个轨迹是否解决了问题来进行评分。
评分可由人工完成,也可以由一个能可靠得出正确答案的「教师」模型来完成。
![]()
同策略训练的优点在于,通过对自己生成的样本进行训练,学生能以更直接的方式学会避免错误。
但强化学习有一个主要缺点:它提供的反馈非常稀疏,无论使用多少Token,每个训练回合只传递固定比特数的信息。
在上面的例子中,学生学到「21」是错误答案,并更新模型以避免再次生成它尝试过的轨迹。
但它并没有学到错误究竟出在哪里——是运算顺序搞错了,还是算术本身出错了。
这种反馈的稀疏性使得强化学习在许多应用中效率低下。
异策略训练通常通过监督微调(SFT)来完成:即在一组精选的、面向特定任务的标注样本上进行训练。
这些标注样本可以来源于一个已被证明在该任务上表现出色的教师模型。
我们可以使用蒸馏机制:训练学生模型来匹配教师模型的输出分布。
我们在教师轨迹上进行训练,即包含中间思考步骤在内的、所生成Token的完整序列。
我们可以使用教师模型在每一步的完整「下一Token分布」(常被称为「logit蒸馏」),也可以仅采样给定的序列。
实践中,采样序列能提供对教师分布的无偏估计,并达到相同的目标。学生模型会根据自身生成序列中各个Token的概率大小进行更新:它自己越不可能生成某个Token,那么朝这个Token更新的幅度就越大。在下方案例中,更新幅度由颜色的深浅表示:
![]()
事实证明,从大模型教师进行蒸馏,在训练小模型遵循指令、进行数理科学推理、从医疗笔记中提取临床信息以及参与多轮聊天对话等方面非常有效。
用于这些及其他应用的蒸馏数据集通常是开源和公开发布的。
异策略训练的缺点是,学生模型是在教师模型频繁遇到的情境下学习,而非它自己将来会频繁遇到的情境。
这可能导致误差累积:如果学生模型在早期犯了一个教师模型从未犯过的错误,它会发现自己越来越偏离在训练中观察到的状态。
当关心学生模型在长序列上的表现时,这个问题变得尤为突出。为避免这种偏离,学生模型必须学会从自己的错误中恢复。
在异策略蒸馏中观察到的另一个问题是,学生模型可能学会模仿教师的风格和自信程度,但未必能学会其事实的准确性。
如果你在学下棋,同策略强化学习就好比没有任何教练指导自己下棋。赢棋或输棋的反馈虽然直接和你自己的下法挂钩,但每盘棋你只能得到一次反馈,而且它也不会告诉你,究竟是哪几步棋决定了最终的胜负。
异策略蒸馏则好比观看一位特级大师下棋——你观察到的是极其高超的棋步,但这些棋步是在新手棋手几乎遇不到的局面下走出来的。
研究者希望将强化学习的同策略相关性与蒸馏的密集奖励信号相结合。
对学下棋而言,这就好比有一位老师,能将你的每一步棋从「大错」到「绝妙」划分等级。
对于LLMs的后训练而言,这就是同策略蒸馏(On-Policy Distillation)。
![]()
截图来自chess.com。分析引擎对每一步棋进行颜色分级,将棋步标记为大错(红色)、错误(橙色)、不准确(黄色)或绝妙(蓝色)。
同策略蒸馏——两全其美之道
同策略蒸馏的核心思想是:从学生模型中采样轨迹,并使用一个高性能的教师模型为每条轨迹中的每个Token评分。回到之前的数学例子,同策略蒸馏会为解题过程的每一步打分,惩罚那些导致学生得出错误答案的步骤,同时强化那些执行正确的步骤。
![]()
本文将探讨了同策略蒸馏在特定任务中的应用,例如训练模型进行数学推理,以及训练一个兼具领域知识和指令遵循能力的助手模型。
在那些已通过预训练和中期训练打下能力基础的模型上,研究者应用同策略蒸馏。
结果发现,这是一种廉价而强大的后训练方法,它结合了同策略训练的优势与密集的奖励信号。
![]()
同策略蒸馏的工作受到了DAGGER的启发,这是一种迭代式的SFT算法,包含了教师模型对学生模型所访问状态的评估。
它也类似于过程奖励建模,这是一种对学生模型思维链中每一步都进行评分的强化学习方法。
研究者扩展了Agarwal等人和Qwen3团队先前的同策略蒸馏工作。
通过使用Tinker训练API,他们复现了Qwen3的成果:利用同策略蒸馏,在推理基准上达到了同等性能,而成本仅为强化学习的一小部分。
用于推理的蒸馏
他们使用蒸馏来训练Qwen3-8B-Base模型的数学推理能力,并以Qwen3-32B为教师模型。
教师模型(Qwen3-32B)和学生模型(Qwen3-8B-Base)目前都是Tinker支持的模型,因此可以通过Tinker指南复现实验。
异策略蒸馏
如前所述,所有的实验都始于以异策略蒸馏形式进行的中期训练——即在一个由教师生成的样本数据集上进行监督微调。
用于数学推理的数据集是OpenThoughts-3,这是一个由QwQ-32B(一个与Qwen3-32B类似的推理模型)生成的推理提示词和响应的集合。
研究者用40万个提示词对学生模型(Qwen3-8B-Base)进行完全微调,在数学基准AIME'24上取得了60%的分数。
当然,也可以使用LoRA进行训练,但当训练数据量较大时,其效果不如完全微调。
在所有情况下,性能都呈对数线性增长——初始的性能提升成本很低,但越往后成本越高昂。
![]()
异策略蒸馏(SFT)的AIME'24得分曲线
在最初的5-10万个提示词训练后,性能遵循一条可预测的对数线性规模变化曲线。在进行大规模、高批量大小的SFT时,察到LoRA的性能较差,这与《LoRA Without Regret》中的预测一致。
研究者将在40万个提示词上微调过的模型视为一个检查点,再尝试采用各种后训练方法来进一步提升其性能。
若要将AIME'24基准测试的分数从60%提高到70%,各种方法分别需要付出多大代价。
默认方法是在更多提示词上进行微调,即延续异策略蒸馏的过程。根据对数线性趋势进行外推,研究者估计模型在使用约200万个提示词训练后,将在AIME’24上达到70%的分数。
这一外推成立的前提是,规模定律能够持续生效而不会停滞,但这并非易事。
不过,确实存在一些通过大规模异策略蒸馏将8B模型性能提升至70%以上的案例,例如OpenThoughts-3和DeepSeek-R1-0528-Qwen3-8B。这一外推结果可以用作异策略蒸馏成本性能比的乐观估计。
强化学习
Qwen3的技术报告指出,在相似的SFT初始化模型基础上,再进行17,920 GPU小时的强化学习训练,模型在基准测试上的性能达到了67.6%。
这个成本很难直接与蒸馏的成本进行比较。但如果对SFT训练栈做一些合理假设,那么该成本与使用200万个异策略蒸馏提示词进行训练的成本大致相当。
![]()
Qwen团队还报告称,他们通过同策略蒸馏,仅用强化学习十分之一的成本,就在AIME’24上取得了74.4%的更高分数,这为这次的工作提供了灵感。研究人员尝试在下文的基础配置中复现这一结果。
同策略蒸馏
作为异策略蒸馏或强化学习的替代方案,研究人员采用了上文所述的同策略蒸馏方法。
从经过40万提示词SFT训练的检查点开始,同策略蒸馏仅用约150步就使模型在AIME’24上的分数达到了70%。
![]()
额外的计算量以训练FLOPs(浮点运算次数)来衡量。
同策略蒸馏的计算效率明显高于SFT,对LoRA模型而言尤其如此。
在秩(rank)=32的情况下,经过SFT后,LoRA的性能落后于完全微调13%,但在同策略蒸馏后,差距缩小至仅6%。
跨方法比较计算成本并非易事,因为训练、采样和对数概率计算这三者之间的成本比例,会因具体实现方式而显著不同。下面以FLOPs为单位计算成本,但这种计算方式对那些可以被GPU高效并行化的方法有所不利。特别是,它会高估计算对数概率的实际成本。
结果发现,如果SFT数据集是现成的(如OpenThoughts-3示例),或者其成本可以分摊到多次训练中,那么基准成本可以节约9倍。
在这种情况下,不计算异策略训练中教师模型的FLOPs成本,但会计算同策略训练中的,因为必须运行教师模型来计算学生轨迹的对数概率。由于该计算能以很低的成本在多个GPU间并行化,因此若以GPU小时计,成本节约接近18倍。
然而,大家常常需要为一个没有现成异策略蒸馏数据集的新任务训练一个小模型。如果将教师模型在异策略蒸馏中的全部成本都计算在内——即包括从教师模型采样的额外成本——那么总成本可节约约30倍。
个性化蒸馏
除了训练小模型在通用任务上达到高性能外,蒸馏的另一个用例是个性化。例如,在对话中遵循特定的语气和输出格式,或掌握工具使用和成本预算等能力。
大家通常希望在传授新领域知识的同时,训练模型掌握这些行为。
同时训练这两者通常很困难,轻量级微调往往不足以实现此目标,因此需要更大规模的中间训练。
在新知识的基础上学习后训练行为,需要一套复杂的后训练流程,通常包含专有数据和奖励模型。尽管这种方法对前沿实验室而言触手可及,但对于其他从业者来说,复现起来可能十分困难或成本过高。
这部分展示了同策略蒸馏能有效地用于专业化行为的后训练。
该方法也适用于持续学习或「测试时训练」:在模型部署后进行更新,同时不降低其基础性能;将以一个内部文档上进行中期训练的模型为例,进行说明。
新知识的训练会削弱已习得的行为
这次研究将从Qwen3-8B模型开始,而非基础模型。
Qwen3-8B已经过后训练,具备了作为助手所需的实用技能,例如通过强化学习进行指令遵循和推理。先前的研究表明,这类强化学习只训练了原始模型的一小部分子网络,因此当网络在大量数据上进行进一步训练时,这些能力可能很脆弱。
他们研究了这种情况发生的程度,以及如何恢复期望的行为。
为减少这种灾难性遗忘,中期训练中的一个常见方法是混入来自原始模型预训练分布的「背景数据」。
在案例中,研究人员无法访问Qwen3的预训练分布。因此,考虑一个更强但成本更高的基准方案:采用Tulu3提示词——一个涵盖广泛聊天和指令遵循的数据集——并用Qwen3-8B对其重新采样,以用作聊天背景数据。
由Qwen3-8B采样的这种「同策略」背景数据,在整个中期训练过程中充当了正向KL正则化器,从而强化了模型的原始行为。
结果发现,在中期训练期间,从Qwen3-8B采样比从Qwen3-32B采样更能保留聊天能力,这凸显了数据源的敏感性;Chen等人也发现了类似的同策略SFT结果。
研究者推测,这种方法的有效性甚至可能超过直接访问原始预训练数据分布,但代价是必须采样一个大规模的数据集。
接着,研究者在不同混合比例的内部文档和聊天数据上对Qwen3-8B进行微调。增加文档数据的比例能直接提升模型的知识水平。然而,尽管混入至少30%的聊天数据有助于保留大部分指令遵循能力,但没有一种权重分配能维持模型在IF-eval上的原始性能。
在中期训练中对内部文档与背景聊天数据的比例进行扫描。尽管混入少量聊天数据有助于防止灾难性的性能衰退,但没有任何一种权重能维持原始的IF-eval性能。
![]()
对于任何给定的混合比例,IF-eval性能在微调过程中会下降。延长训练难以进一步提升模型的专业化能力。
![]()
在所有数据混合比例下,IF-eval的分数在中期训练期间都会下降。当使用线性学习率(如上图所示)时,性能下降最终会趋于平缓,并随着学习率的衰减而缓慢开始恢复。然而,性能从未完全恢复。
另一种常用方法是使用LoRA来约束参数更新,从而减少灾难性遗忘的可能性。然而,这种方法仍然不足以保住IF-eval的性能,并且LoRA学到的知识也更少。
![]()
当把LoRA应用于已完成后训练的Qwen3-8B模型,进行个性化中期训练时,它不仅学到的知识更少,而且仍然会忘记原有的后训练行为。
同策略蒸馏可恢复后训练行为
接下来,研究者尝试在对内部文档进行微调后,恢复模型的指令遵循行为。
这种行为最初是通过强化学习训练的,成本高昂,而且它很脆弱。
作为替代,研究者以模型的早期版本Qwen3-8B为教师,在Tulu3提示词上运行同策略蒸馏。值得注意的是,这个训练阶段与内部文档数据无关,其唯一目的就是恢复指令遵循能力。
使用模型的早期版本作为教师来「重新唤醒」在微调过程中丢失的能力,这使得同策略蒸馏在持续学习方面展现出巨大潜力。
研究者可以交替进行「微调新数据」和「通过蒸馏恢复行为」这两个阶段,从而让模型能够随着时间的推移不断学习并保持知识的更新。Cobbe等人先前已经探索过这种阶段交替的方法。
![]()
预印本:https://arxiv.org/abs/2009.04416
在按70-30比例混合的内部文档数据和聊天数据上微调后,同策略蒸馏几乎完全恢复了模型在IF-eval上的性能,且没有造成任何知识损失;研究者还观察到,聊天能力与模型在内部问答评估上的「知识」性能之间存在一定的正向迁移。
![]()
中期训练后的领域特定性能(内部问答评估)和聊天性能(IF-eval)
尽管中期训练会导致Qwen3-8B忘记其后训练行为,但这些行为可以通过同策略蒸馏以低成本恢复,同时还能保留中期训练学到的额外知识。
从本质上讲,这次把语言模型本身当作了一个奖励模型,那些高概率的行为会得到奖励。
这与逆向强化学习(InverseRL)有关:在一个假设的潜在偏好模型中,高概率的行为对应于更有利的奖励。
从这个意义上说,任何经过指令调优的开源权重模型都可以用作奖励模型;只需要能够访问其compute_logprobs函数即可。
将蒸馏作为整合行为和知识的工具,也已在混合推理模型(Qwen3)和专家蒸馏等领域得到探索。
正如之前研究结果所表明的,对于增强类似的、基于蒸馏的「模型合并」方案而言,同策略学习可以是一个至关重要的工具。
![]()
预印本:https://arxiv.org/abs/2510.18874
关于同策略的讨论
密集监督:显著提升计算效率
强化学习和同策略蒸馏都通过反向KL散度进行学习,对基础策略中的动作空间进行修剪。其区别在于奖励的密度。
在信息论的视角上,强化学习每个回合只传递O(1)比特的信息。相比之下,蒸馏每个回合能传递O(N)比特的信息,其中N是Token的数量。那么,通过更密集的奖励,训练效率究竟能提升多少呢?
在《LoRA Without Regret》一文中,研究者早疑问。
这次进行了一项实验来直接比较这两者:
从Qwen3-8B-Base(未进行额外SFT)开始。
在DeepMath数据集上运行强化学习,流程与《LoRA Without Regret》中的一致。研究人员使用128的LoRA秩。最终得到的模型作为蒸馏过程中的教师模型。
从经强化学习训练的模型(2)同策略蒸馏回基础模型(1)。
![]()
结果显示,在模型架构匹配(LoRA秩为128)的情况下,从相同的初始化状态出发,同策略蒸馏只需约7-10分之一的梯度步数,就能学会经强化学习训练好的策略,这对应着50-100倍的计算效率提升。
总的来说,所需计算量的减少达到了50-100倍的量级:
强化学习需要在接近评估长度的上下文环境中训练(以便策略能学习上下文限制,避免格式错误惩罚)。相比之下,蒸馏在较短的上下文中也能有效学习,因为奖励信号不会在轨迹生成结束时发生剧变。
当SFT初始化效果很好时,同策略蒸馏在小得多的批量大小下也能高效工作,因为它每个回合能提供多得多的信息,从而减少了梯度噪声。
尽管通常难以通过过程监督来训练强化学习模型,但这些结果表明,作为一个宏观方向,过程监督和密集奖励有潜力将学习效率提升一个数量级。这与Lightman等人早期的强化学习研究结果相符。
蒸馏:有效重用数据,提升数据效率
对于从业者而言,收集大规模的训练提示词数据集既困难又耗时。因此,研究者希望能够在训练中多次重用提示词。
在使用强化学习时,对同一个提示词进行多轮次训练,往往会导致模型死记硬背最终答案,在大模型上尤其如此。
相比之下,同策略蒸馏最小化反向KL散度,学习近似教师模型的完整分布,而非仅仅记忆单个答案。
这使大家能够从同一个提示词生成并训练多个样本。
研究者重复了上述在数学任务上训练Qwen3-8B-Base的实验,但这次仅使用数据集中随机抽取的一个提示词。
![]()
他们用这一个提示词连续训练20步,每步一个批次包含256条轨迹,总共处理了5120条经评分的序列。他们采用顺序方式在同一个提示词上训练多步,这种做法通常会导致过拟合。
尽管这种方式的计算效率自然较低,但仅凭这一个提示词的训练,模型性能就已接近教师模型。
![]()
在此例中,对单个训练样本进行多轮次训练,足以让学生模型学到教师模型在AIME'24上的性能。
强化学习:在语义策略空间中探索
同策略蒸馏能用少得多的训练步数,复现强化学习所达成的学习效果。
对此结果的一种解读是,与预训练不同,强化学习本身并不在梯度更新步骤上消耗大量计算资源。
我们应将强化学习的核心计算开销理解为「搜索」——即生成策略轨迹并进行功劳分配——而非「更新」本身。
通过随机梯度下降进行的预训练,是在探索高维的参数空间。预训练需要海量信息,且极难被蒸馏,部分原因在于每个网络的参数空间在某种程度上都是独一无二的。预训练所需的梯度更新步骤,其计算成本极高、耗时极长。
相比之下,我们应将强化学习理解为在「语义策略」的空间中进行探索。在每一步,强化学习都会尝试对过去发现的某个策略进行微调。它并非在参数空间中探索,而是靠运气「偶然发现」新策略——它从已有的权重集合中进行随机采样。
一旦找到一个好的策略,蒸馏便成为学习该策略的捷径:同策略蒸馏无需对强化学习过程中的所有中间策略进行建模,只需学习最终的策略即可。如果我们只关心最终策略(这在生产环境中很常见),就无需耗费计算资源去建模所有中间过程。
不妨思考一个类比:在科学研究中,我们投入大量时间和资源去寻找答案、探索新思想。一旦某个成果被发现,通过自然语言将其传授给他人就变得简单得多。
与之相对的是一些直觉性的身体技能,比如体育运动。这些技能就很难传授给他人,因为相关知识存在于一种「天生」的语言中(如肌肉记忆),只有我们自己才能轻易理解。
体育运动只能通过反复练习来掌握。
同策略学习:持续学习的利器
在关于个性化蒸馏中,同策略蒸馏能够将经过专门训练的行为重新引入模型。
这一能力可推广至更广泛的持续学习任务——
在不削弱既有能力的前提下,这些任务要求模型获取新知识。
先前的研究发现,同策略学习(RL)相比异策略学习,遗忘更少。然而,强化学习只能塑造行为,却无法有效地传授新知识,因此它本身不足以支撑持续学习。
![]()
正如前文所言,SFT(包括异策略蒸馏)无法有效支持持续学习,因为它会削弱模型的原有行为。
下面一个直接的例子来更深入地探究这一点。
与之前类似,他们通过对Tulu3提示词进行采样来构建数据集,采样模型为Qwen3-32B,温度设为1.0,无其他修改。因此,该数据集与Qwen3-32B的KL散度期望为零。
当在模型自身的样本数据集上运行SFT时会发生什么?
结果看到,任何大于零的实际学习率都会导致模型在指令遵循评估上的性能下降!
![]()
在Qwen3-32B自身的样本上运行SFT会导致性能下降
实验使用了与个性化部分相同的学习率,该学习率是基于实际性能考量而选择的。
线性学习率可以防止正向KL散度/IF-eval持续衰退,但在学习率衰减至零之前,性能无法完全恢复。
一种可能的解释是,虽然KL散度的期望为0,但在实践中,每个有限的批次都会呈现出略微不同的分布。
在这些有限批次上训练会产生非零的梯度更新,从而使更新后模型的策略偏离其原始状态。
久而久之,这种在自身样本上训练的过程就演变成了异策略训练,从而导致了与标准异策略训练相同的错误累积和长序列发散问题。
同策略蒸馏始终保持「在策略」状态,并且由于教师模型固定不变,学生模型会收敛于教师模型的理想行为,不会像SFT在自蒸馏设置中那样出现性能衰退。
这使得同策略蒸馏成为一个极具潜力的持续学习工具。
结论
通过结合来自学生模型的同策略采样和来自教师模型的密集监督,同策略蒸馏这一方案能够以远低于前沿高算力强化学习的成本,达到同等的能力水平。
在Tinker指南中可找到实现代码。
他们希望能继续研究蒸馏的新应用、改进教师监督的新方法,以及提升数据效率和持续学习能力的新途径。
Thinking Machines的使命是打造兼具前沿性能、高度适应性与个性化的AI模型,以此赋能于人。而同策略蒸馏,正是实现这一宏伟目标的强大工具。
参考资料:
https://x.com/thinkymachines/status/1982856272023302322
https://x.com/lilianweng/status/1982862795961184572ZFnwd





京公网安备 11011402013531号