好老師懂得因材施教

一種全新的自我蒸餾方法,透過聯合訓練教師與學生,提升模型在複雜推理與代理任務上的效能與訓練效率。

作者Perplexity Research & NVIDIA

簡介

強化學習(RL)被廣泛用於語言模型的後訓練,以提升模型在複雜推理與長時程代理任務上的能力。

在典型的設定中,模型會反覆嘗試完成某項任務,每次嘗試都會獲得一個結果獎勵,並學會偏好在高獎勵嘗試中採取的行動。然而,單一結果獎勵提供的學習訊號相當稀疏,無法區分哪些中間行動對結果有幫助、哪些造成了損害。這種稀疏性限制了樣本效率,在困難的代理任務上尤其明顯,因為這類任務的嘗試過程很長,成功的情況也很少見。

解決這種稀疏性的一種熱門方法是同策略蒸餾(On-Policy Distillation,OPD),它利用較強的教師模型,針對學生自己的嘗試逐個 token 提供指引,從而提供密集得多的獎勵。然而,教學本身就是一項技能。擅長解決某項任務的模型,不一定擅長傳授這項任務,因為它的回饋可能超出學生目前的能力範圍。這促使我們不只訓練學生模仿教師,也訓練教師為學生提供更契合的指引。

我們提出了這樣一種方法:同策略聯合學習與教學(Joint On-policy Learning and Teaching,JOLT)。我們以同策略自我蒸餾(On-Policy Self-Distillation,OPSD)為基礎,讓單一模型扮演兩種角色:一個是能取得特權資訊(例如經過驗證的解答)的教師,另一個是無法取得這類資訊的學生。我們聯合訓練這兩種角色。學生遵循標準的蒸餾目標函數;教師的目標函數則促使其回饋推動學生朝著與「以學生自身獎勵進行 RL」相同的方向前進。這些目標函數共同訓練教師配合學生目前的程度因材施教,並幫助學生從力所能及的指引中學習。

我們的實驗顯示,在一系列數學推理、程式設計與代理任務中,模型效能與訓練效率皆有所提升。

從稀疏獎勵到密集回饋

在最基本的形式中,結果獎勵 RL 使用期望報酬目標函數:

JRL(θ)=Eτ∼πθ[R(τ)]\mathcal{J}_{\mathrm{RL}}(\theta) = \mathbb{E}_{\tau\sim\pi_\theta}\left[R(\tau)\right]

此處,τ\tau 是遵循策略 πθ\pi_\theta 的軌跡,R(τ)R(\tau) 則是該軌跡的報酬。對應的策略梯度為:

gRL(θ)=∇θJRL(θ)=Eτ∼πθ[∑tR(τ) ∇θlog⁡πθ(at∣st)]g_{\mathrm{RL}}(\theta) = \nabla_\theta \mathcal{J}_{\mathrm{RL}}(\theta) = \mathbb{E}_{\tau\sim\pi_\theta}\left[\sum_t R(\tau)\,\nabla_\theta\log\pi_\theta(a_t\mid s_t)\right]

其中 sts_t 與 ata_t 分別代表時間步 tt 的狀態與行動。為了降低以樣本為基礎之估計的變異數,梯度通常表示為:

gRL(θ)=Eτ∼πθ[∑tAπθ(st,at) ∇θlog⁡πθ(at∣st)]g_{\mathrm{RL}}(\theta) = \mathbb{E}_{\tau\sim\pi_\theta}\left[\sum_t A^{\pi_\theta}(s_t,a_t)\,\nabla_\theta\log\pi_\theta(a_t\mid s_t)\right]

其中優勢 Aπθ(st,at)A^{\pi_\theta}(s_t, a_t) 衡量的是行動 ata_t 在狀態 sts_t 下相對於目前策略的預期超額報酬。有一種方法是群組相對策略最佳化(Group Relative Policy Optimization,GRPO),它將每條軌跡的報酬與針對同一提示詞所取樣之群組的平均報酬相比較,藉此估計優勢。

然而,即使有這些調整,結果獎勵強化學習仍受限於稀疏的監督,在困難的長時程任務上尤其如此。越來越多的研究藉由引入額外的資訊來源,提供更密集的學習訊號,以解決這個問題。

