2026年的語言模型圈子裡,有一件事挺矛盾的。
最強的模型都鎖在API後面,你只能發請求、收回復,沒法動它內部一根毫毛。Gemini、Claude這些頂級模型,誰都沒法把它們的權重拿出來微調。可偏偏在實際使用中,這些模型總會在具體任務里栽跟頭:訂機票時猜乘客ID猜錯了,該問用戶的資訊沒問,該用的工具沒用對。你干著急,卻動不了它。
**這篇論文想解決的問題是:能不能找一個小模型,站在旁邊給大模型當參謀,用自然語言提醒它"接下來該怎麼做",然後訓練這個小參謀,而不是去碰那個鎖死的大模型。**
這個思路本身不新鮮。此前已經有"顧問模型
"(Advisor Models)的工作證明,用強化學習訓練一個小模型給凍結的執行者
提供建議是可行的,獎勵信號來自任務完成情況。但這篇論文發現了一個更微妙的問題:當你試圖用"事後復盤"來改進這個顧問模型時,復盤給出的建議未必真的有用,甚至可能悄悄把顧問教壞了。
這正是AdviSD
(Advisor Self-Distillation,顧問自蒸餾
)這篇論文想講清楚的事。
執行者:被雇來幹活、但沒法改造的那個大模型,論文裡特指Gemini、Claude這類通過API調用的凍結模型。
顧問:觀察執行者的交互過程、給出建議或選擇不建議的小模型,本文用Qwen3-8B
擔任,是唯一被訓練的部分。
一個訂機票的故事,暴露了問題所在
論文開篇講了一個場景,特別適合拿來說清楚核心矛盾。
假設有個執行者,搜索航班的能力很強,不用人提醒也能搜得又快又准,但訂票的時候經常瞎猜乘客的身份證號或護照號這類標識符,猜錯了訂票就失敗。
現在訂票失敗了,復盤的時候,一個"反思模組
"(後文詳細說這是什麼)跳出來提了兩條建議:第一,訂票前應該先查一下乘客資訊,拿到準確的標識符再訂;第二,搜索航班時的建議應該寫得更詳細一點。
這兩條建議聽起來都挺對的,都是合理的"復盤意見"。但對這個特定的執行者來說,它們的價值完全不一樣。
第一條建議是真正對症下藥的,它解決了實際發生的錯誤。第二條建議呢,執行者本來搜索航班就搜得挺好,這條建議只是把執行者已經會的東西又囉嗦地講了一遍,不僅沒用,甚至可能有害。
問題在於,顧問模型的參數是共享的。如果你讓顧問去學習模仿這第二條"正確但沒用"的建議,它的參數會被這次學習悄悄改變,而這種改變可能會影響顧問在其他場景下給出的建議,包括那些真正重要的場景。
就像公司給員工做培訓,你安排了十節課,其中八節都是"正確的廢話",講的是員工早就掌握的東西。員工去聽了,確實沒學錯什麼,每節課單獨看都沒毛病。可培訓總時長是有限的,員工的注意力和記憶容量也是有限的,如果不把那八節沒用的課擋在門外,真正該補的那兩節關鍵課就被稀釋了,員工腦子裡留下的印象,"正確但沒用"的內容反而占了大頭。
如果不設計一種機制去區分哪些復盤建議真正有用,哪些只是正確的廢話,那麼隨著訓練反覆進行,這種"稀釋效應"會越來越嚴重,因為執行者在容易出錯的場景會越來越少犯錯(顧問教好了),而那些顧問管不了的、執行者本來就表現平平的場景會持續產生"正確但沒用"的復盤建議,這些建議在總訓練信號里占的比重會越來越大。
顧問模型怎麼"開口說話"
在講怎麼解決這個問題之前,得先說清楚這套系統是怎麼運作的。
每次執行者要給出下一步回應之前(無論是回復用戶、調用工具,還是讀完工具結果後的下一步),顧問模型都會先看一眼當前情況,然後決定要不要說話。如果開口,它會給出一段自然語言建議;如果不想說,它會輸出一個特殊標記,表示"這次我不插嘴"。
執行者系統*:這裡特指被顧問建議、本身參數不可修改的那個大模型,建議會被臨時插入到發給它的請求里,但不會進入它永久的對話歷史,相當於每次都是"新鮮"地提醒一次,不留痕跡。
這個設計本身就有一個細節值得琢磨:建議不是永久寫入執行者的記憶的,而是每次臨時附加的。這樣做的好處是,顧問可以根據情況靈活調整建議,不用擔心之前說錯的話一直掛在那裡影響後續判斷。
訓練這個顧問模型,論文用了兩條腿走路。一條是常規的強化學習,用任務完成後的獎勵信號(比如訂票成功沒有、任務通過檢查沒有)來調整顧問的行為傾向,這部分用的是GRPO
算法。
GRPO(Group Relative Policy Optimization,組相對策略優化):一種強化學習算法,通過比較同一組任務的多次嘗試結果,計算出每次嘗試相對於組內平均水平的"優勢值",用這個優勢值來指導模型更新。簡單說就是"好的比平均好多少,就多獎勵多少"。
但只靠獎勵信號不夠精細。一整個交互下來可能有十幾個決策點,最後只給一個總分,根本不知道是哪一步出了問題。這就是為什麼需要第二條腿:從具體的失敗案例里提取更細粒度的反饋,再有選擇地用這些反饋去教顧問。
反思模組:誰來提出"復盤意見"
論文裡專門設了一個外部的"反思模組",它的工作是看完整個交互過程(包括執行者做了什麼、工具返回了什麼、最後任務通不通過),然後指出顧問在哪幾個決策點上可能犯了錯,並給出具體的修改建議。
反思模組*:論文中用Gemini 3.7 Flash
擔任,作用是分析已完成的交互記錄,標記出可能需要改進的建議決策點,並提出具體的修正方案,這個模組只在訓練階段起作用,部署後完全不需要它。
有一點需要特別說明的是,反思模組看的是"後來發生的事情",但它提的建議必須符合"當時能看到的資訊"。也就是說,反思模組知道後面發生了什麼,但它不能用這種"上帝視角"去篡改早期決策的合理性,它只能說:"在那個時間點,根據當時已知的資訊,建議應該是這樣說才對。"
這就好比復盤一場足球比賽,裁判在第30分鐘判罰有爭議,復盤小組知道最後比分是2比1,但他們評價那個判罰時,只能依據第30分鐘那一刻看到的畫面,不能用最終比分去倒推"當時應該怎麼判",否則復盤就失去了意義,變成了事後諸葛亮式的馬後炮。
反思模組每個失敗的交互最多能標記5個決策點(這是論文設的上限),標記出來之後,這些決策點就成了候選的訓練素材。但重點來了,不是所有候選都會被拿去訓練,接下來要講的,就是AdviSD真正的創新所在:怎麼從這些候選里挑出真正有用的那部分。
怎麼判斷一條復盤建議有沒有用
這是整篇論文最巧妙的地方。
論文的做法是,讓更新前的顧問模型(也就是訓練這一步開始之前的那個版本)去給同一個執行者回復打兩次分。
具體來說,執行者已經做出了某個回復(比如調用了某個工具、給用戶回了某句話),這個回復是在"有顧問建議"的情況下產生的,已經是既定事實,沒法改變了。但現在,論文讓顧問模型分別站在兩個"假設立場"上去給這個已發生的回覆評分:第一種立場是假設當時確實給出了那條建議,第二種立場是假設當時什麼都沒說。
兩次評分用的是同一個顧問、同一段已經發生的執行者回復,唯一不同的是上下文裡有沒有那條建議文字。如果有建議和沒建議兩種情況下,顧問對這段回復的預測概率差別很大,說明這條建議"存在感很強",顧問覺得它對解釋這個回復很重要;如果差別很小,說明這條建議可有可無,顧問覺得有沒有它都差不多。
論文把這個差值的絕對值作為選擇信號,差值越大,這個決策點就越值得被納入訓練。
打一個比方可能更容易理解。假設你是老師,批改兩份作文,一份是學生照著你給的範文框架寫的,另一份是學生完全自己發揮寫的,結果兩份寫得幾乎一模一樣。這說明什麼?說明你給的那個範文框架對這個學生而言根本沒起作用,他本來就會這麼寫。但如果有沒有範文框架寫出來的東西天差地別,那這個框架顯然是真正塑造了結果的關鍵因素。
AdviSD做的事情本質上就是這種比較:看"給了建議"和"沒給建議"這兩種假設下,顧問預測執行者行為的差異有多大。差異大,說明這條建議在顧問自己的認知里是"起作用的",值得學;差異小,說明顧問覺得這條建議"說了跟沒說一樣",這時候再去學它反而可能帶來干擾。
論文裡有個細節特別誠實,這個判斷用的只是顧問自己的預測,不是真實測量出來的"這條建議到底有沒有改變執行者的實際表現"。顧問的判斷可能是錯的。但論文的論證是,這種基於預測差異的信號,總比"不加區分,什麼都學"要好。
這裡還牽涉到一個技術細節:怎麼設定"差異多大才算大"這個門檻。論文的做法是用"donor advice"(借來的建議)做校準。
Donor advice
(供體建議):訓練開始前,用其他任務的建議文本替換當前任務里原本給出的建議,再重新計算一次預測差異,這個替換後的建議和當前任務無關,純粹是噪聲,用來估計"隨便換一條不相關的建議會造成多大的預測波動",以此確定一個合理的篩選門檻。
簡單說,先用一堆"亂湊的建議"看看能造成多大的預測擾動,這個擾動水平就是噪聲基線,真正要被選中進入訓練的建議,差異得明顯超過這個基線才算數。這個門檻在每次訓練開始前就確定下來,訓練過程中不再變動。
從"原地不說話"到"被漏掉的提醒",一個特殊情況
還有一類情況需要單獨處理:顧問原本選擇了不說話(輸出
這種情況下,沒法用前面講的評分法,因為沒有"給了建議"和"沒給建議"兩種版本可以比較,反正顧問當時就是什麼都沒說,兩種情境其實是同一種情境,預測差異天然是零。
論文的處理方式是,只要反思模組標記了這類"該說而沒說"的決策點,就直接放行,繞過數值門檻,讓它進入訓練。
這個設計選擇在後續實驗裡被驗證是有價值的,實驗顯示去掉這個特殊通道後,兩個基準測試的表現都下降了0.6到1.7個百分點,說明"原本不該沉默卻沉默了"這種錯誤,確實是顧問模型里值得專門照顧的一類問題。
為什麼"選擇性地學"會比"全盤接收"更好:一套數學論證
這篇論文不只是提了一個工程技巧,還花了相當大的篇幅從理論上論證"為什麼挑著學會更好"。這部分內容比較抽象,我儘量用大白話講清楚核心邏輯。
論文構造了一個簡化模型:假設顧問只需要在"建議1"和"建議2"之間二選一,用一個參數(可以理解成"顧問有多偏好建議1")來控制選擇概率。場景分成兩種,一種叫"敏感場景",在這種場景下,用建議1確實比用建議2效果好;另一種叫"不敏感場景",不管用哪個建議,執行者的表現都一樣,根本沒差別。
關鍵的假設是,哪怕在"不敏感場景"里兩種建議效果真的一樣,復盤出來的"老師"(也就是反思模組給出的理想目標)也可能存在偏好,而且這個偏好可能比"敏感場景"里的老師更弱。
舉個具體數字的例子,論文給了這樣一組設定:不敏感場景的老師給出的偏好是五五開(完全中立),敏感場景的老師給出的偏好是八比二(明顯偏向建議1)。如果顧問現在已經學會偏向建議1的概率超過一半了,那麼從不敏感場景學習只會把這個偏好往五五開方向拉回去。因為參數是共享的,這個"拉回去"的效果會同時影響到敏感場景,也會讓顧問在敏感場景里也變得不那麼堅定地推薦建議1,但建議1在敏感場景里明明是更好的選擇。
論文證明了一個結論:隨著顧問越訓越好,敏感場景里的失敗會越來越少見(因為顧問已經學會了正確做法),但不敏感場景里的失敗率是不變的(因為不管給什麼建議結果都一樣,所以這類失敗天然是隨機出現、消除不掉的)。結果就是,訓練進行得越久,不敏感場景提供的復盤樣本在總訓練信號里占的比例就越來越高,而這類樣本恰恰是偏好更弱、甚至中立的。
論文把這個終極平衡點用數學方式求解了出來,發現只要把"不敏感場景"的復盤樣本保留比例調低(相對於"敏感場景"的樣本),這個終極平衡點就會往更好的方向移動,顧問最終能達到的性能上限也會提高。論文還給了一個具體的數字例子:在等比例保留兩類復盤樣本的情況下,顧問最終達到的成功率是55.8%;如果把不敏感場景的保留比例降到四分之一,成功率能提高到59.2%;如果理論上把這個比例壓到趨近於零,成功率能到62%。
這個數學論證最重要的價值,是它給AdviSD的實際設計提供了理論支撐:有選擇地少學一些"復盤建議",確實可能帶來更好的最終效果,而不是簡單的"資訊損失"。但論文也很坦誠地指出了這個理論的局限,這個簡化模型假設老師的偏好是固定不變的,現實中反思模組給出的反饋會隨著訓練動態變化,理論結果不能直接套用到真實訓練過程里,它提供的是一種解釋框架,而不是精確預測。
教學環節:怎麼把篩選出來的建議變成訓練信號
篩選完之後,真正的"教學"環節開始了。
對於每個被選中的決策點,系統會把相關的執行證據、檢查結果、任務得分、反思模組的反饋,打包成一段"提示資訊",加在原始上下文前面,交給"老師"(也就是更新前的顧問模型快照)。老師在這個加料後的上下文裡,重新生成一遍它對這個決策點的預測分布。
學生(也就是正在被訓練的顧問模型)則只能看到原始上下文,看不到這些額外的復盤資訊,它需要學著讓自己的預測分布去逼近老師的預測分布,這個過程在深度學習里有個專門的名字。
自蒸餾(Self-Distillation):讓同一個模型的兩個版本(一個帶額外資訊的"老師"版本,一個不帶額外資訊的"學生"版本)之間互相學習,學生試圖模仿老師在看到額外資訊後給出的預測,目的是把額外資訊里蘊含的知識,內化到學生的參數裡,這樣學生以後即使看不到這些額外資訊,也能表現得像看過一樣。
這裡有個精巧的閉環設計:訓練的時候,老師能看到"復盤得出的教訓",學生看不到;但部署的時候,沒有反思模組、沒有復盤資訊,顧問只能靠訓練時內化的東西獨立做出判斷。自蒸餾的作用,就是把訓練階段"開天眼"狀態下學到的東西,壓縮進部署階段"閉著眼"也能用的參數裡。
這個過程計算損失的方式也有講究:先算單個決策點裡每個詞的損失,取平均得到這個決策點的損失;再把一個交互過程里所有被選中決策點的損失取平均,得到這次交互的損失;最後把一批交互里所有交互的損失再取平均。沒有被選中參與訓練的交互,自蒸餾損失直接算作零,但它依然正常參與GRPO那部分的獎勵學習。
實驗怎麼驗證這一切
理論講完了,關鍵要看實際效果。論文選了兩個執行者:Gemini 3.7 Flash和Claude Sonnet 4.6
,顧問模型統一用Qwen3-8B,在兩個基準測試上訓練和評估。
BFCL-v3*:Berkeley Function Calling Leaderboard第三版,一個專門考察大模型工具調用能力的基準測試,細分成四個類別,包括正常情況、工具缺失、參數缺失、長上下文這幾種挑戰場景。
EnvScaler:一個通過程序化合成方式構建的工具交互環境基準,提供分數在0到1之間的任務評分。
實驗結果是這樣的:在BFCL-v3上,AdviSD比只用GRPO的版本高出4.2到6.4個百分點;在EnvScaler上,高出3.9到5.1分。考慮到這兩個基準測試的難度本身不低,這個提升幅度相當可觀。
特別值得一提的是,提升幅度在BFCL那些"更難"的子類別(工具缺失、參數缺失、長上下文)里更明顯,而在最基礎的子類別里提升相對溫和。這個現象挺有意思,它暗示AdviSD這種針對性的糾錯機制,恰恰在執行者本來就容易出問題的複雜場景里發揮了最大價值,這也從側面印證了論文一開始的猜想:不是所有建議都一樣重要,真正有價值的建議,往往出現在執行者自己拿不準的時候。
| 方法 | BFCL-v3平均(Gemini) | BFCL-v3平均(Claude) | EnvScaler(Gemini) | EnvScaler(Claude) |
|---|---|---|---|---|
| 無顧問 | 57.8 | 54.9 | 75.7 | 77.4 |
| GRPO(只有獎勵學習) | 61.4 | 58.9 | 79.7 | 80.7 |
| SDPO | 57.8 | 55.8 | 76.0 | 78.9 |
| DistIL | 58.5 | 57.3 | 76.1 | 78.9 |
| **AdviSD** | **67.8** | **63.1** | **84.8** | **84.6** |
論文還做了一組對照實驗,專門用來檢驗"挑選哪些建議"這個機制本身到底值不值錢,而不僅僅是"少學一點東西就是好"。
這裡設了一個"數量匹配的隨機對照組":它在每個交互里保留和AdviSD門檻篩選出來數量相同的建議,但具體保留哪些是隨機選的,不管建議的預測差異大小。結果顯示,這個隨機對照組雖然也比"全盤學習"稍微好一點,但明顯不如AdviSD的精準篩選,兩者之間差了2.5到4.9個百分點。
還有一個"反轉門檻"的對照組,專門保留那些預測差異小的建議,這個版本的表現比什麼都不篩選還要更差,兩個基準測試上都跌破了GRPO基線。
這組對照實驗的意義在於,它證明了"挑對象"這件事本身是有資訊量的,不是簡單的"學得少就學得精",真正起作用的是"學對的東西"。
| 配置 | BFCL-v3(Gemini) | BFCL-v3(Claude) |
|---|---|---|
| GRPO基線 | 61.4 | 58.9 |
| 全盤接收不篩選 | 62.7 | 59.7 |
| 反轉門檻(專挑差異小的) | 61.1 | 58.3 |
| 數量匹配隨機選擇 | 62.9 | 60.6 |
| **AdviSD(正常篩選)** | **67.8** | **63.1** |
訓出來的顧問能不能舉一反三
一個顧問模型如果只能在訓練過的那個任務、那個執行者身上管用,價值就打了折扣。論文專門測試了泛化能力。
在沒有用新數據重新訓練的情況下,論文把BFCL-v3上訓出來的顧問拿去另外四個完全沒見過的基準測試上考察,包括ACEBench(測多步驟和多輪對話場景)、ToolHop(測多跳工具調用)、τ?-bench(測帶用戶模擬器的對話代理)、RoTBench(測工具使用的魯棒性)。
結果顯示,AdviSD在跨任務遷移上依然領先,相比不用顧問的基準,平均提升2.7到3.6個百分點,而GRPO訓出來的顧問在跨任務遷移上提升幅度不到1個百分點。更引人注意的是,論文用BFCL優化出來的GEPA提示詞(這是一種專門優化執行者自身指令的方法,不涉及額外顧問),在這些外部基準上反而全面低於不加任何干預的基礎表現,說明針對單一任務精心打磨的提示詞,很容易變成"水土不服"的脆弱方案。
除了跨任務,論文還測試了跨版本和跨廠商的遷移。拿Gemini 3.7 Flash訓出來的顧問,不重新訓練,直接套用到Gemini 3.5 Flash上(同廠商不同版本),也測試了直接套用到Claude Sonnet 4.6上(不同廠商)。結果是所有方向上AdviSD都比GRPO高出約2到3個百分點,跨廠商方向上穩定領先3.1個百分點。
這說明AdviSD學到的"怎麼給建議"這套能力,並不完全綁定在某個特定模型的具體怪癖上,而是提煉出了相對通用的判斷方式,當然,遷移過去的表現仍然比不上專門針對目標執行者訓練出來的版本,這點論文也誠實承認了。
寫在後面
讀完這篇論文,最觸動我的不是技術細節本身,而是它提出問題的方式。
大部分工程類論文的套路是"我們發現了一個新方法,效果更好",但AdviSD的核心貢獻其實是一個反直覺的觀察:更多的監督信號不一定是好事,如果監督信號里混雜著大量"正確但無關緊要"的內容,反而會稀釋真正重要的那部分,讓模型學得更慢、學得更差。
這個觀察其實超出了語言模型訓練的範疇,幾乎是任何需要"從反饋中學習"的系統都會遇到的共性問題。給員工的360度評估反饋太多會讓人抓不住重點,產品團隊收集的用戶反饋太泛也會讓疊代方向變得模糊。AdviSD提供的思路是:與其追求反饋數量的最大化,不如先問一句,這條反饋如果換個假設情境,結果會不會明顯不同,如果不會,它可能就是噪聲。
還有一點值得單獨拿出來說,論文裡那個用"數量匹配的隨機對照組"去驗證篩選機制本身價值的做法,體現了一種挺難得的學術誠實。很多論文提出一個改進方法,證明比基線好就結束了,但不會費心去排除"僅僅是因為學習信號變少了才變好"這種混淆因素。AdviSD專門設計實驗去區分"少學"和"學對"這兩件事,這種嚴謹本身比結果數字更值得按讚。
論文還留了一個沒解決透的問題,顧問模型自己判斷"這條建議有沒有用",用的是它自己對執行者行為的預測,而這個預測本身可能是錯的。如果顧問模型本身對執行者的理解就有偏差,這套篩選機制會不會把錯誤的判斷也系統性地放大?論文沒有給出令人完全信服的答案,這大概也是後續研究值得深挖的方向。
一個小參謀能不能真正摸清大將軍的脾氣,還是永遠隔著一層猜測,這個問題留給了後來者。
Q&A
Q1:AdviSD是什麼?
A:AdviSD是一種訓練小型顧問模型的方法,讓顧問通過自然語言建議去引導被凍結參數、無法直接修改的大型執行者模型(如Gemini、Claude),從而在不觸碰執行者權重的情況下改善任務表現。
Q2:AdviSD和直接用GRPO訓練顧問模型有什麼區別?
A:GRPO只依靠任務最終獎勵來訓練顧問,AdviSD在此基礎上加入了有選擇性的自蒸餾機制,通過比較顧問在"給建議"和"不給建議"兩種假設下對同一個執行者回復的預測差異,挑出真正有用的復盤建議進行針對性學習,實驗顯示這樣做比單純用GRPO高出4到6個百分點。
Q3:AdviSD訓練出的顧問模型能不能換個執行者或換個任務使用?
A:可以在一定程度上遷移。論文測試顯示,訓練好的顧問在完全沒見過的新任務上平均提升2.7到3.6個百分點,在跨模型版本和跨廠商遷移時也比GRPO基線高出約2到3個百分點,但效果不如針對目標執行者專門訓練的版本。






