稠密監(jiān)督 × 策略內(nèi)采樣:On-Policy Distillation 如何以 1/10 成本訓(xùn)練專家級(jí)小模型

大家好,我是肆〇柒。我看到一項(xiàng)來(lái)自 Thinking Machines Lab 的前沿研究——《On-Policy Distillation》。這項(xiàng)工作巧妙融合了強(qiáng)化學(xué)習(xí)的策略內(nèi)采樣優(yōu)勢(shì)與知識(shí)蒸餾的稠密監(jiān)督信號(hào),不僅將后訓(xùn)練成本降至傳統(tǒng) RL 的十分之一,還在數(shù)學(xué)推理、個(gè)性化助手和持續(xù)學(xué)習(xí)等關(guān)鍵場(chǎng)景中展現(xiàn)出驚人的效率與穩(wěn)定性。如果你正為小模型難以復(fù)刻大模型的“專家行為”而苦惱,這篇文章或許能對(duì)你有所幫助。
我們先看一個(gè)題目:
Prompt:Evaluate the limit:
這道題的答案是2/3 ,但解法需要多步代數(shù)技巧:先對(duì)立方根差進(jìn)行有理化,再展開(kāi)近似。若模型在第一步錯(cuò)誤地合并根號(hào)(如誤寫(xiě)
),后續(xù)無(wú)論多么"自信"地推導(dǎo),答案必錯(cuò)。
在數(shù)學(xué)推理、醫(yī)療信息提取、企業(yè)知識(shí)問(wèn)答等垂直領(lǐng)域,一個(gè)精心訓(xùn)練的 8B 小模型常優(yōu)于通用 70B 大模型。但如何高效教會(huì)它"專家行為"?核心問(wèn)題在于:如何高效地把大模型的能力"教"給小模型?
核心問(wèn)題:如何高效地把大模型的能力"教"給小模型?
傳統(tǒng)方法有兩種,各有優(yōu)劣:
方法 | 原理 | 優(yōu)點(diǎn) | 缺點(diǎn) |
監(jiān)督微調(diào)(SFT) | 讓小模型模仿大模型生成的"標(biāo)準(zhǔn)答案" | 簡(jiǎn)單、訓(xùn)練穩(wěn)定 | 小模型容易"學(xué)歪",因?yàn)樗鼪](méi)見(jiàn)過(guò)自己犯的錯(cuò)誤 |
強(qiáng)化學(xué)習(xí)(RL) | 讓小模型自己嘗試,靠最終成敗來(lái)打分 | 能糾正自身錯(cuò)誤 | 反饋太稀疏,訓(xùn)練慢、貴、難調(diào) |
LLM(Large Language Model)的能力構(gòu)建分為三階段:
- Pre-training:習(xí)得語(yǔ)言、常識(shí)與通用推理。這個(gè)階段主要教授一些通用的能力,例如語(yǔ)言的使用,即模型能夠理解和生成語(yǔ)言;還包括廣泛的推理能力,使模型能夠進(jìn)行一般性的邏輯思考和判斷;以及世界知識(shí),讓模型對(duì)各種常見(jiàn)的事物、現(xiàn)象等有一定的了解和認(rèn)知。
- Mid-training:注入領(lǐng)域知識(shí)(如代碼、醫(yī)學(xué)數(shù)據(jù)庫(kù)、公司內(nèi)部文檔)。在這個(gè)階段,會(huì)向模型傳授特定領(lǐng)域的知識(shí)。比如代碼,使模型能夠理解和生成編程相關(guān)的代碼內(nèi)容;醫(yī)學(xué)數(shù)據(jù)庫(kù),讓模型掌握醫(yī)學(xué)領(lǐng)域的專業(yè)知識(shí)和數(shù)據(jù);或者公司內(nèi)部文檔,使模型熟悉公司內(nèi)部的業(yè)務(wù)流程、規(guī)章制度等特定信息。
- Post-training:對(duì)齊目標(biāo)行為(如指令遵循、數(shù)學(xué)推理格式、多輪對(duì)話風(fēng)格)。此階段的目的是激發(fā)模型產(chǎn)生特定的目標(biāo)行為。例如指令遵循,模型能夠按照給出的指令去執(zhí)行相應(yīng)的操作;進(jìn)行數(shù)學(xué)推理,模型能夠解決數(shù)學(xué)問(wèn)題;或者進(jìn)行聊天,使模型具備與人進(jìn)行自然對(duì)話的能力。
以上,怎么理解除了 pre-training 以外的后兩個(gè)階段的訓(xùn)練???
關(guān)鍵區(qū)分:Mid-training 關(guān)注"知道什么",Post-training 關(guān)注"如何做"。
以剛才的題目為例:
- Pre-training 使模型理解"lim"、"√x"等符號(hào);
- Mid-training 可能引入更多微積分知識(shí);
- Post-training 則需教會(huì)模型如何組織解題步驟——何時(shí)有理化?如何避免符號(hào)錯(cuò)誤?
為何 Off-policy 方法(SFT)難以培養(yǎng)"專家行為"?
設(shè)想一位數(shù)學(xué)老師正在指導(dǎo)學(xué)生解題:老師寫(xiě)下完整解題過(guò)程,學(xué)生照著抄寫(xiě)。這看似合理,但存在一個(gè)關(guān)鍵問(wèn)題——當(dāng)學(xué)生在第一步就犯錯(cuò)(如錯(cuò)誤合并根號(hào)),后續(xù)軌跡將進(jìn)入教師從未見(jiàn)過(guò)的狀態(tài),誤差迅速累積。
在技術(shù)層面,SFT 通過(guò)模仿教師生成的完整軌跡進(jìn)行訓(xùn)練。教師模型(如 Qwen3-32B)會(huì)輸出完整解題過(guò)程,學(xué)生(如 Qwen3-8B)則學(xué)習(xí)復(fù)制。其優(yōu)勢(shì)在于提供稠密監(jiān)督:每個(gè) Token 都有明確目標(biāo)。
但問(wèn)題在于:訓(xùn)練分布 ≠ 推理分布。當(dāng)學(xué)生在推理時(shí)因早期錯(cuò)誤進(jìn)入教師從未見(jiàn)過(guò)的狀態(tài),后續(xù)生成將持續(xù)偏離,即 誤差累積。在長(zhǎng)序列中,這種效應(yīng)尤為致命。
更微妙的是,學(xué)生可能僅學(xué)到教師的風(fēng)格與自信,而非事實(shí)準(zhǔn)確性。例如,學(xué)生可能學(xué)會(huì)在解題中使用"顯然"、"易得"等短語(yǔ),卻在關(guān)鍵步驟犯錯(cuò)——這正是 《The False Promise of Imitating Proprietary LLMs》 所揭示的"模仿幻覺(jué)"。(論文地址:https://arxiv.org/abs/2305.15717)
一個(gè)關(guān)鍵的實(shí)證觀察是,SFT 的性能提升遵循可預(yù)測(cè)的對(duì)數(shù)線性縮放曲線。在數(shù)學(xué)推理任務(wù)中,經(jīng)過(guò)最初的 50-100K 樣本后,模型性能的提升變得極其昂貴。

離策略蒸餾的對(duì)數(shù)線性縮放
這意味著,要將 AIME'24 基準(zhǔn)上的得分從 60% 提升到 70%,可能需要將訓(xùn)練數(shù)據(jù)量增加近 5 倍。這種低效性在使用 LoRA 等參數(shù)高效微調(diào)方法時(shí)更為明顯,在大規(guī)模、高批量的 SFT 場(chǎng)景下,LoRA 的性能會(huì)顯著落后于全參數(shù)微調(diào)。
為何 On-policy 方法(RL)效率低下?
如果 SFT 是"抄作業(yè)",那么 RL 更像是"只告訴學(xué)生對(duì)錯(cuò),卻不指出錯(cuò)誤在哪"。

在上面這個(gè)題目中,學(xué)生得出"21"這個(gè)錯(cuò)誤答案,RL 僅告知"錯(cuò)誤",卻無(wú)法指出是"運(yùn)算順序"還是"算術(shù)錯(cuò)誤"導(dǎo)致失敗。

技術(shù)上,RL 基于學(xué)生自身 rollout 賦予序列級(jí)獎(jiǎng)勵(lì)。學(xué)生嘗試解題,若最終答案正確則獲正獎(jiǎng)勵(lì)。其優(yōu)勢(shì)在于始終在學(xué)生實(shí)際會(huì)遇到的狀態(tài)下訓(xùn)練,避免分布偏移。
但反饋極度稀疏——每 episode 僅傳遞 O(1) bits 信息(無(wú)論生成多少 Token)。在解題時(shí),一個(gè) 500 Token 的解題過(guò)程,RL 僅提供 1 比特信息。想想,這個(gè)獎(jiǎng)勵(lì)策略有木有一點(diǎn)像一個(gè)不耐煩的老師,只說(shuō)對(duì)錯(cuò),不多說(shuō)一句話。
一個(gè)直觀類比是學(xué)下棋:SFT 相當(dāng)于觀看大師棋譜,但新手很難復(fù)現(xiàn)大師所處的棋局;RL 則如同自己對(duì)弈,僅知輸贏,卻不知哪步是敗招。理想方法應(yīng)是有人實(shí)時(shí)點(diǎn)評(píng)你的每一步,才能真正學(xué)到下棋。

chess-國(guó)際象棋
On-Policy Distillation 的核心機(jī)制:稠密監(jiān)督與策略內(nèi)采樣的精妙融合
On-Policy Distillation 的核心思想可概括為:采樣自學(xué)生(on-policy) + 評(píng)分自教師(dense)。也就是從學(xué)生模型中采樣軌跡,并使用高性能的教師模型對(duì)每個(gè)軌跡的每個(gè)token進(jìn)行評(píng)分。
"就像學(xué)下棋時(shí),每一步都有老師告訴你'這步是臭棋'還是'好棋',而不是等整盤(pán)棋下完才知道輸贏。"

仍以剛才的題為例,策略蒸餾會(huì)對(duì)解決方案的每一步進(jìn)行評(píng)分,懲罰導(dǎo)致學(xué)生得出錯(cuò)誤答案的錯(cuò)誤,同時(shí)強(qiáng)化執(zhí)行正確的步驟。
- 行為:學(xué)生生成完整解題過(guò)程,如 "Let's combine the cube roots → get ?2 → multiply by √x → answer 21";
- 反饋:教師對(duì)軌跡中每個(gè) Token 計(jì)算 log-prob,提供細(xì)粒度評(píng)分;
- 更新:損失函數(shù)驅(qū)動(dòng)學(xué)生在每一步更接近教師分布。

on-policy-distillation
三步實(shí)現(xiàn):采樣、評(píng)分、更新
On-Policy Distillation 的實(shí)現(xiàn)過(guò)程可清晰分為三步:
1. 采樣:讓小模型(學(xué)生)自己生成一段回答(軌跡)。
- 與 RL 完全一致:使用當(dāng)前學(xué)生策略生成完整或部分響應(yīng)。
- 關(guān)鍵區(qū)別:Tinker 在采樣時(shí)已自動(dòng)記錄每個(gè) Token 的 log-prob(用于 importance sampling)。
2. 評(píng)分:把這段回答送給大模型(老師),讓它對(duì)每個(gè) token 打分。
- 教師模型對(duì)軌跡中每個(gè) Token 計(jì)算 log-prob,提供細(xì)粒度反饋。
- 計(jì)算"學(xué)生分布"與"教師分布"的差異(用 reverse KL 散度)。
3. 更新:用這些逐 token 的誤差信號(hào)去更新小模型。
- 損失函數(shù)驅(qū)動(dòng)學(xué)生在每一步更接近教師分布。
- 將負(fù) Reverse KL 作為 per-token advantage,調(diào)用標(biāo)準(zhǔn) importance-sampling loss 更新學(xué)生。
為何 Reverse KL 是技術(shù)突破的關(guān)鍵?
公式如下:

選擇 Reverse KL 而非標(biāo)準(zhǔn) KL 散度有三重深意:
1. Mode-seeking 特性:Reverse KL 會(huì)迫使學(xué)生集中概率質(zhì)量于教師的最優(yōu)行為模式,而非在多種可能間平均分布。在解題中,教師在"combine"處高概率輸出"rationalize",Reverse KL 迫使學(xué)生在此處集中概率質(zhì)量于"rationalize",而非在"combine"、"simplify"、"expand"等多種次優(yōu)操作間分散。
這種特性至關(guān)重要——在專家行為中,往往存在唯一最優(yōu)路徑,而非多種等效解法。例如,解題中"有理化"是關(guān)鍵步驟,其他路徑幾乎必然導(dǎo)致錯(cuò)誤。
2. 與 RL 的天然兼容性:RL 本質(zhì)優(yōu)化序列級(jí) reverse KL,此處擴(kuò)展至 Token 級(jí),形成稠密版本。這使得 On-Policy Distillation 能無(wú)縫集成到現(xiàn)有 RL 訓(xùn)練棧中。
3. "不可欺騙"性:KL 值低 ? 行為高概率符合教師偏好。學(xué)生無(wú)法通過(guò)"投機(jī)取巧"獲得高分——必須真正理解每一步的正確性。
工程實(shí)現(xiàn)上,作者采用 discount factor = 0,即每個(gè) timestep 僅優(yōu)化 immediate next token。實(shí)踐中發(fā)現(xiàn)此簡(jiǎn)化未損失性能,反而提升穩(wěn)定性與實(shí)現(xiàn)簡(jiǎn)潔性。
教師模型的靈活性:不止于"大教小"
教師模型的選擇具有高度靈活性:
- 教師可以是更大更強(qiáng)的模型(如 32B → 8B);
- 也可以是學(xué)生自身的歷史版本(自蒸餾),只要其在目標(biāo)任務(wù)上表現(xiàn)可靠。
在持續(xù)學(xué)習(xí)場(chǎng)景中,原始 Qwen3-8B 可作為知識(shí)注入后的 Qwen3-8B 的教師。這種"自蒸餾"機(jī)制為持續(xù)學(xué)習(xí)提供了新思路:模型可以不斷"回憶"自己的早期能力,避免能力遺忘。
工程實(shí)現(xiàn)優(yōu)勢(shì):與現(xiàn)有技術(shù)棧的完美融合
On-Policy Distillation 的工程實(shí)現(xiàn)優(yōu)勢(shì)顯著:
- 無(wú)需等待完整 rollout,支持部分序列訓(xùn)練;
- 僅需教師模型的
compute_logprobs接口,無(wú)需額外獎(jiǎng)勵(lì)模型; - 與現(xiàn)有 RL 訓(xùn)練棧(如 Tinker)高度兼容,代碼改動(dòng)極小。
偽代碼清晰展示了其可實(shí)施性(基于 Tinker API):
# Initialize teacher client
teacher_client = service_client.create_sampling_client(...)
# Sample trajectories from student (on-policy)
trajectories = do_group_rollout(student_client, env_group_builder)
sampled_logprobs = trajectories.loss_fn_inputs["logprobs"]
# Compute reverse KL using teacher logprobs
teacher_logprobs = teacher_client.compute_logprobs(trajectories)
reverse_kl = sampled_logprobs - teacher_logprobs
trajectories["advantages"] = -reverse_kl
# Train with RL importance-sampling loss
training_client.forward_backward(trajectories, loss_fn="importance_sampling")本質(zhì)上,僅需將 RL 中的 KL 正則項(xiàng)替換為教師模型,即可復(fù)用整個(gè)訓(xùn)練基礎(chǔ)設(shè)施。這種設(shè)計(jì)使得 On-Policy Distillation 能夠被快速集成到現(xiàn)有訓(xùn)練流程中,大幅降低實(shí)施門(mén)檻。
實(shí)證驗(yàn)證:三大關(guān)鍵場(chǎng)景下的性能與效率優(yōu)勢(shì)
場(chǎng)景一:數(shù)學(xué)推理能力蒸餾(AIME'24 基準(zhǔn))
研究以 Qwen3-8B-Base 為學(xué)生,Qwen3-32B 為教師,在 AIME'24 上評(píng)估。
- 基線:經(jīng) 400K SFT 后達(dá) 60%;
- Off-policy 蒸餾:外推至 70% 需 ~2M 樣本;
- RL:消耗 17,920 GPU 小時(shí) → 67.6%;
- On-Policy Distillation:僅用 1,800 GPU 小時(shí)(成本降低 9–30×),達(dá)成 74.4%。
150 訓(xùn)練步內(nèi)收斂,驗(yàn)證其高樣本效率。若計(jì)入教師生成 SFT 數(shù)據(jù)的成本,總成本優(yōu)勢(shì)可達(dá) 30 倍。
Method | AIME'24 | Teacher FLOPs | Student FLOPs | Cost Efficiency vs SFT-2M |
Initialization: SFT-400K | 60% | 8.5 × 10^20 | 3.8 × 10^20 | – |
SFT-2M (extrapolated) | ~70% | 3.4 × 10^21 | 1.5 × 10^21 | 1× |
Reinforcement learning | 68% | - | - | ≈1× |
On-policy distillation | 70% | 8.4 × 10^19 | 8.2 × 10^19 | 9-30× |
更值得注意的是,這種效率提升并非偶然。研究通過(guò)對(duì)比實(shí)驗(yàn)發(fā)現(xiàn),當(dāng) SFT 初始化較強(qiáng)時(shí)(即教師策略在學(xué)生策略的支持范圍內(nèi)),On-Policy Distillation 能以更小的批量大小有效工作,因?yàn)槠涿?episode 提供的比特信息量顯著更多,從而減少了梯度噪聲。

策略內(nèi)蒸餾的計(jì)算效率這一優(yōu)勢(shì)在使用 LoRA 時(shí)尤為突出。在 SFT 中,LoRA 模型(rank=32)性能比全參數(shù)微調(diào)落后 13%,但在 On-Policy Distillation 后,差距縮小到僅 6%,證明了稠密監(jiān)督能極大提升參數(shù)高效微調(diào)方法的效果。
場(chǎng)景二:個(gè)性化助手的能力恢復(fù)(企業(yè)知識(shí) + 指令遵循)
在企業(yè)助手場(chǎng)景中,模型需同時(shí)具備內(nèi)部知識(shí)與指令遵循能力。
- 初始 Qwen3-8B:IF-eval(指令遵循)85%,Internal QA(知識(shí))18%;
- 經(jīng) 100% 內(nèi)部文檔 Mid-training 后:IF-eval 暴跌至 45%,Internal QA 升至 43%。
為恢復(fù)行為能力,研究者采用 自蒸餾:以原始 Qwen3-8B 為教師,對(duì) Tulu3 prompts 進(jìn)行 On-Policy Distillation。
結(jié)果顯著:IF-eval 恢復(fù)至 83%,Internal QA 保持 41%(無(wú)遺忘)。
Model | Internal QA Eval (Knowledge) | IF-eval (Chat) |
Qwen3-8B | 18% | 85% |
+ midtrain (100%) | 43% | 45% |
+ midtrain (70%) | 36% | 79% |
+ midtrain (70%) + distill | 41% | 83% |
這一結(jié)果揭示了 On-Policy Distillation 在持續(xù)學(xué)習(xí)中的巨大潛力:通過(guò)交替進(jìn)行"知識(shí)注入"與"行為召回",模型能夠不斷更新知識(shí)庫(kù),同時(shí)保持原有的行為能力。這種循環(huán)機(jī)制為構(gòu)建能夠持續(xù)學(xué)習(xí)的 AI 系統(tǒng)提供了可行路徑。
然而,知識(shí)注入的過(guò)程本身充滿挑戰(zhàn)。

內(nèi)部文檔與聊天數(shù)據(jù)比例掃描實(shí)驗(yàn)表明,盡管混入少量聊天數(shù)據(jù)有助于防止災(zāi)難性遺忘,但沒(méi)有任何比例能完全維持原始的 IF-eval 性能。

IF-eval在中期訓(xùn)練中的下降即使使用線性學(xué)習(xí)率衰減,性能在短暫持平后也僅能緩慢恢復(fù),永遠(yuǎn)無(wú)法回到初始水平。

LoRA在個(gè)性化中期訓(xùn)練中的表現(xiàn)使用 LoRA 等輕量級(jí)方法也無(wú)法解決此問(wèn)題,它在學(xué)習(xí)新知識(shí)的同時(shí),依然會(huì)遺忘原有的后訓(xùn)練行為。
場(chǎng)景三:極端數(shù)據(jù)效率——單 Prompt 也能有效訓(xùn)練
為驗(yàn)證數(shù)據(jù)效率,實(shí)驗(yàn)僅使用一個(gè) Prompt:
"Evaluate the limit: "
訓(xùn)練 20 步,共 5120 條 rollout。盡管訓(xùn)練數(shù)據(jù)極度有限,學(xué)生模型性能仍逼近教師水平。

單樣本多輪訓(xùn)練這一結(jié)果的意義遠(yuǎn)超表面:它證明 On-Policy Distillation 具備強(qiáng)抗過(guò)擬合能力與高效數(shù)據(jù)復(fù)用性。與 RL 不同,On-Policy Distillation 不會(huì)簡(jiǎn)單記憶最終答案,而是學(xué)習(xí)教師的完整解題策略。在極限題中,學(xué)生學(xué)會(huì)了"有理化"是關(guān)鍵步驟,而非盲目嘗試不同解法。
研究者還提供了一個(gè)真實(shí)案例:在 SimpleBench 測(cè)試中,學(xué)生模型(Qwen3-4B-Instruct-2507)錯(cuò)誤地將物理問(wèn)題("冰塊在煎鍋中會(huì)融化,因此數(shù)量為0")視為純數(shù)學(xué)問(wèn)題。教師模型(Qwen3-235B-A22B-Instruct-2507)對(duì)導(dǎo)致錯(cuò)誤的關(guān)鍵 Token(如"treat this as a pure math problem")進(jìn)行了重罰,而對(duì)后續(xù)可預(yù)測(cè)的錯(cuò)誤 Token 懲罰較輕。這種細(xì)粒度反饋使學(xué)生能夠精準(zhǔn)修正錯(cuò)誤,而非全盤(pán)否定。

illustration
深層洞見(jiàn):On-Policy Distillation 高效背后的原理
信息效率視角:從 O(1) 到 O(N) 的飛躍
RL 每 episode 僅傳遞 O(1) bits(最終對(duì)錯(cuò)),而 On-Policy Distillation 傳遞 O(N) bits(N = Token 數(shù))。以極限題為例,一個(gè) 500 Token 的解題過(guò)程,RL 僅提供 1 比特信息,而 On-Policy Distillation 提供約 500 比特。這種稠密監(jiān)督極大提升梯度信噪比。

RL與策略內(nèi)蒸餾的步驟對(duì)比研究者通過(guò)直接對(duì)比實(shí)驗(yàn)驗(yàn)證了這一點(diǎn):當(dāng)從相同的基礎(chǔ)模型(Qwen3-8B-Base)開(kāi)始,On-Policy Distillation 僅需 10 步就能達(dá)到 RL 需要 70 步才能達(dá)到的性能水平。累計(jì)計(jì)算效率提升達(dá) 50-100 倍,原因在于:
- RL 需要在接近評(píng)估上下文長(zhǎng)度的情況下訓(xùn)練(以避免格式懲罰),而 On-Policy Distillation 可以在較短上下文長(zhǎng)度下有效學(xué)習(xí);
- 當(dāng) SFT 初始化較強(qiáng)時(shí),On-Policy Distillation 能以更小的批量大小工作,進(jìn)一步減少梯度噪聲。
RL 的本質(zhì)是"策略搜索":On-Policy Distillation 如何跳過(guò)中間探索
RL 的本質(zhì)不是參數(shù)優(yōu)化,而是在語(yǔ)義策略空間中搜索。在極限題中,RL 不是在學(xué)習(xí)"如何求導(dǎo)",而是在嘗試不同的解題路徑組合。一旦發(fā)現(xiàn)有效策略,蒸餾則成為直接壓縮該策略的捷徑,跳過(guò)中間探索過(guò)程。
類比:科學(xué)研究需大量試錯(cuò)才能發(fā)現(xiàn)新定理,但教學(xué)只需傳遞結(jié)論。RL 類似于發(fā)現(xiàn)過(guò)程,而 On-Policy Distillation 類似于教學(xué)過(guò)程。
研究者通過(guò)分析發(fā)現(xiàn),RL 的大部分計(jì)算消耗在 rollout 和信用分配上,而非實(shí)際的參數(shù)更新。Pre-training 探索的是高維參數(shù)空間,而 RL 探索的是語(yǔ)義策略空間——它隨機(jī)嘗試從已有權(quán)重集中采樣的小修改,通過(guò)"運(yùn)氣"發(fā)現(xiàn)新策略。
一旦找到好的策略,On-Policy Distillation 就無(wú)需模擬 RL 的中間探索過(guò)程,而是直接學(xué)習(xí)最終策略。這在生產(chǎn)環(huán)境中尤為重要——我們通常只關(guān)心最終策略,而非中間探索路徑。
持續(xù)學(xué)習(xí)中的穩(wěn)定性優(yōu)勢(shì):為何 On-Policy Distillation 不會(huì)遺忘
即使 SFT 使用"自身生成數(shù)據(jù)"(理論 KL=0),也會(huì)因批次噪聲導(dǎo)致策略漂移。每個(gè)小批量數(shù)據(jù)都會(huì)因隨機(jī)性而略有不同,使訓(xùn)練逐漸變?yōu)?off-policy。

