你有沒有想過這樣一個問題:一個厲害的老師,教一個不那麼厲害的學生,是不是老師說的每句話都該照單全收?
現實往往不是這樣。有時候學生在某道題上歪打正著蒙對了,老師反而栽了跟頭。這時候如果還是機械地讓學生"學老師的樣子",結果會很奇怪:學生明明做對了,卻被硬生生拽向錯誤的方向。
這正是當下大語言模型訓練里一個真實存在、卻長期被忽視的問題。
**核心問題出在哪**
先說說背景。現在訓練小模型(學生模型)常用一種叫"在線策略蒸餾
"的方法。
在線策略蒸餾(On-Policy Distillation,簡稱OPD
):讓學生模型自己生成答案,然後用更強的老師模型給這些答案評分、提供反饋,再根據反饋調整學生的參數,這個過程不依賴提前準備好的標準答案,而是讓學生在自己"說話"的過程中被糾正。
這個思路聽起來挺合理:老師全程跟著學生的真實表現走,針對性地指導。但問題來了,當你把好幾個任務(比如生物、化學、物理)打包在一起,用同一個老師教同一個學生時,老師的可靠性是會隨任務劇烈波動的。
論文裡給出了一組很扎心的數據。在物理計算類任務上,老師和學生雙雙做錯的比例高達34%,而在化學理解類任務上,這個比例只有1%。換句話說,同一個老師,在不同任務里的可靠程度天差地別。更棘手的是,哪怕在同一個任務內部,也存在老師犯錯而學生蒙對的情況,比如用Llama
模型做實驗時,學生在生物題上有5.9%的比例是"老師錯、學生對",物理題這個比例跳到9.8%。
標準的OPD完全不管這些細節,它只看一件事:老師給每個詞打的分數和學生給的分數之間的差距(術語上叫"對數比率
"),差距大就使勁推,差距小就少推。可它根本不問一句:"這道題到底誰做對了?"
結果就是,論文作者做了個統計:在訓練數據里,即便學生和老師都做對了同一道題,這個對數比率的均值居然還是負的(Qwen3
模型上是-1.31,Llama模型上是-0.22)。這意味著什麼?意味著標準OPD會系統性地打壓學生那些本來就答對的回答,因為它根本不知道"對"還是"錯",只會盲目地照著老師的喜好調整每一個字。
這就好比一個批改作業的助教,從來不看學生到底寫得對不對,只按照"標準答案的語氣"去改,哪怕學生用了一種標準答案沒寫但完全正確的解法,助教也會把它改得面目全非,強行往標準答案的措辭上靠。如果助教壓根不參考對錯,只參考"像不像標準答案",那這個批改機制本身就有問題,遲早會把學生教得越來越糊塗。
論文團隊把這種現象形象地稱為"方向性衝突
":反饋的方向和學生實際表現的方向對不上。
**已有的補救辦法為什麼不夠**
有人已經意識到這個問題,提出了一種叫OPDVR
的方法(On-Policy Distillation with Verifiable Reward)。
OPDVR:先用某種驗證機制判斷學生答案到底對不對,如果對,就只保留那些"鼓勵"方向的反饋(把負的清零);如果錯,就只保留"打壓"方向的反饋。這相當於給反饋裝了個"方向閥門"。
這個思路聽起來已經解決了前面說的方向性衝突,但論文作者發現,這個閥門有個隱藏的副作用:它太"乾淨"了。
因為前面提到,即使學生做對了題,原始的對數比率均值也是負的。閥門機制是取"max(d, 0)",也就是說只要這個比率是負的,不管多負,統統清零變成0。論文裡實測,經過這個閥門處理後,學生答對題目時平均能拿到的正向反饋權重只有0.08到0.09,幾乎等於沒有反饋。就像你明明考了滿分,老師卻因為某個細枝末節的格式問題,把你的表揚資訊量壓到幾乎聽不見。方向是對了,力度卻幾乎歸零。
而且OPDVR還有一個更深層的局限:它只看學生對不對,完全不管老師這次到底靠不可靠。換句話說,不管老師這道題是蒙對了還是真懂了,只要學生錯了,就一股腦地用老師的偏好去打壓學生,這其實沒有真正利用好"老師到底會不會"這個關鍵資訊。
**DuoOPD
:讓學生定方向,讓師生配合定支持方式**
這篇論文提出的方法叫DuoOPD,核心思路其實可以用一句話概括:方向交給學生自己說了算,但具體怎麼支持這個方向,要看老師和學生這次配合得怎麼樣。
說得再直白一點,每次學生答題,都會出現四種組合:老師和學生都對、老師對學生錯、老師錯學生對、兩個都錯。DuoOPD針對這四種情況,分別設計了不同的處理方式,而且這套規則對所有任務通用,不需要為每個任務單獨調參。
先看兩種"沒有分歧"的情況,也就是老師和學生意見一致的時候。
如果兩人都對,論文用了一個叫Softplus
的數學函數來處理反饋權重。
Softplus函數:一種讓輸出永遠保持正值、且隨輸入平滑變化的數學變換,公式是log(1+e^x),即便輸入是負數,輸出也不會真正歸零,而是慢慢逼近一個很小的正數。
用這個函數處理之後,學生答對題目時的平均反饋權重從原來閥門機制的0.08-0.09,一下子提升到了0.57-0.65。這意味著什麼?意味著原本幾乎被"噤聲"的正確答案,現在真正得到了應有的鼓勵。這就好比一個孩子做對了題,老師不再用含糊的"嗯,也還行"打發他,而是明確告訴他"這道題你做得很好,繼續保持"。如果沒有這個調整,正確答案得到的激勵實在太微弱,學生很難真正強化自己已經掌握的東西。
如果兩人都錯,同樣用Softplus(取負值版本)處理,讓所有錯誤的部分都受到打壓,但打壓力度仍然按照老師的偏好來細化,哪個詞老師越不認可,哪個詞挨的"批評"就越重。
再看兩種"有分歧"的情況,這才是DuoOPD真正出彩的地方。
第一種,老師對、學生錯。這時候老師手上有一份驗證過的正確答案,這是一份寶貴的參考資料。論文的做法是,把老師獨立做出的那份正確答案當作額外資訊,塞進老師評分時看到的上下文裡,讓老師"對照著標準答案"去給學生的錯誤回答評分。
這個設計叫"用教師成功為糾錯提供依據"。原文給了個很生動的例子:有道題問納米顆粒自組裝中什麼控制了相互作用,正確答案是"配體相互作用",學生卻寫成了"超晶格形成"。沒有參考答案時,"super"這個詞的負反饋權重是-19.922,加入老師的參考答案後,這個負反饋加強到了-26.795,錯誤的方向被糾正得更堅決了。
這就好比你寫作文跑題了,老師光憑印象批評你"跑題了",和老師手裡拿著滿分範文、逐字對照著指出"你這裡偏離了,範文是這麼寫的",批評的精準度完全不是一個量級。如果不給老師這份參考,老師可能因為被你的錯誤思路帶偏,反而評分打得不夠狠,糾錯效果就會大打折扣。
第二種,學生對、老師錯。這種情況下,學生其實提供了比老師更可靠的答案,這時候的策略叫"保留學生主導的成功"。
具體做法是,把同一個任務里所有"學生對、老師錯"的回答放在一起,計算一個統一的正向權重,讓這批回答的每一個有效詞都享有這個共享的獎勵,不再逐詞去看老師怎麼評分,因為老師這次本來就不可靠。
論文裡也舉了個例子:一道題問哪種方法在大多數系統上誤差更低,正確答案是NNP/MM,老師卻選了錯誤的FEP+。如果不做共享處理,學生回答里"A"這個關鍵詞得到的正向權重幾乎是0(只有0.00019),因為老師自己都答錯了,給不出什麼像樣的鼓勵信號。加上權重共享機制後,這個詞獲得了0.524的實打實獎勵。
這背後的道理其實很樸素:如果你這次做對了,但帶你的師傅這次反而走了彎路,總不能因為師傅沒指出你的好,你的好就該被埋沒吧。如果不設計這個共享機制,學生難得一次超越老師的表現,反而會被系統性地忽略,這對訓練效果是種浪費。
論文裡專門強調了一點,這個共享權重是"按任務分別計算"的,而不是不同任務共用一個數。原因是不同任務里老師和學生水平差距本身就不一樣,比如物理計算題的權重能到0.56到0.64之間,而其他任務可能穩定在0.56到0.57。如果強行把所有任務混在一起算一個平均權重,等於用一把尺子量所有任務的難度,會抹平任務間本該有的差異。實驗也證明了,按任務分開算比統一計算效果更好,在任務差異越大的場景里,這個優勢越明顯(分別高出0.26和0.35個百分點)。
**效果到底怎麼樣**
說了這麼多設計思路,實際效果如何?
論文在兩套模型家族上做了實驗,一套是Qwen3(4B老師教0.6B學生),一套是Llama(8B老師教3B學生)。測試任務從簡單的生物、化學、物理知識題,逐步擴展到更異質化的組合,比如物理計算、指令遵循、代碼生成這種完全不同類型的任務混在一起訓練。
在最基礎的生物、化學、物理三科組合上,DuoOPD相比標準OPD,在Qwen3上宏觀準確率提升了2.58個百分點,在Llama上提升了5.98個百分點。而且不管是老師能解決的題,還是老師解決不了的題,DuoOPD都能讓學生表現得更好。比如在Llama的物理科目上,面對老師能做對的題,學生正確率比OPD高出3.86個百分點,面對老師做不對的題,學生正確率依然高出2.12個百分點。
這組數據說明一件挺重要的事情:DuoOPD沒有把老師的局限變成學生的天花板,學生在老師擅長的地方學得更紮實,在老師不擅長的地方也能靠自己的能力走得更遠。
論文還專門做了拆解實驗,看看這四條規則各自貢獻了多少。
把任何一種情況的處理方式換回標準OPD的做法,宏觀準確率都會掉0.76到1.53個百分點,說明四條規則確實都在起作用,哪怕是"學生對、老師錯"這種只占訓練數據6.9%的小眾情況,拿掉它效果照樣會下降。
更關鍵的是,論文還單獨驗證了:如果只做"方向修正"(也就是OPDVR那一套),而不加上"老師參考答案"和"權重共享"這兩個專屬設計,效果會回落到接近OPDVR的水平(64.56%對比OPDVR的64.83%)。這說明真正拉開差距的,不是"知道方向"這件事本身,而是"知道方向之後怎麼用好老師"這件事。方向是地基,但光打地基蓋不起樓。
DuoOPD還在另外兩套更複雜的任務組合上驗證了效果。一套是材料知識、化學理解、物理計算的混合,DuoOPD拿到了63.48%的宏觀準確率,比最強的對比方法還高0.86個百分點,尤其在物理計算這種老師和學生都容易出錯的任務上,優勢擴大到3.25個百分點。另一套是物理、指令遵循(IFEval
)、代碼生成(MBPP)的異質組合,DuoOPD同樣全面領先,拿到49.24%,比最強對手高1.41個百分點。
有意思的是,DuoOPD在每一個任務組合里,都在"最難的那個任務"上拿到了最高分,哪怕論文本身並沒有專門設計一個"照顧最難任務"的目標函數。這多少說明,讓反饋真正對齊對錯,本身就是一種自然而然會眷顧薄弱環節的設計。
**代價有多大**
一個很現實的問題是:DuoOPD需要老師額外生成一份參考答案,這是不是意味著訓練成本大幅上升?
論文給出了細緻的成本核算。老師生成參考答案這個過程是一次性的緩存操作,生成之後可以被多次復用,不需要每次訓練都重新生成。這個緩存過程大約占到一次完整OPD訓練耗時的23%到30%。而在訓練過程中,真正需要調用這份參考答案的,只是"老師對、學生錯"這一類情況,占比大約在13%到23%之間,並不是每條數據都要用上。
把這些都算進去,實測下來DuoOPD在Qwen3上的訓練時間幾乎沒有變化(-0.7%),在Llama上增加了7.3%,而且這部分增加主要來自學生自己生成的回答變長了(從152個詞增加到177個詞),並不是算法本身拖慢了訓練。如果把一次性生成的緩存分攤到三次訓練里重複使用,額外開銷能降到9.2%到15%之間。
這個成本結構其實挺划算:一次投入,多次復用,換來的是實打實的準確率提升。
**寫在後面**
讀完這篇論文,有個細節讓我反覆琢磨:論文作者發現,哪怕學生答對了題,原始反饋信號的均值依然是負的。這不是一個小bug,而是整個在線策略蒸餾範式里一直存在、卻很少被量化出來的隱患。大家習慣性地相信"老師的反饋總是朝著正確方向的",但這篇論文用實打實的數字告訴你:不一定。
還有一點值得玩味。DuoOPD並沒有發明什麼複雜的新模型,它做的事情說到底就是"先驗證,再決定怎麼用",這種思路其實在很多領域都通用,考試閱卷要先核對答案再給分,而不是看著標準答案的語氣改卷子;醫生看病要先確診再開藥,而不是照搬上一個病人的處方。把"驗證"這一步嵌入到每一個反饋環節里,看似簡單,卻是決定整個系統靠不可靠的關鍵分叉點。
論文裡也坦誠承認了局限:現在這套方法依賴的是非黑即白的驗證器,答案對就是對,錯就是錯。但現實中很多任務,比如寫作、開放式問答,根本沒有這麼清晰的對錯邊界,反饋需要處理的是"好到什麼程度"這種模糊判斷。這條路要怎麼走,論文沒有給出答案,留下了一個挺值得深挖的開放問題。
一個老師教多個學生擅長的學科不一樣,這事放在人類教育里天經地義,沒人會覺得奇怪。可放到AI訓練里,這居然是個要專門寫論文解決的新問題。這說明什麼?也許說明我們對"教"這件事的理解,在機器身上才剛剛開始。
Q&A
Q1:DuoOPD是什麼?
A:DuoOPD是一種多任務在線策略蒸餾方法,核心思路是讓學生模型的對錯結果決定反饋方向,再根據老師和學生配合情況決定具體用什麼方式支持,一套規則覆蓋四種組合,不需要為不同任務單獨調參。
Q2:DuoOPD和之前的OPDVR方法有什麼區別?
A:OPDVR只負責把反饋方向和學生對錯對齊,但會把正確答案的反饋壓得幾乎為零;DuoOPD還進一步區分老師這次是否可靠,用教師參考答案糾正學生錯誤,用權重共享強化學生獨有的正確表現,效果明顯更好。
Q3:使用DuoOPD會不會大幅增加訓練成本?
A:不會太多。老師生成參考答案是一次性緩存且可復用,實測訓練耗時在Qwen3上基本沒變化,在Llama上只增加7.3%左右,主要來自學生回答變長,不是算法本身拖慢了速度。






