近年來,大型語言模型(LM)智能體透過呼叫外部工具(如程式碼執行器),已能完成從編寫軟體到進行科學研究等複雜任務。一個終極願景是,讓這些AI智能體能透過完成機器學習工程(MLE)任務,甚至迭代地創造出更好的AI模型本身。
然而,現有的MLE智能體大多依賴一個簡單策略:對強大、現成的大型模型(如Claude、GPT)進行提示(Prompting)。這種方式存在一個根本性缺陷——智能體本身不會學習。無論累積了多少成功或失敗的經驗,其核心行為模式(即模型參數)是靜態的。就像給一個天才學生不斷出題,但他從不複習錯題本,成績提升全靠刷題量和題目提示的巧妙程度,自身能力並無增長。如圖1所示,即使讓最好的提示框架運行數天,其效能提升也微乎其微。
論文:Reinforcement Learning for Machine Learning Engineering Agents
連結:https://arxiv.org/pdf/2509.01684
一個很自然的想法是:為什麼不讓我們的小型智能體像學生一樣學習呢?即利用累積的經驗,透過強化學習(Reinforcement Learning, RL)來更新其模型參數,從而真正地改進其能力。這篇論文正是基於這一思路,並取得了驚人發現:一個經過RL訓練的小型模型(Qwen2.5-3B),其最終效能可以顯著超越僅被提示的、參數量大得多的頂級大型模型(如Claude-3.5-Sonnet),在12個Kaggle任務上平均領先22%。
但這條路並非一帆風順。本文將帶你深入探討研究者如何破解RL在智能體環境中面臨的兩大獨特挑戰,並最終實現「小型模型逆襲大型模型」的精彩故事。
問題與方法
挑戰一:可變時長動作導致的優化偏差
1. 問題分析:快就是好?
在標準的分布式RL訓練中,多個「演員」(actor)並行地與環境互動,收集經驗,然後發送給一個「學習者」(learner)進行梯度更新。這在模擬環境中(如遊戲)很有效,因為每個動作(如移動一步)耗時基本相同。
但在MLE任務中,每個「動作」是一段程式碼,其執行時間天差地別。例如,訓練一個邏輯迴歸模型可能只需1秒,而訓練一個深度類神經網路或進行複雜的特徵工程可能需要幾分鐘甚至幾小時。在分布式設置中,執行快的動作會更快地返回經驗,從而更頻繁地被用於梯度更新。執行慢的高品質動作,不僅取樣次數少,甚至可能因超時而被丟棄。這導致RL優化過程產生了嚴重的偏差:它傾向於獎勵「快」的動作,而非「好」的動作。如圖2所示(此處原圖編號有誤,應為圖3),未經處理的RL訓練會迅速讓智能體收斂到執行飛快但效能差的解決方案(如簡單的線性模型)。
2. 方法:持續時間感知的梯度更新
(1) 數學建模與核心思想
研究者首先用一個簡化的例子清晰地揭示了問題根源。假設有兩個動作 (x) 和 (y),其執行時間分別為 tx 和 ty,它們的優勢函數(衡量動作好壞)估計值分別為 Ax 和 Ay。在固定時間 (T) 內,動作 x 被取樣的次數 Nx 與其被選擇的機率 P(x) 成正比,與其執行時間 tx 成反比:
Nx ∝ P(x) / tx
那麼,動作 x 對總梯度的貢獻 ∇J_x 為:
∇J_x ∝ Nx * ∇log P(x) * Ax ∝ (P(x) / tx) * ∇log P(x) * Ax
注意到梯度貢獻 ∇J_x 被除以了 tx。這意味著,執行時間越短的動作,其對梯度更新的影響被放得越大!這是導致快動作佔優的根本原因。
(2) 解決方案與公式
為了解決這個問題,作者提出了一個直觀而有效的解決方案:在計算梯度時,用動作的執行時間進行加權。這樣,上面的梯度貢獻就變成了:
∇J_x ∝ (P(x) / tx) * ∇log P(x) * Ax * tx
看,tx 從分母移到了分子,與分子上的 P(x) / tx 中所隱含的 tx 恰好抵消了!這樣,每個動作對梯度的貢獻就只取決於它本身被策略選中的機率 (P(x)) 和它的優勢值 (Ax),而與其執行速度徹底脫鉤。
將這一思想推廣到通用的策略梯度公式中,就得到了論文提出的持續時間感知的策略梯度更新規則:
∇θJ = Σ (t * ∇θlogπ(a|s) * A(s,a))
• ∇θJ: 目標函數 J 關於策略參數 θ 的梯度。
• t: 在狀態 s 下執行動作 a 所花費的時間。
• ∇θlogπ(a|s): 評分函數(score function),表示策略對當前動作的偏好程度。
• A(s,a): 優勢函數,衡量動作 a 相對於平均水平的優越程度。
用動作的執行時間來縮放其梯度更新量。執行時間長的動作,即使它被取樣的頻率低,每次更新也會產生更大的影響,從而在優化過程中獲得公平的對待。在實踐中,作者還會對 t 進行批內平均時間歸一化,避免單個極長動作導致梯度爆炸。
挑戰二:稀疏獎勵訊號
1. 問題分析:成敗論英雄的局限
MLE任務的天然獎勵是模型在測試集上的效能指標(如準確率、AUC)。但這是一種非常稀疏(Sparse)的獎勵。程式碼必須從資料載入、預處理、模型建構、訓練到最終推論提交,每一步都完全正確,才能獲得一個正獎勵。任何一步出錯,獎勵都是零或負值。
這就像考試只有「滿分」和「零分」兩種成績。一個學生因為寫錯檔案名稱而交卷失敗,和另一個學生所有步驟都對但最後答案抄錯了一位,獲得的回饋都是「零分」。這種回饋無法區分「完全失敗」和「接近成功」,使得學習過程異常困難。智能體很容易被困在局部最優解中,例如,完全放棄複雜的機器學習步驟,轉而用一些取巧的、能快速拿到基礎分的方法。如圖3所示(此處原圖編號有誤,應為圖4),在一個情感分析任務中,智能體最終收斂的方案是直接編碼評估指標(Jaccard相似度)並在測試輸入中搜尋最佳短語,完全繞過了機器學習。
2. 方法:環境儀器化提供部分信用
為了解決稀疏獎勵問題,作者提出了一個巧妙的「環境儀器化」方案,為中間步驟提供部分信用(Partial Credit)。
(1) 核心思想:
在程式碼執行過程中插入「檢查點」(print語句)。智能體完成的步驟越多,它能打印出的檢查點就越多,獲得的部分獎勵也就越高。這樣,一個在資料載入階段失敗的方案,獲得的獎勵會遠低於一個在模型訓練完成後才失敗的方案。
(2) 方法流程:
1. 插入打印語句:使用一個獨立的、靜態的(不參與RL訓練)Qwen2.5-3B模型,來自動化地在智能體生成的程式碼中插入預先定義好的打印語句(例如:`print("imported packages")` , `print("loaded data")` , `print("training loss: {loss}")` 等)。這個「儀器化LM」的提示詞被設計為只添加打印語句,不修改原有程式碼邏輯。
2. 執行與匹配:執行被儀器化後的程式碼,捕獲終端輸出。
3. 解析與賦分:使用正規表達式(regex)匹配終端輸出中的打印語句。完全失敗的方案得-10分。每匹配到一個預定義的打印語句,就增加0.1分。如果能成功運行到最後並產生提交,則使用測試集上的真實效能得分(通常介於-1到1之間)作為獎勵。
(3) 關鍵設計:
必須使用一個獨立的LM來進行儀器化。如果讓正在學習的智能體自己來插樁,它可能會學會「作弊」——生成大量打印語句來騙取部分獎勵,而不去真正執行有價值的操作。
附加策略:自我改進提示(Multi-Step RL with Self-Improvement Prompt)
除了讓智能體直接從零開始解決問題,作者還進一步探索了讓智能體自我改進的能力。在訓練過程中,以50%的機率給智能體提供一個「自我改進」的提示,要求它基於之前某個解決方案的執行結果(包括終端輸出和部分獎勵)來修訂和改進該方案。
這相當於給了智能體一個「錯題本」,讓它學會分析失敗原因並做出改進。雖然作者發現小型模型的自我除錯能力有限,但這種「從零生成」與「改進舊方案」相結合的方式,最終在12個任務中的10個上都帶來了進一步的效能提升(平均提升8%)。
實驗設置與評估
為了驗證上述方法的有效性,作者在MLEBench基準上進行了全面的實驗。MLEBench包含75個Kaggle挑戰任務,涵蓋圖像、文字、表格資料上的分類和迴歸問題。
• 模型:主要使用Qwen2.5-3B-Instruct作為可訓練的RL智能體。對比的基準是諸如Claude-3.5-Sonnet、GPT-4o和Llama3.1-405B這樣的「龐然大物」。
• 基準方法:
• 前沿模型+智能體框架:使用AIDE、OpenHands、MLAgentBench等先進的智能體框架來提示(Prompt)大型模型。
• 純RL基準:使用標準的分布式RL框架(如HybridFlow)而不加本文的改進。
• 評估指標:使用MLEBench的評測器對最終提交的檔案進行評分。報告多次運行的平均分和最佳分。
• 訓練配置:使用PPO演算法,在8塊A100 GPU上對每個任務訓練1-3天直至收斂。超參數詳情見附錄表3。
結果與分析
主實驗結果:RL小型模型 vs. 提示大型模型
表1
表2
表1 和 表2 展示了最核心的結果,令人印象深刻。
表1 將RL訓練後的Qwen2.5-3B與使用AIDE框架提示的各大前沿模型進行對比。結果顯示:
• 在12個任務中的8個上,3B的RL小型模型取得了最佳效能。
• 平均而言,它的效能比強大的Claude-3.5-Sonnet高出22% ,比GPT-4o(100小時運行)高出24% 。
• 即使在它未能擊敗大型模型的任務上,RL訓練也顯著超越了直接用AIDE提示Qwen2.5-3B本身的效能。
表2 對比了不同的智能體框架。即使是用最強大的GPT-4o模型,搭配不同的智能體框架(AIDE, OpenHands, MLAB),其效能也在不同任務上波動,且整體上仍然不敵經過RL訓練的Qwen2.5-3B模型。這表明,RL提供了一種不依賴於特定提示框架的、更通用的效能提升途徑。
圖7動態地展示了效能隨時間的變化趨勢。對於許多任務,提示大型模型在開始時遙遙領先,但隨著時間的推移,RL小型模型透過持續學習,效能穩步提升並最終實現反超。這生動地體現了「學習」相對於「一次性推論」的長期優勢。
消融研究(Ablation Studies)
消融實驗有力地證明了每個創新組件的必要性。
1. 持續時間感知梯度的效果
沒有持續時間感知加權時,智能體生成的方案其平均執行時間會迅速下降並維持在很低水平(快但差的方案)。而採用了該方法後,智能體能夠探索並最終採用執行時間更長、但效能更好的方案(如梯度提升模型)。這表明該方法成功克服了優化偏差,鼓勵智能體追求高品質解。
2. 環境儀器化的效果
沒有部分信用時,訓練初期的平均得分極低(因為大量方案得-10分),且收斂速度慢,方差大(其中一個運行甚至未能產生任何有效解)。而有了環境儀器化提供的部分獎勵,平均得分從訓練開始就更高,且上升和收斂的速度更快、更穩定。這證明了部分信用對於緩解稀疏獎勵、引導智能體學習至關重要。
3. 自我改進提示的效果
在12個任務中的10個上,加入「改進先前方案」的提示帶來了進一步的效能提升,平均提升達8%。這表明RL不僅提升了智能體「從零開始」的能力,也提升了其「迭代優化」的能力。
定性分析
上圖展示了一些由智能體發現的高效能解決方案。例如,在lmsys-chatbot-arena任務中,智能體學會了進行複雜的特徵工程,使用回應長度差、詞數差、平均詞長差等作為預測使用者偏好的特徵。在random-acts-of-pizza任務中,智能體最終找到了結合TF-IDF文字特徵和使用者元特徵,並使用隨機森林+網格搜尋的高成本、高回報方案。這些例子直觀地展示了RL智能體是如何透過學習變得越來越「聰明」的。
討論與相關工作
本文的工作與多個領域密切相關。
• 機器學習工程智能體:本文沒有像大多數現有工作那樣專注於設計更複雜的提示框架或推論時啟發式搜尋,而是另闢蹊徑,透過梯度更新讓小型模型實現自我進化。
• 大型語言模型的強化學習:以往的研究(如RLHF)大多在獎勵模型或數學/程式碼驗證器提供瞬時獎勵的環境中進行,忽略了動作執行時間的可變性。本文首次在實用智能體系統中明確提出並解決了這一問題。
• 智能體系統的強化學習:先前關於互動式任務(如網頁導航、終端操作)的RL研究,主要關注回合制互動,時間開銷差異不大。本文關注的則是每個「回合」內部耗時差異巨大的場景,並提供了新的解決方案。
局限性:目前的工作是針對每個任務單獨訓練一個智能體。未來的方向包括訓練一個通用智能體解決多任務、研究其泛化能力,以及探索更複雜的多步分解規劃。
社會影響:AI智能體自動化機器學習工程流程可能影響相關就業市場,需政策研究。讓智能體在網際網路上自由執行程式碼也存在安全風險,亟需更強的沙盒和安全技術。
結論
本文有力地論證了一個核心觀點:對於機器學習工程這類任務,一個能夠持續學習的小型模型,可以超越一個僅被提示的、靜態的巨型模型。
其核心貢獻在於:
1. 識別並形式化了RL在實用智能體系統中面臨的兩個關鍵挑戰:可變時長動作導致的優化偏差和稀疏獎勵。
2. 提出了兩項創新性解決方案:持續時間感知的梯度更新,確保了不同耗時動作的公平優化;環境儀器化,透過提供部分信用有效緩解了稀疏獎勵問題。
3. 透過大量實驗證實,一套基於3B小型模型的RL系統,能夠在一系列複雜的Kaggle挑戰中,穩定地超越由頂級大型模型驅動的先進智能體框架。
這項工作為未來AI智能體的發展指明了重要方向:平衡運算資源在推論、互動(動作執行)和學習(梯度更新)之間的分配,尤其是在那些互動開銷不可忽視的任務中。它告訴我們,讓AI「學會學習」,或許比一味地追求更大的模型規模更加重要。