同策略蒸餾(OPD)就是其中一種方法。OPD 並非只從最終獎勵中學習,而是從學生取樣軌跡,並由較強的教師評估每個取樣的行動。對於教師策略 πT\pi_T,以及用來生成軌跡的學生參數固定快照 θˉ\bar{\theta},在 θ=θˉ\theta = \bar{\theta} 處評估的局部梯度為:

gOPD(θˉ;πT)=∇θJOPD(θ;θˉ,πT)∣θ=θˉ=−∇θEτ∼πθˉ ⁣[∑tKL ⁣(πθ(⋅∣st) ∥ πT(⋅∣st))]∣θ=θˉ=Eτ∼πθˉ[∑t(log⁡πT(at∣st)−log⁡πθˉ(at∣st)) ∇θˉlog⁡πθˉ(at∣st)]\begin{aligned}g_{\mathrm{OPD}}(\bar\theta;\pi_T) &= \left.\nabla_\theta \mathcal{J}_{\mathrm{OPD}}(\theta;\bar\theta,\pi_T)\right|_{\theta=\bar\theta}\\ &= -\left.\nabla_\theta \mathbb{E}_{\tau\sim\pi_{\bar\theta}}\!\left[\sum_t \mathrm{KL}\!\left(\pi_\theta(\cdot\mid s_t)\,\middle\|\,\pi_T(\cdot\mid s_t)\right)\right]\right|_{\theta=\bar\theta}\\ &= \mathbb{E}_{\tau\sim\pi_{\bar\theta}}\left[\sum_t \bigl(\log\pi_T(a_t\mid s_t)-\log\pi_{\bar\theta}(a_t\mid s_t)\bigr)\,\nabla_{\bar\theta}\log\pi_{\bar\theta}(a_t\mid s_t)\right]\end{aligned}

此處,JOPD(θ;θˉ,πT)\mathcal{J}_{\mathrm{OPD}}(\theta;\bar\theta,\pi_T) 是負的反向 KL 蒸餾目標函數。在微分過程中,教師策略與取樣的前綴保持固定。教師與學生的對數機率比會在每個造訪過的狀態上提供密集的學習訊號,取代優勢作為行動層級的權重。

同策略自我蒸餾(OPSD)進一步免除了對獨立教師模型的需求。學生策略在獲得特權資訊(例如經過驗證的解答、回饋或參考軌跡)時,便能充當自己的教師。然而,OPSD 只訓練學生模仿教師,並沒有任何機制能確保教師為學生提供有用的訊號。

同策略聯合學習與教學

JOLT 擴展了 OPSD,將共享模型同時訓練成提供更契合指引的教師,以及從這些指引中學習的學生。掌握更多資訊的教師從結果獎勵中學習,並透過朝向學生的 KL 正則化加以約束;沒有特權資訊的學生則從教師的密集蒸餾訊號中學習。教師更新使用教師生成的嘗試,學生更新則使用由教師評分、學生生成的嘗試。JOLT+ 更進一步以結果獎勵補充學生的蒸餾訊號。

單一策略同時以教師和學生的身分學習。

訓練教師

定義教師應該做什麼

教師表現更好,並不一定能轉化為對學生有用的更新。教師可能利用特權資訊走學生無法使用的捷徑、為學生不太可能產生的軌跡賦予高機率,或在學生生成的前綴出錯後提供不可靠的指引。因此,教師的品質應取決於它提供給學生的學習訊號,而非教師自身的任務獎勵。

如果教師在學生身上引發的蒸餾更新,與學生期望任務獎勵的策略梯度一致(至多相差一個正的縮放係數),我們就稱該教師具有獎勵一致性。具體而言,具獎勵一致性的教師 πT⋆\pi_T^\star 應滿足:

gOPD(θˉ;πT⋆)=1βT gRL(θˉ)g_{\mathrm{OPD}}(\bar\theta;\pi_T^\star) = \frac{1}{\beta_T}\,g_{\mathrm{RL}}(\bar\theta)

其中 βT\beta_T 是正純量。與上一節相同,gOPDg_{\mathrm{OPD}} 是 OPD 局部梯度,θˉ\bar\theta 是學生模型參數 θ\theta 的固定快照,gRLg_{\mathrm{RL}} 則是期望報酬目標函數的策略梯度。

滿足此條件的一種教師為:

πT⋆(a∣s,c)=1Z(s) πθˉ(a∣s)exp⁡ ⁣(1βTAπθˉ(s,a))\pi_T^\star(a\mid s,c) = \frac{1}{Z(s)}\,\pi_{\bar\theta}(a\mid s)\exp\!\left(\frac{1}{\beta_T}A^{\pi_{\bar\theta}}(s,a)\right)