在自身樣本上進(jìn)行SFT導(dǎo)致性能下降實(shí)驗(yàn)證明,即使使用模型自身生成的數(shù)據(jù)進(jìn)行 SFT,只要學(xué)習(xí)率不為零,IF-eval 性能就會(huì)下降。這是因?yàn)橛邢夼螘?huì)引入分布偏移,導(dǎo)致模型逐漸偏離原始策略。
而 On-Policy Distillation 因教師固定、采樣始終 on-policy,天然避免分布偏移,實(shí)現(xiàn)穩(wěn)定收斂。研究者通過(guò)實(shí)驗(yàn)驗(yàn)證:當(dāng)使用 Qwen3-32B 自身生成的數(shù)據(jù)進(jìn)行 SFT 時(shí),即使 KL 在期望上為零,實(shí)際訓(xùn)練仍會(huì)導(dǎo)致性能下降。這是因?yàn)橛邢夼螘?huì)引入分布偏移,導(dǎo)致模型逐漸偏離原始策略。
相比之下,On-Policy Distillation 始終保持 on-policy 特性,且教師策略固定不變,使學(xué)生能夠穩(wěn)定收斂到教師行為,不會(huì)出現(xiàn)性能退化。這使其成為持續(xù)學(xué)習(xí)的理想工具——模型可以在學(xué)習(xí)新知識(shí)的同時(shí),保持原有能力。
On-Policy Distillation 應(yīng)用流程
對(duì)于希望在實(shí)際項(xiàng)目中應(yīng)用該方法的工程師或研究者,以下是一份可能的完整實(shí)現(xiàn)指南,包含了關(guān)鍵設(shè)計(jì)考量。
步驟 1:初始化教師客戶端
教師模型可以是更大更強(qiáng)的模型(如 Qwen3-32B),也可以是學(xué)生的歷史版本(用于自蒸餾)。關(guān)鍵在于,教師只需提供 compute_logprobs 接口,無(wú)需參與訓(xùn)練計(jì)算圖。
teacher_client = service_client.create_sampling_client(
base_model=teacher_config.base_model,
model_path=teacher_config.load_checkpoint_path,
)設(shè)計(jì)考量:教師模型無(wú)需反向傳播支持,因此可以獨(dú)立部署,甚至使用不同框架。這使得教師模型可以是閉源模型(只要提供 logprob 計(jì)算接口),極大擴(kuò)展了應(yīng)用場(chǎng)景。
步驟 2:從學(xué)生模型采樣軌跡(on-policy rollout)
與 RL 完全一致:使用當(dāng)前學(xué)生策略生成完整或部分響應(yīng)。關(guān)鍵區(qū)別在于,Tinker 在采樣時(shí)已自動(dòng)記錄每個(gè) Token 的 log-prob(用于 importance sampling)。
trajectories = do_group_rollout(student_client, env_group_builder)
sampled_logprobs = trajectories.loss_fn_inputs["logprobs"]設(shè)計(jì)考量:采樣完全 on-policy,確保訓(xùn)練分布 = 推理分布。這避免了 SFT 中的誤差累積問(wèn)題。實(shí)際應(yīng)用中,可以設(shè)置最大采樣長(zhǎng)度,支持部分序列訓(xùn)練,提高效率。
步驟 3:教師對(duì)軌跡計(jì)算每 Token 的 log-prob
將學(xué)生生成的 Token 序列輸入教師模型,獲取教師在相同前綴下對(duì)每個(gè) Token 的 log-prob。
teacher_logprobs = teacher_client.compute_logprobs(trajectories)
reverse_kl = sampled_logprobs - teacher_logprobs
trajectories["advantages"] = -reverse_kl關(guān)鍵:
- 教師看到的是學(xué)生實(shí)際生成的序列,而非理想軌跡;
- 懲罰集中在"forking tokens"(如"combine" vs "rationalize"),而非最終答案;
- 單次前向 pass 即可完成,計(jì)算開(kāi)銷遠(yuǎn)低于 RL 的 reward model 或人工標(biāo)注。
上文已聊到過(guò),這種設(shè)計(jì)使 On-Policy Distillation 能夠有效處理"學(xué)生早期出錯(cuò)"的情況。當(dāng)學(xué)生在關(guān)鍵步驟(如極限題中的"有理化")犯錯(cuò)時(shí),教師會(huì)對(duì)此 Token 重罰,但對(duì)后續(xù)可預(yù)測(cè)的錯(cuò)誤 Token 懲罰較輕,使學(xué)生能夠精準(zhǔn)修正錯(cuò)誤,而非全盤(pán)否定。
步驟 4:使用 RL 損失函數(shù)更新學(xué)生
將負(fù) Reverse KL 作為 per-token advantage,調(diào)用標(biāo)準(zhǔn) importance-sampling loss 更新學(xué)生。
training_client.forward_backward(trajectories, loss_fn="importance_sampling")設(shè)計(jì)考量:整個(gè)流程復(fù)用 RL 訓(xùn)練棧,代碼改動(dòng)僅需替換 reward 計(jì)算邏輯。這種設(shè)計(jì)使得 On-Policy Distillation 能夠被快速集成到現(xiàn)有訓(xùn)練流程中。
何時(shí)使用 On-Policy Distillation?關(guān)鍵決策點(diǎn)
1. 已有教師模型:任何指令微調(diào)模型均可作為教師,通過(guò) compute_logprobs 接口提供監(jiān)督;
2. Post-training 階段:適用于 Mid-training 之后的行為對(duì)齊;
3. 持續(xù)學(xué)習(xí)場(chǎng)景:交替進(jìn)行"知識(shí)注入(Mid-training)"與"行為召回(On-Policy Distillation)";
4. 數(shù)據(jù)稀缺場(chǎng)景:?jiǎn)?Prompt 多次采樣即可有效訓(xùn)練。
特別值得注意的是,在持續(xù)學(xué)習(xí)場(chǎng)景中,On-Policy Distillation 表現(xiàn)出獨(dú)特優(yōu)勢(shì)。當(dāng)模型通過(guò) Mid-training 獲取新知識(shí)后,往往會(huì)導(dǎo)致原有能力(如指令遵循)退化。此時(shí),使用原始模型作為教師進(jìn)行 On-Policy Distillation,可以高效恢復(fù)原有能力,而不會(huì)丟失新獲取的知識(shí)。
實(shí)踐建議:提升效果的關(guān)鍵技巧
1. 教師模型選擇:當(dāng)學(xué)生缺乏相關(guān)領(lǐng)域知識(shí)時(shí)(概率支持集為零),建議先進(jìn)行少量 SFT 擴(kuò)展支持集,再應(yīng)用 On-Policy Distillation 進(jìn)行模式搜索。
2. 批量大小調(diào)整:當(dāng) SFT 初始化較強(qiáng)時(shí),可以使用更小的批量大小,因?yàn)槌砻鼙O(jiān)督減少了梯度噪聲。
3. 部分序列訓(xùn)練:無(wú)需等待完整 rollout,支持部分序列訓(xùn)練,提高數(shù)據(jù)利用效率。
4. 混合獎(jiǎng)勵(lì)信號(hào):雖然這個(gè)研究主要使用純 distillation 信號(hào),但可以考慮將 distillation-based per-token rewards 與序列級(jí)環(huán)境獎(jiǎng)勵(lì)結(jié)合,進(jìn)一步提升效果。
范式升級(jí)與實(shí)踐啟示
On-Policy Distillation的本質(zhì)是在強(qiáng)化學(xué)習(xí)框架下運(yùn)行,但它將傳統(tǒng)RL中“整條軌跡只給一個(gè)標(biāo)量獎(jiǎng)勵(lì)”的稀疏信號(hào),替換為“每個(gè)Token都以教師分布為即時(shí)獎(jiǎng)勵(lì)”的密集信號(hào)。從形式化角度看,它完全符合 RL 范式:狀態(tài)是已生成的文本前綴,動(dòng)作是下一個(gè) Token,策略是學(xué)生模型,而獎(jiǎng)勵(lì) 正是 Reverse KL 的逐項(xiàng)。目標(biāo)仍是最大化累積獎(jiǎng)勵(lì),僅需通過(guò)重要性采樣進(jìn)行策略梯度更新。
相對(duì)“傳統(tǒng) RL”,我做了一個(gè)簡(jiǎn)單對(duì)比,如下表:
維度 | 傳統(tǒng) RL | 策略內(nèi)蒸餾 |
獎(jiǎng)勵(lì)來(lái)源 | 環(huán)境或規(guī)則給出的稀疏標(biāo)量 | 教師模型給出的逐 token log-prob 差 |
獎(jiǎng)勵(lì)密度 | 1/整條回答 | 每生成一個(gè) token 就有 |
探索方式 | 隨機(jī)采樣 + 獎(jiǎng)勵(lì)驅(qū)動(dòng) | 直接讓學(xué)生在教師分布內(nèi)“做對(duì)齊” |
方差 | 高(稀疏獎(jiǎng)勵(lì)) | 低(密集監(jiān)督) |
收斂速度 | 慢 | 快 7–10× |
實(shí)現(xiàn)成本 | 需價(jià)值網(wǎng)絡(luò)、獎(jiǎng)勵(lì)模型、大量 rollout | 只需教師 log-prob,一次前向即可 |
On-Policy Distillation是把“環(huán)境給的稀疏獎(jiǎng)勵(lì)”換成了“教師模型給的逐 token 密集獎(jiǎng)勵(lì)”,因此既保留了 RL“在自己犯的錯(cuò)誤上改正”的優(yōu)點(diǎn),又避免了獎(jiǎng)勵(lì)稀疏帶來(lái)的樣本效率低問(wèn)題,從而實(shí)現(xiàn)高效知識(shí)遷移。
那么,,它跟純蒸餾的區(qū)別在哪?如下:
維度 | 純蒸餾(SFT) | 在線策略蒸餾 |
數(shù)據(jù)分布 | 教師生成的固定數(shù)據(jù)集(off-policy) | 學(xué)生自己生成的實(shí)時(shí)軌跡(on-policy) |
上下文差異 | 學(xué)生可能從未見(jiàn)過(guò)“自己犯錯(cuò)”的狀態(tài) | 學(xué)生就在自己易錯(cuò)的狀態(tài)上得到糾正 |
誤差累積 | 會(huì),長(zhǎng)鏈推理越錯(cuò)越遠(yuǎn) | 幾乎不會(huì),每一步都拉回教師分布 |
這一設(shè)計(jì)成功融合了 on-policy 訓(xùn)練的可靠性與蒸餾的稠密監(jiān)督效率,為 Post-training 提供了一條高性價(jià)比路徑。與傳統(tǒng) RL 相比,它無(wú)需獎(jiǎng)勵(lì)模型或價(jià)值網(wǎng)絡(luò),僅靠教師的一次前向計(jì)算即可獲得低方差、高密度的反饋,收斂速度提升 7–10 倍;與純 SFT 相比,它始終在學(xué)生自身生成的軌跡上訓(xùn)練,有效避免了 off-policy 導(dǎo)致的誤差累積與分布偏移。這成為一種經(jīng)濟(jì)且強(qiáng)大的后訓(xùn)練方法,因?yàn)樗Y(jié)合了策略訓(xùn)練的優(yōu)勢(shì)和密集的獎(jiǎng)勵(lì)信號(hào)。

