SESA:讓自對弈代理的失敗變成進化技能 — 自演化技能增強代理
一句話核心結論
現有代理訓練的兩條路線各有一個致命缺口:自對弈(SSP)能自己出題練習,但失敗只更新梯度、不留下可重用的技能記錄;技能增強 RL(SkillRL)把經驗蒸餾成可檢索的技能,但從固定題庫學、無法適應難度變化。SESA 把這兩條線鎖在一起——失敗被蒸餾成技能→技能改變解題行為→解題成功率改變出題分布→新難度產生新失敗→新失敗再寫回技能記憶。這個雙向共演化迴路讓任務生成和技能記憶共同進化。兩種部署模式:參數內化(SESA-Off)讓技能增益留在模型權重中、推理檢索(SESA-On)保留外部技能庫。跨越七個 QA 基準、六組模型 backbone,SESA 比純自對弈平均高 1.2–3.2 百分點,技能庫加開再貢獻 0.5–1.0 點。
核心創新
關閉自對弈↔技能記憶雙向迴路,失敗不是終點而是進化原料
四階段訓練
記憶預備 → 非對稱自對弈 → 難度邊界塑形 → 失敗蒸餾
雙重路徑
SESA-Off(參數內化,+1.8–2.2 點)+ SESA-On(推理檢索,+0.5–1.0 點)
最大貢獻元件
失敗蒸餾移除 → 2.7 點降幅(全元件中最關鍵)
核心洞察:兩個半套方案的互補缺口
論文開篇精準診斷當前代理訓練的兩難:
- 自對弈(SSP):挑戰者出題→解題者回答→正確就獎勵。訓練過程中自動適應難度(解題者變強→出題更難),但每個軌跡用完即丟——成功的策略沒被記錄、失敗的原因沒被分析。梯度更新是唯一的記憶形式,但梯度不告訴你「為什麼錯」。
- 技能增強 RL(SkillRL 等):把經驗蒸餾成可檢索的結構化技能(觸發條件、查詢模板、避坑提示),但技能庫是從固定題庫學的。當題庫不更新,技能就停滯;當技能不進化,解題能力就被題庫上限鎖死。
SESA 的關鍵洞察:自對弈決定練什麼但忘了學到什麼,技能記憶記住經驗但不知道下一步該練什麼。把它們接在一起,兩個問題互相解決。
四階段訓練迴路
SESA 的訓練迴路由四個互相耦合的階段組成:
階段 1:記憶預備(Memory Priming)——用 15 個手寫技能 + 142 個前期自對弈挖掘的技能初始化技能庫(共 157 筆)。每筆技能包含:描述(u)、觸發條件(c)、避坑提示(a)、查詢模板(z)、使用統計(m)。
階段 2:非對稱自對弈(Asymmetric Self-Play)——挑戰者和解題者使用獨立參數。關鍵設計:技能檢索僅開放給解題者。挑戰者看不到技能庫,只能透過解題成功率來感知難度變化。這防止技能從解題側洩漏到出題側(避免挑戰者生成「繞過技能」的取巧題目)。
階段 3:難度邊界塑形(Frontier Shaping)——不是所有失敗都值得蒸餾。太簡單(解題者每次對)沒有學習訊號;太難(每次錯)的失敗是噪音、蒸餾進去會汙染技能庫。SESA 用鐘形獎勵函數引導挑戰者生成「邊界難度」問題——解題者有時對有時錯。這個設計確保流入失敗蒸餾的都是可被技能改善的邊界失敗。
階段 4:失敗蒸餾(Failure Distillation)——三步生命週期:(1) 每次解題前從技能庫檢索 top-3 最相關技能;(2) 失敗的軌跡被摘要為(問題、目標答案、預測、檢索到的技能 ID);(3) 每 10 步最多合併 30 筆失敗,LLM 法官將其抽象為新技能(觸發條件、區分證據、避坑提示、查詢模板)。新技能與庫中現有技能做 cosine similarity ≤ 0.93 的去重檢查。技能庫上限 800 筆,依「有幫助次數 − 有害次數」淘汰。
雙重路徑評估:技能增益在哪裡?
SESA 最精妙的實驗設計是雙重路徑分解。論文比較三種模式:
- SSP(無記憶):純自對弈,無技能庫
- SESA-Off:SESA 訓練的解題者,但推理時關閉技能庫(僅用模型權重)
- SESA-On:SESA 訓練的解題者 + 推理時開啟最終技能庫
結果:Qwen3-4B 上 SESA-Off 比 SSP 高 1.8 點、SESA-On 再高 0.5 點;Qwen3-8B 上 SESA-Off 高 2.2 點、SESA-On 再高 1.0 點。這代表:
- 參數內化是真實效應:技能不是 prompt 取巧。因為技能在訓練時塑造了 on-policy 軌跡分布,增益被 GRPO 梯度寫入模型參數。關掉技能庫仍有顯著提升。
- 技能庫是額外增幅:保留外部技能庫提供 0.5–1.0 點的疊加增益,接近免費(僅檢索成本)。
- 失敗蒸餾是最關鍵元件:移除失敗蒸餾導致 2.7 點的降幅(全元件消融中最大),直接證明「記住失敗」比「多練幾次」有本質差異。
訓練動態:自精煉記憶
論文追蹤了技能庫的演化過程:活躍技能數量先增長後收縮——初期大量失敗產生新技能,後期去重檢查 + 效用淘汰機制讓技能庫自我精煉。這不是無限制的記憶堆積,而是一個達爾文式選擇過程:有用的技能存活、無用的被淘汰、重複的被合併。
跨模型泛化性:在 Qwen3(4B/8B/Instruct)、Qwen2.5(7B Base/Instruct)、LLaMA-3.1-8B、Search-R1-7B 六組 backbone 上全部有效,證明技能演化迴路的增益不依賴特定模型架構。
對 DKY / Hermes 的啟發
- 技能記憶應該和任務生成耦合:Hermes 的技能庫(skills/)是靜態手寫的,而自對弈(self-play search)是無狀態的。SESA 的雙向迴路提供了一個藍圖:任務失敗 → 技能蒸餾 → 技能寫回 → 改變後續任務難度。Hermes 可以在睡眠固化中加入類似的「失敗→技能」管道。
- 雙重路徑部署策略:SESA-Off(參數內化)+ SESA-On(外部檢索)的雙重增益分解,為 Hermes 的技能系統提供了架構啟發。對應到 Hermes:profile skills/ 對應外部技能庫(SESA-On)、fine-tuned model weights 對應參數內化(SESA-Off)。兩者可疊加,不是互斥。
- 難度邊界塑形防止記憶汙染:SESA 的 frontier shaping 只讓「邊界失敗」進入蒸餾,防止太難的噪音汙染技能庫。Hermes 的記憶固化也面臨相同問題——不是所有經驗都值得記。需要一個類似「可學習性閘門」的過濾機制。
- 去重檢查 + 效用淘汰:SESA 用 cosine similarity ≤ 0.93 去重、用「有幫助次數 − 有害次數」淘汰。Hermes 的 fact_store / memory consolidation 可借鑑這個輕量級維護策略。
- 非對稱資訊設計:技能僅給解題者、不給挑戰者——防止技能洩漏導致出題偏移。這個設計原則對 Hermes 的 internal agent competition(如 proposer-solver 架構)有直接指導意義。
限制
- 技能蒸餾依賴 DeepSeek-v4-pro 執行抽象化,成本較高(8×A100 訓練),尚未驗證較小 LLM 的蒸餾品質
- 七個基準全為英文 QA 任務,未測試多語言或程式碼/工具使用場景
- 訓練和評估使用相同搜尋引擎(Google Search),對搜尋品質變化敏感
- 技能庫上限 800 筆的設定來自經驗,未系統性探討最優容量
- 論文未釋出完整訓練資料,僅提供程式碼(非模型權重)