此處,Aπθˉ(s,a)A^{\pi_{\bar{\theta}}}(s, a) 代表學生延續優勢,Z(s)Z(s) 則是確保其構成有效機率分布的正規化常數。

從理想目標到教師目標函數

我們可以透過最小化教師與理想目標 πT⋆\pi_T^\star 之間的 KL 散度,朝該目標訓練教師。對於固定的學生與狀態 ss,可得:

min⁡πT KL ⁣(πT(⋅∣s,c) ∥ πT⋆(⋅∣s,c))\min_{\pi_T}\,\mathrm{KL}\!\left(\pi_T(\cdot\mid s,c)\,\middle\|\,\pi_T^\star(\cdot\mid s,c)\right)

代入 πT⋆\pi_T^\star 的表達式,可得一個等價的最大化問題:

max⁡πT{Ea∼πT(⋅∣s,c) ⁣[Aπθˉ(s,a)]−βT KL ⁣(πT(⋅∣s,c) ∥ πθˉ(⋅∣s))}\max_{\pi_T}\Biggl\{\mathbb{E}_{a\sim\pi_T(\cdot\mid s,c)}\!\left[A^{\pi_{\bar\theta}}(s,a)\right]-\beta_T\,\mathrm{KL}\!\left(\pi_T(\cdot\mid s,c)\,\middle\|\,\pi_{\bar\theta}(\cdot\mid s)\right)\Biggr\}

此目標函數鼓勵教師選擇學生優勢較高的行動,同時保持接近學生的行動分布。參數 βT\beta_T 控制此懲罰的強度:數值越大,教師就越貼近學生目前的行為;數值越小,教師就能更積極地偏好高優勢的行動。

實用的替代目標函數

此目標函數取決於學生在每個行動之後能延續得多好,但這些學生延續優勢通常無法取得。因此,我們以教師自身軌跡的中心化報酬作為實用的替代。獎勵項鼓勵教師解決任務,KL 項則抑制教師偏離學生目前的行動分布。雖然 KL 項能讓教師保持接近學生,但這種替代並不精確,因為教師的報酬未必與學生的延續優勢相符。

JT(θ;θˉ)=Eτ∼πθˉ(⋅∣c)[ ∑t(sg⁡[A^T(τ)]log⁡πθ(at∣st,c)−βT KL(πθ(⋅∣st,c) ∥ sg⁡[πθˉ(⋅∣st)]))]\begin{aligned}\mathcal{J}_T(\theta;\bar\theta) = \mathbb{E}_{\tau\sim\pi_{\bar\theta}(\cdot\mid c)}\Biggl[\,\sum_t \Bigl(&\operatorname{sg}\bigl[\widehat{A}_T(\tau)\bigr]\log\pi_\theta(a_t\mid s_t,c)\\ &-\beta_T\,\mathrm{KL}\bigl(\pi_\theta(\cdot\mid s_t,c)\,\big\|\,\operatorname{sg}[\pi_{\bar\theta}(\cdot\mid s_t)]\bigr)\Bigr)\Biggr]\end{aligned}

此處,A^T(τ)\widehat{A}_T(\tau) 是教師嘗試的報酬減去其所屬群組中教師生成嘗試的平均報酬。運算子 sg⁡\operatorname{sg} 表示停止梯度:在微分過程中,其引數被視為固定,取樣的前綴與學生參考也是如此。

訓練學生

學生更新是標準的 OPSD 更新。學生根據任務生成軌跡,接著由同一個模型在情境中加入特權資訊,為每個取樣的 token 評分。學生目標函數會在學生造訪的每個狀態上,懲罰學生與這位擁有特權資訊的教師之間的反向 KL 散度:

JOPSD(θ;θˉ)=− Eτ∼πθˉ[∑tKL(πθ(⋅∣st) ∥ sg⁡[πθˉ(⋅∣st,c)])]\mathcal{J}_{\mathrm{OPSD}}(\theta;\bar\theta) = -\,\mathbb{E}_{\tau\sim\pi_{\bar\theta}}\left[\sum_t \mathrm{KL}\bigl(\pi_\theta(\cdot\mid s_t)\,\big\|\,\operatorname{sg}[\pi_{\bar\theta}(\cdot\mid s_t,c)]\bigr)\right]