對(duì)AI從業(yè)者而言,該方法可以給我們帶來(lái)三大啟示:
1. 小模型 + 強(qiáng)后訓(xùn)練 > 大模型 + 弱對(duì)齊:通過(guò) On-Policy Distillation,8B 小模型在數(shù)學(xué)推理等垂直領(lǐng)域能超越 32B 大模型。這意味著,針對(duì)特定任務(wù)精心設(shè)計(jì)的訓(xùn)練流程,可以彌補(bǔ)模型規(guī)模的差距。
2. 模型自身即獎(jiǎng)勵(lì)源:任何指令微調(diào)模型均可通過(guò) compute_logprobs 充當(dāng)教師,大幅降低對(duì)人工標(biāo)注和復(fù)雜獎(jiǎng)勵(lì)模型的依賴。這為資源有限的團(tuán)隊(duì)提供了可行路徑。
3. 持續(xù)學(xué)習(xí)新范式:通過(guò)"Mid-training + On-Policy Distillation"循環(huán),實(shí)現(xiàn)知識(shí)更新與能力保留的統(tǒng)一。這種機(jī)制為構(gòu)建能夠持續(xù)進(jìn)化的 AI 系統(tǒng)奠定了基礎(chǔ)。
在算力成本日益敏感的今天,On-Policy Distillation 為非前沿實(shí)驗(yàn)提供了訓(xùn)練專家級(jí)小模型的可行路徑。它不僅降低了技術(shù)門(mén)檻,還開(kāi)辟了新的可能性——讓小模型在特定領(lǐng)域發(fā)揮大作用。
最終,On-Policy Distillation 的意義不僅在于技術(shù)本身,更在于它代表了一種思維方式的轉(zhuǎn)變:從單純追求模型規(guī)模,轉(zhuǎn)向更智能的訓(xùn)練方法。正如研究者在科學(xué)發(fā)現(xiàn)中,會(huì)花費(fèi)大量時(shí)間和資源尋找答案,但一旦發(fā)現(xiàn),教學(xué)就變得簡(jiǎn)單得多。On-Policy Distillation 正是這種"教學(xué)"思維在 AI 訓(xùn)練中的體現(xiàn)——它不追求從零開(kāi)始探索,而是高效傳遞已知的專家知識(shí)。
On-Policy Distillation = 用"大模型當(dāng)老師,小模型當(dāng)學(xué)生",讓學(xué)生自己寫(xiě)作業(yè),老師逐字批改,學(xué)得又快又好還不貴。
讓小模型,大有可為。



