因此,教師偏好的 token 會被強化,而教師認為可能性低於學生判斷的 token 則會被抑制。

綜合起來

結合教師與學生的目標函數,即可得到聯合訓練目標函數:

JJOLT(θ;θˉ)=JT(θ;θˉ)+βS JOPSD(θ;θˉ)\mathcal{J}_{\mathrm{JOLT}}(\theta;\bar\theta) = \mathcal{J}_T(\theta;\bar\theta) + \beta_S\,\mathcal{J}_{\mathrm{OPSD}}(\theta;\bar\theta)

βS\beta_S 是一個純量,用來設定學生蒸餾損失在合併更新中所占的比重。

獎勵一致性的結果刻畫了在給定教師時,學生的蒸餾更新。JOLT 運用這項原則來引導聯合訓練,結合教師與學生的目標函數,以更新兩者共享的參數。

JOLT+ 還會將學生自身的結果獎勵加入其更新中。每條學生軌跡的中心化報酬會加到蒸餾訊號上,將密集的教師監督與針對學生軌跡的直接結果回饋結合起來。教師目標函數維持不變,因此可以寫成:

JJOLT+(θ;θˉ)=JT(θ;θˉ)+βS JOPSD(θ;θˉ)+Eτ∼πθˉ ⁣[∑tsg⁡[A^S(τ)] log⁡πθ(at∣st)]\begin{aligned}\mathcal{J}_{\mathrm{JOLT+}}(\theta;\bar\theta) &= \mathcal{J}_T(\theta;\bar\theta)+\beta_S\,\mathcal{J}_{\mathrm{OPSD}}(\theta;\bar\theta)\\ &\quad+\mathbb{E}_{\tau\sim\pi_{\bar\theta}}\!\left[\sum_t \operatorname{sg}[\widehat{A}_S(\tau)]\,\log\pi_\theta(a_t\mid s_t)\right]\end{aligned}

此處,A^S(τ)\widehat{A}_S(\tau) 是學生軌跡的報酬減去其所屬學生生成軌跡群組的平均報酬。

在這兩種變體中,每個角色都從在其自身情境下生成的軌跡中學習,且兩個角色都會更新共享策略。單一訓練步驟的虛擬碼如下所示。

單一 JOLT 訓練步驟的虛擬碼。

實驗

我們在涵蓋數學推理、程式碼生成、工具使用與長時程終端機任務的基準測試上評估 JOLT 與 JOLT+,並使用不同的基礎模型與不同形式的特權資訊。具體來說,我們使用以下基準測試、基礎模型與特權資訊配置進行實驗:

  • GSM8K:我們訓練 DeepSeek-V2-Lite,訓練資料為 GSM8K,這是一個小學數學問題資料集。教師會取得每道題目經過驗證的答案。
  • MATH:我們訓練 Qwen3-0.6B,訓練資料為 MATH。教師會取得附有完整解題步驟的參考解答。
  • LCBv6:我們訓練 Qwen3-8B,訓練資料為 LiveCodeBench-V6 中的 131 道程式設計題目。教師會取得一份通過所有訓練可見測試的模型生成解答;若沒有任何嘗試通過這些測試,則取得執行回饋。
  • AppWorld:我們訓練 Qwen3-4B-Instruct,訓練資料為 AppWorld。教師會取得先前嘗試的摘要。
  • Terminal-Bench:我們訓練 Qwen3-30B-A3B-Instruct,訓練資料為終端機代理的訓練任務集 TMax,並在 Terminal-Bench 2.1 上進行評估。教師會取得非公開的驗證器資訊。

我們與 GRPO、OPSD 及 π-Distill 進行比較,並為每種方法調整超參數。與 JOLT 類似,π-Distill 也在共享模型中聯合訓練擁有特權資訊的教師角色與學生角色;不過,它使用不同的教師目標,且其學生更新仍屬於異策略(off-policy),依賴教師生成的軌跡,而非學生自己生成的內容。

準確率

在我們評估的每種設定中,JOLT+ 的平均分數都是最高的。與測試中最強的基準方法 GRPO 相比,它將 GSM8K 準確率提升了 1.5 個百分點(pp),MATH 準確率提升了 4.2pp,LCBv6 準確率提升了 3.0pp,AppWorld 狀態測試通過率則提升了 9.9pp。

JOLT+ 在全部四項基準測試中的平均分數最高。

在沒有任何直接學生獎勵的情況下,JOLT 在 GSM8K、MATH 和 LCBv6 上的平均準確率都高於 GRPO。不過,在 AppWorld 上,它仍低於 GRPO 和 π-Distill。

Terminal-Bench 2.1 是時程最長的設定。JOLT+ 在每個回報的 k 值下都擁有最高的 pass@k,從 pass@1 的 10.96% 到 pass@32 的 34.83%。JOLT 在每個 k 值下都優於基礎模型與兩種蒸餾基準方法,但仍低於 GRPO。OPSD 在每個 k 值下的分數都低於基礎模型。

在 Terminal-Bench 上,JOLT+ 在每種嘗試預算下皆居領先。

Token 效率與擴展性

我們也關注效能如何隨訓練預算擴展。我們在 MATH 上以不同的訓練 token 預算評估 GRPO、OPSD 與 JOLT,並比較所得的學生準確率。

下圖顯示各方法的準確率如何隨訓練 token 支出而變化。我們以已處理的訓練 token 數來衡量成本,其中包含所有未填充的提示詞、特權情境、最佳化回合,以及教師與學生之間的交叉評分。

JOLT 只需較少的 token 即可達到 GRPO 的準確率。

各點代表不同檢查點的已處理訓練 token 數與準確率;誤差線代表各次執行之間的 ±1 個標準差。我們依循探討 RL 運算量擴展的先前研究,擬合準確率與對數訓練 token 預算之間的 S 形關係。

JOLT 在早期就展現出樣本效率,同時在三種方法中達到最高的準確率,最終穩定在約 72%。OPSD 在預算較小時進步迅速,但在約 62% 的準確率處停滯。GRPO 起初學習較慢,但能持續進步更久,最終攀升至約 70%。在 63.44% 的相同準確率下,GRPO 實際觀測到的檢查點使用了 840 萬個 token,而 JOLT 的擬合曲線則顯示僅需 130 萬個,token 用量少了 6.5 倍。

我們也以完成 token 來衡量成本:GRPO 和 OPSD 計入的是學生的完成內容,JOLT 則同時計入教師與學生的完成內容,但不包含提示詞、特權情境與額外的最佳化回合。若以完成 token 而非已處理的訓練 token 進行比較,在相同準確率水準下,效率差距會擴大到約 13 倍。在一系列目標準確率範圍內,JOLT 使用的完成 token 少 9.5–14.4 倍,已處理的訓練 token 少 4.3–7.4 倍。

JOLT 的 token 優勢在 55% 到 65% 的準確率範圍內皆成立。

結論

特權資訊可以讓教師更擅長解決任務,卻不一定能讓它更擅長教導學生在沒有該資訊的情況下解決同一項任務。JOLT 根據學生目前的行為來訓練教師,藉此因應這項差異。

這種聯合訓練同時提升了準確率與效率。加入學生結果獎勵後,JOLT+ 相較於 GRPO 的絕對提升分別為:GSM8K 1.5 個百分點、MATH 4.2 個百分點、LCBv6 3.0 個百分點、AppWorld 9.9 個百分點,以及 Terminal-Bench 2.1 pass@1 2.7 個百分點。在 MATH 上,即使沒有直接的學生獎勵,JOLT 在相同準確率下使用的完成 token 仍比 GRPO 少 13 倍,已處理的訓練 token 也少 6.5 倍。

JOLT 讓教師的指引能隨著學生一同演進。這促使我們進一步探索教師是否也能學會生成有用的訓練任務。未來一個有趣的研究方向,是聯合訓練負責生成任務的教師與負責解決問題的學生,並利用學生的學習進度,以課程的形式改善所生成的任務。如此一來,合成任務的生成便能因應學生接下來準備好學習的內容。

如需更多詳細資訊,請參閱我們的完整論文。我們將於近期開源相關程式碼。

引用

BibTeX
@online{perplexity2026AGoodTeacherMeetsTheStudentWhereTheyAre,
  author = {{Perplexity} and Randy Ardywibowo and Arnav Dalal and Jiantao Jiao and Jarrod Bryan and Claire Beamer and Jeremy Yang and Jerry Ma},
  title = {{A good teacher meets the student where they are}},
  date = {2026-10-21},
  url = {https://www.perplexity.ai/hub/blog/a-good-teacher-meets-the-student-where-they-are}
}