Datawhale精華
作者:是念,編輯:青稞AI
作者:是念(知乎)https://zhuanlan.zhihu.com/p/1902381952998281700
DeepSeek R1帶動基於GRPO的強化學習技術之後,代理(agentic)工具使用學習也開始應用GRPO、Reinforce++、PPO、策略梯度等各種演算法了(以前是SFT+DPO,需要大量標註資料來涵蓋不良案例,當時標註高品質資料都讓我標哭了)。我們希望讓大型語言模型學會使用程式碼解譯器、網路搜尋等工具,以增強現有模型的數學和推理能力。單輪是指呼叫一次工具,多輪是指呼叫多次工具。多輪工具使用更為困難,主要是因為資料難以取得,且建模方式(MDP這種只考慮當前狀態的訓練模式,或是使用完整歷史、考慮所有狀態的模式)尚不明確。工具使用強化學習(tool-use RL)也算是一個新的研究方向,其潛力仍有待挖掘。
最近的工作仍然集中在設計這個多輪工具使用的提示模板,以及訓練時需要設計基於規則的獎勵(正確性獎勵、格式獎勵、工具執行獎勵等)、訓練工具輸出的遮罩操作、在取樣時加入非同步並行、整合Megatron的管線並行、加入多模態資訊等等。訓練範式基本上是先收集一波專家軌跡進行監督微調(SFT),然後使用強化學習(RL)訓練(例如ReTool),或者直接應用強化學習(例如TORL、ToolRL、OTC等)。目前尚未出現一個真正為代理強化學習設計的方法,多數都是重複利用現有基礎設施(例如verl、open-rlhf、trl、ms-swift),並進行了一些擴展。
最近在工具使用的基礎上,還出現了一個工具整合推理(tool integrated reasoning),與CoT的區別在於推理過程中會使用工具,這樣推理過程動態地添加了搜尋、程式碼、各種客製化API的輸入,推理能力得到了進一步的增強。市面上關於這個方向的文章比較少,我結合自身閱讀論文和實踐的經歷,分享一下,共同推動這個領域的研究。
有些人會好奇,這個代理的工具使用提示(prompt)該怎麼寫,如下範例,這是一個包含了聊天模板的工具提示,具體包括聊天模板、工具綱要(tool schema)、工具呼叫、工具回應等等。系統提示通常寫工具綱要資訊,助理是模型的響應,思考過程包含在<think></think>中,工具呼叫的參數包含在</tool_call>中,工具執行的回應放在使用者響應中,包含在</tool_response>標籤中:
<|im_start|>system In this environment you have access to a set of tools you can use to assist with the user query. You may perform multiple rounds of function calls. In each round, you can call one or more functions. Here are available functions in JSONSchema format: ```json tool_schema ``` In your response, you need to first think about the reasoning process in the mind and then conduct function calling to get the information or perform the actions if needed. The reasoning process and function calling are enclosed within <think> </think> and <tool_call> </tool_call> tags. The results of the function calls will be given back to you after execution, and you can continue to call functions until you get the final answer for the user's question. Finally, if you have got the answer, enclose it within \boxed{} with latex format and do not continue to call functions, i.e., <think> Based on the response from the function call, I get the weather information. </think> The weather in Beijing on 2025-04-01 is \[ \boxed{20C} \]. For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags: <tool_call> {"name": <function-name>, "arguments": <args-json-object>} </tool_call><|im_end|> <|im_start|>user User 1 wants to return all books by Jane Doe they have checked out. Each book is 5 days overdue, what is the total late fee? <|im_end|> <|im_start|>assistant <think> First, I need to find out which books by Jane Doe the user has checked out. Then, I will calculate the late fee for each book based on the number of days it is overdue. </think> <tool_call> {"name": "get_user_checked_out_books", "arguments": {"user_id": 1}} </tool_call> <tool_call> {"name": "search_books_by_author", "arguments": {"author": "Jane Doe"}} </tool_call> <|im_end|> <|im_start|>user <tool_response> {"name": "get_user_checked_out_books", "arguments": {"user_id": 1}} ['Python Basics', 'Advanced Python', 'Data Structures'] </tool_response> <tool_response> {"name": "search_books_by_author", "arguments": {"author": "Jane Doe"}} [{'title': 'Python Basics', 'author': 'Jane Doe', 'copies_available': 3}, {'title': 'Advanced Python', 'author': 'Jane Doe', 'copies_available': 0}] </tool_response> <|im_end|> <|im_start|>assistant <think> ... ...
代理強化學習的興起讓許多基於代理做落地應用的人看到了希望,說一下代理強化學習的優點:
• 可以直接透過工具互動取得外部知識,進一步提升模型的準確率。
• DPO是一個資料驅動的方法,需要大量的資料進行訓練,DPO吸收了對比學習的一些思想,所以訓練好很不容易。PPO系列的方法是一個線上強化學習(online-RL)的方式,每次透過取樣的方式生成樣本,然後進行訓練提升,需要的資料量比DPO要小很多。
說了一下代理強化學習的優點,我也聊一下代理強化學習的不足。
• 真正複雜的任務可能需要幾十個步驟才能完成,受限於大型語言模型處理長序列效果下降、長序列後計算效率低等原因,現有的強化學習框架還是集中在10個步驟左右就能完成的任務,真實的任務往往需要30-100個步驟才能解決,所以距離真正能解決複雜的問題還有一段的距離。
• GRPO雖然是基於規則的方法,簡化了流程,但還是需要標註資料,加上精心設計獎勵,最後還要調整參數、調整資料才能得到一個不錯的效果。
• 強化學習需要依賴環境進行訓練,一般是一些模擬環境,它的速度肯定不如GPU的計算速度快,能夠加速環境、跟得上強化學習訓練的步伐也是一個需要值得考慮的問題。
• 代理強化學習研究的單一工具居多,例如程式碼解譯器專用(code interpreter-only)、網路搜尋專用(web search-only)等等,多個工具混合多輪呼叫的研究較少。
有些人會對這幾個強化學習演算法分不清楚,我來簡要地梳理一下:
• PPO :把生成的每個token當成一個「動作」,對模型的每個輸出進行監督,這個過程使用的是價值模型/評論模型(value model/critic model)完成的,損失上加上了裁剪機制限制策略的更新幅度,避免模型「學偏」。
• GRPO :GRPO是PPO的改進版,不依賴於價值網路,透過生成同一個樣本的多個輸出,然後計算每個輸出的獎勵與組內平均獎勵的差值,然後使用KL散度來約束模型與參考模型的偏離程度。
• REINFORCE++ : 在基礎的REINFORCE基礎上增加「歷史基準線」機制,例如用過去多個批次(batch)的平均獎勵作為當前的基準線,避免單一批次的波動影響。
此外還有RLOO、REMAX、策略梯度等演算法,有興趣的話可以學習相關資料,強化學習有個特點,理論都比較長、晦澀難懂,放到程式碼裡面就幾行簡單的程式碼。
DeepSeek 技術分析
說到強化學習技術,不得不提一下前段時間很受歡迎的DeepSeek底層技術,效果也比較驚豔,例如DeepSeek V3在大部分指標上超越了閉源模型GPT-4o,DeepSeek-R1也在大部分指標上超越了O1,開源模型能做到這麼優秀,簡直不可思議,還打亂了許多AI公司的閉源路線規劃,辛苦構築的壁壘,一夜就消失了。我總結了一下DeepSeek-R1和V3所用到的技術:
• Mixture-of-Experts: 降低了訓練成本並提高了推理效率。
• Multi-Head Latent Attention: 減少了注意力部分的KV快取。低秩。
• Multi-Token Prediction: 提高了模型的性能(準確性)。
• DualPipe: 提高了大規模GPU叢集的計算與通訊比率和效率。
• FP8 Training: 透過採用這種低精度訓練進一步降低了訓練成本。
• DeepSeek-R1強化學習GRPO與多階段訓練
這些技術就不詳細展開了,市面上解讀這些論文的文章也有一大堆,其中GRPO帶動了強化學習的技術路線,它跟PPO的區別就是優勢(advantage)(用於降低方差)是取樣過程產生的樣本的獎勵,求均值、方差得到的。因為跟PPO差別很小,所以在開源程式碼實現PPO的時候,GRPO也順帶實現了。GRPO雖然只需要基於規則的獎勵,但是你需要根據經驗設計這個獎勵,對於喜歡調整參數的人員當然是好事,對於想偷懶的人士就不太友善:
TORL: Scaling Tool-Integrated RLTORL:可擴展的工具整合型強化學習
論文:https://arxiv.org/abs/2503.23383
程式碼:https://github.com/GAIR-NLP/ToRL
這篇論文介紹了ToRL(工具整合強化學習),這是一個用於訓練大型語言模型(LLM)的框架,透過強化學習自主使用計算工具。與監督微調不同,ToRL允許模型探索和發現工具使用的最佳策略。
Qwen2.5-Math模型的實驗顯示了顯著的改進:ToRL-7B在AIME~24上的準確率達到43.3%,比沒有工具整合的強化學習高14%,比現有的最佳工具整合推理(TIR)模型高17%。進一步的分析揭示了新興行為,例如策略工具呼叫、無效程式碼的自我調節以及計算和分析推理之間的動態適應,所有這些行為都純粹是透過獎勵驅動的學習產生的。
訓練使用VERL,GRPO演算法,rollout批次大小128,16個樣本,未使用KL損失,溫度為1。Qwen2.5-7B模型。
TORL在資料集的建構中使用了LIMR,抽取高品質的樣本,均衡難樣本的分布,本來有75,149條,篩選後得到28,740條資料。為了使模型能夠使用程式碼塊自動輸出推理,TORL使用了如下所示的提示。
在模型的推出過程中,當檢測到程式碼終止識別符號(「output」)時,系統會暫停文字生成,提取最新的程式碼塊以供執行,並將結構化執行結果以「output\nOBSERVATION\n」格式插入上下文中,其中OBSERVATION是執行結果。然後,系統繼續生成後續的自然語言推理,直到模型提供最終答案或生成新的程式碼塊。
值得注意的是,當程式碼執行失敗時,故意向LLM返回錯誤訊息,因為假設這些錯誤診斷增強了模型在後續迭代中生成語法和語義正確程式碼的能力。
A conversation between User and Assistant. The user asks a question, and the Assistant solves it. User:Please integrate natural language reasoning with programs to solve the problem above, and put your finalanswer within \boxed{}. prompt Assistant:
ToRL的設計選擇
工具呼叫頻率控制:rollout期間的工具整合會引入大量GPU閒置時間,rollout速度與工具呼叫頻率成反比。為了保持合理的訓練效率,本文引入了一個超參數C,表示每次響應生成允許的最大工具呼叫次數。一旦超過此閾值,系統將忽略進一步的程式碼執行請求,迫使模型切換到純文字推理模式。
執行環境選擇:為了平衡訓練效率和有效性,我們尋求一個穩定、準確且響應迅速的程式碼解譯器實現。經過調研和測試,最終選擇了Sandbox Fusion2,它提供了一個隔離的執行環境。儘管延遲稍高,但它為持續訓練操作提供了卓越的穩定性。
錯誤訊息處理:實施了特定的錯誤處理優化,以提高訓練效果。當Sandbox Fusion遇到執行錯誤時,它會生成包含不相關檔案路徑資訊的詳細回溯。為了減少上下文長度並僅保留相關的錯誤資訊,只提取最後一行錯誤訊息(例如,NameError: name 'a' is not defined)。
沙盒輸出遮罩:在損失計算過程中,從沙盒環境中遮罩了OBSERVATION輸出,透過防止模型試圖記憶特定的執行輸出而不是學習可推廣的推理模式,顯著提高了訓練穩定性。
獎勵設計:實現了一個基於規則的獎勵函數,正確答案獲得1的獎勵,錯誤答案獲得-1的獎勵。此外,程式碼解譯器自然會提供關於程式碼可執行性的回饋。基於成功執行程式碼和解決問題準確性之間的相關性,引入了一種基於執行的懲罰:包含不可執行程式碼的響應會減少-0.5的獎勵。更多詳細內容請參考論文:
ToolRL: Reward is All Tool Learning Needs
論文:https://arxiv.org/abs/2504.13958
當前的大型語言模型 (LLM) 通常需要進行監督微調 (SFT) 來獲得工具使用能力。然而,SFT 難以推廣到不熟悉或複雜的工具使用場景。強化學習 (RL) 領域的最新進展,尤其是類似 R1 的模型,已經展現出良好的推理和泛化能力。然而,針對工具使用的獎勵設計面臨著獨特的挑戰:多個工具可能以不同的參數呼叫,而粗粒度的獎勵訊號(例如答案匹配)無法提供有效學習所需的細粒度回饋。
在本研究中,ToolRL全面研究了 RL 範式中工具選擇和應用任務的獎勵設計。系統地探索了各種獎勵策略,分析了它們的類型、規模、粒度和時間動態。基於這些見解,我們提出了一種針對工具使用任務量身定制的原則性獎勵設計,並將其應用於使用組相對策略優化 (GRPO) 的 LLM 訓練。
在不同基準測試中的實證評估表明,ToolRL能夠實現穩健、可擴展且穩定的訓練,相比基礎模型提升了 17%,相比 SFT 模型提升了 15%。這些結果凸顯了精心設計的獎勵機制在提升 LLM 的工具使用能力和泛化性能方面的關鍵作用。
為了確定最佳獎勵策略,探索了四個關鍵維度的各種獎勵配置:
• 1 獎勵類型(獎勵哪些方面)
• 2 獎勵尺度(獎勵多少)
• 3 獎勵粒度(獎勵訊號的詳細程度)
• 4 獎勵動態(獎勵如何隨時間演變)。
透過大量的實驗確定了最符合主體工具使用情況的獎勵設計,並揭示了獎勵對於呼叫工具的 LLM 而言「有用」的原因。論文得出的核心見解總結如下:
• 推理軌跡越長並不一定越好,而且過長的獎勵可能會降低性能。
• 動態獎勵尺度有助於模型從簡單行為平穩過渡到複雜行為。
• 細粒度的獎勵分解可實現更穩定、更有效的學習。
基於規則的獎勵機制已展現出強大的實證效果,並被廣泛採用。ToolRL同樣採用了一種結合結構性和基於正確性的獎勵公式,這與先前的研究一致。具體而言,格式獎勵評估模型輸出是否符合預期的結構,包括想法、工具呼叫和響應;而正確性獎勵則評估工具呼叫的準確性。形式上,整體獎勵 R final(·) 分解為兩個部分:R format + R correct,每個部分的具體描述如下:
格式獎勵:獎勵格式 Rformat ∈ {0, 1} 檢查模型輸出是否按照基本事實指定的正確順序包含所有必需的特殊token:
正確性獎勵:正確性獎勵 Rcorrect ∈ [−3, 3],用於評估預測的工具呼叫 P = {P1, ..., Pm} 與真實呼叫 G = {G1, ..., Gn}。它包含三個部分:ToolName Matching, Parameter Name Matching, Parameter Content Matching,具體就不詳細展開了,都是一些格式檢查的評判細則,貼了主要的公式。
訓練採用的是GRPO的方法,verl訓練框架,基座模型使用的是llama3.2和qwen模型,詳細就不展開了,有興趣請參考論文。
RAGEN: Understanding Self-Evolution in LLM Agents via Multi-Turn Reinforcement Learning
論文:https://arxiv.org/abs/2504.20073
程式碼:https://github.com/RAGEN-AI/RAGEN
將大型語言模型 (LLM) 訓練為互動式代理面臨著獨特的挑戰,包括長期決策以及與隨機環境回饋的互動。雖然強化學習 (RL) 在靜態任務中取得了進展,但多輪代理強化學習訓練仍未得到充分探索。
論文提出了 StarPO(狀態-思考-行動-獎勵策略優化),這是一個用於軌跡級代理強化學習的通用框架,並介紹了 RAGEN,一個用於訓練和評估 LLM 代理的模組化系統。本研究有三個核心發現。
首先,代理強化學習訓練呈現出一個反覆出現的「回聲陷阱」模式,其中獎勵方差出現斷崖式下降,梯度出現峰值;使用 StarPO-S 來解決這個問題,這是一個穩定的變體,具有軌跡過濾、評估器合併和解耦裁剪功能。
其次,多樣化的初始狀態、中等互動粒度和更頻繁的取樣將有利於強化學習部署的形成。
第三,如果沒有細粒度的、推理感知的獎勵訊號,代理推理就很難透過多輪強化學習出現,並且它們可能會表現出淺薄的策略或幻覺的想法。
分析了代理學習的三個關鍵維度,並總結了以下發現,揭示了穩定代理強化學習訓練的核心挑戰和設計原則:
多輪強化學習中的梯度穩定性是穩定訓練的關鍵。多輪強化學習訓練經常導致一種反覆出現的不穩定模式,即「回聲陷阱」,即代理過度擬合局部獎勵推理模式,其特徵是獎勵方差崩潰、熵下降和梯度尖峰。為了緩解這種失效模式,本文提出了 StarPO-S,它透過基於方差的軌跡過濾、評論者基準測試和解耦裁剪來提高學習魯棒性。
部署頻率和多樣性塑造自我演化。在基於強化學習的代理訓練中,LLM 自生成的部署軌跡被用作核心訓練材料。確定了代理強化學習穩定訓練的關鍵部署因素:
• (1) 確保部署來自多樣化的提示集,每個提示有多個響應;
• (2) 每輪執行多個操作,以在固定的輪次限制內改善互動範圍;
• (3) 保持較高的部署頻率,以確保線上回饋反映當前策略。
新興代理推理需要細緻的獎勵訊號。僅僅鼓勵動作形式的推理並不能保證推理行為的發生。即使透過 StarPO 進行軌跡級優化,模型被提示進行推理(例如,使用「<think>」標記),如果推理沒有帶來明顯的獎勵優勢,它們也常常會退回到直接動作選擇。推測這是由於 MDP 中的動作空間簡單,淺層策略就足夠了。
此外,當獎勵僅反映任務成功時,模型會產生幻覺推理,從而揭示思維與環境狀態之間的不匹配。這些問題凸顯了強化學習中對細粒度、推理感知的獎勵訊號的需求,以便進行長遠代理訓練。
如下圖,先前的方法側重於非互動式任務,例如數學或程式碼生成。RAGEN 實現了 StarPO,這是一個通用的代理強化學習框架,支援多輪部署、軌跡級獎勵分配和策略更新,適用於需要多輪隨機互動的代理任務。
如下圖,狀態-思考-行動-獎勵策略優化 (StarPO) 框架。LLM 為與環境的多輪互動生成推理引導的動作,並累積軌跡級獎勵,這些獎勵經過歸一化後用於更新 LLM 策略。
StarPO(狀態-思考-行動-獎勵策略優化是一個通用的強化學習框架,旨在優化 LLM 代理的完整多輪互動軌跡。與以往針對靜態任務單獨處理每個動作的方法不同,StarPO 將整個軌跡(包括觀察、推理軌跡、行動和回饋)視為一個連貫的單元,用於部署和模型優化。其目標是最大化預期軌跡獎勵:
在每次訓練迭代中,代理從初始狀態 0開始,並生成 條軌跡。在每一步 ,代理都會生成一個推理引導的結構化輸出
其中 是包含中間推理的完整動作輸出, 是環境可執行的子動作。環境隨後返回下一個狀態 +1 和獎勵 。rollout 階段生成完整軌跡 = { 0, 0, 0, 1, ..., −1, −1, },其中每個組件均由 LLM 生成或由環境誘導,並將進行聯合優化。
StarPO 交錯執行 rollout 和更新步驟。新的 rollout 可以使用 基於策略生成,也可以從 old 下的重放緩衝區中取樣。每個訓練循環包含 個初始狀態 0,每個狀態生成 條軌跡,並以批量大小 執行更新,總共 次循環。這導致總梯度步數 = · · / 。
演算法使用的是PPO和GRPO,模型使用的是qwen-0.5b-instruct,用的是verl框架。為了將 StarPO 付諸實踐,建構了RAGEN,這是一個用於在受控環境中訓練 LLM 代理的完整系統。RAGEN 支援結構化部署、可自訂的獎勵函數,並可與多輪隨機環境整合。它既可以作為 StarPO 的執行後端,也可以作為研究推理代理訓練過程中穩定性、泛化能力和學習動態的平台。
RAGEN 的設計具有模組化和可擴展性:新的環境、獎勵方案或部署策略可以輕鬆插入到訓練循環中,為基於強化學習的代理訓練分析奠定基礎。論文還在實驗部分採用了DAPO提到的穩定性方法,clip-higher和remove kl term,在Sokoban and Frozen Lake兩個任務上做的實驗(不太常見的任務)。想了解更多信息,請參考論文:
OTC: Optimal Tool Calls via Reinforcement Learning
論文:https://arxiv.org/abs/2504.14870
工具整合推理 (TIR) 增強了大型語言模型 (LLM) 的能力,使其能夠呼叫外部工具(例如搜尋引擎和程式碼解譯器),從而解決純語言推理能力所無法解決的任務。雖然強化學習 (RL) 已展現出透過優化最終答案正確性來提升 TIR 的潛力,但現有方法往往忽視了工具使用相關的效率和成本。這可能導致行為不理想,例如過度呼叫工具會增加計算和財務開銷,或使用工具不足會影響答案品質。
本文提出了基於最佳工具呼叫控制的策略優化 (OTC-PO),這是一個簡單而有效的基於強化學習的框架,它鼓勵模型以最少的工具呼叫生成準確的答案。OTC引入了一種工具整合獎勵機制,該機制同時考慮了正確性和工具效率,從而提高了工具的生產力。
框架實例化的 OTC-PPO 和 OTC-GRPO在多個 QA 基準測試中使用 Qwen-2.5 和 Qwen-Math 進行的實驗表明,在保持相當準確率的同時,將工具呼叫次數減少了高達 73.1%,並將工具效率提高了高達 229.4%。
OTC-PO是一種簡單而有效的基於強化學習 (RL) 的方法,它使大型語言模型 (LLM) 能夠學習對外部工具使用的精確且自適應的控制。OTC-PO 訓練模型以優化達到正確解決方案所需的工具呼叫次數,從而在不犧牲準確性的情況下降低訓練和推理成本。為了實現這一目標,本文引入了一種工具整合獎勵機制,它透過一個反映工具效率的縮放係數來調節傳統的獎勵訊號(例如正確性)。這鼓勵模型優先考慮需要較少工具呼叫次數的正確答案。
OTC-PO將優化目標從單純的正確性轉變為工具生產力,後者定義為任務收益(例如答案準確率)與工具使用成本(例如工具呼叫次數)之間的比率。OTC-PO輕量級且應用廣泛,只需對標準強化學習流程進行少量修改(僅需幾行程式碼),即可輕鬆應用於現有系統。在兩種常用工具模式下做了實驗:網頁搜尋和程式碼執行。使用多個 LLM(包括 Qwen-2.5-3B/7B-Base 和 Qwen2.5-Math-1.5B/7B-Base),OTC-PO 顯著減少了推理軌跡過程中的工具呼叫次數,同時保持了與傳統方法相當的準確率。論文提到的貢獻如下:
• 率先實現了以下目標:i) 系統地透過強化學習解決工具效率問題,而這個問題在先前的研究中往往被忽視;ii) 識別了LLM的TIR中的認知卸載現象;iii) 引入了工具生產力的概念來衡量TIR的有效性和效率。
• 提出了一種簡單、可擴展且可泛化的OTC-PO演算法,以鼓勵模型使用最佳工具呼叫來解決問題並最大化工具生產力。該演算法建立在一個基本觀察之上,即每個問題和模型對都存在一個最佳的工具呼叫次數。該演算法與各種強化學習演算法相容,並且只需少量程式碼更改即可輕鬆實現。
• 將OTC-PPO和OTC-GRPO作為兩種典型方法實現,同時保持了其適應性和泛化能力。在多個基準測試和基準線上的實驗結果表明,在保持域內和域外評估的大部分準確率的同時,工具呼叫成本顯著降低。
GRPO和PPO都比較常規,看一下獎勵的設計,使用的是餘弦函數,還挺特別的,OTC-PPO的工具獎勵設計:
OTC-GRPO的工具獎勵設計:
工具整合獎勵設計。
論文的主要目標是減少工具呼叫的次數,並不是追求最先進(SOTA)的表現,有點可惜。其他細節就不詳細展開了,有這個需求的讀者可以參考論文。
SkyRL-v0: Train Real-World Long-Horizon Agents via Reinforcement Learning
https://novasky-ai.notion.site/skyrl-v0
https://github.com/NovaSky-AI/SkyRL
大多數現有的強化學習框架都針對涉及短期無狀態互動的任務進行了優化,例如搜尋增強推理或簡單的程式碼執行。相比之下,像 SWE-Bench 中所示的真實世界任務,則受益於在有狀態的動態環境中進行長期規劃。這給基礎設施和訓練演算法都帶來了新的挑戰。
強化學習的最新進展使語言模型能夠成為主動代理。近期的開源框架,例如 Search-R1 和 ToRL(基於 VeRL 建構),在這方面取得了令人矚目的進展,實現了多輪強化學習,並能夠交叉使用單一工具(例如搜尋或程式碼執行)。這些系統為工具增強推理奠定了重要的基礎。然而,諸如 SWE-Bench、WebDev 和 Web 瀏覽等複雜的現實世界任務需要高級代理能力,其中模型需要呼叫多個工具、編寫和執行測試、響應環境回饋並執行長期規劃。
雖然這些更先進的智能體標誌著令人興奮的演變,但在它們上運行線上強化學習卻極具挑戰性。首先,高效的訓練框架需要快速的環境執行和高效的環境互動部署。其次,有效的訓練需要強大的長時程(long horizon)演算法(而非本部落格的重點)。總而言之,這使得問題比訓練先前的工具增強推理LLM複雜得多。
本文引入了 SkyRL——在 VeRL 和 OpenHands 之上建構的、用於在複雜環境中執行長期任務的多轉工具使用 LLM 的強化學習訓練流程,包括 SWE-Bench。SkyRL 功能:
• 支援訓練 LLM 代理,使其能夠執行具有複雜環境互動的多步驟規劃。
• 透過非同步並行運行,在軌跡之間重疊計算密集型和環境互動密集型階段,實現高吞吐量生成(相比基準實現,速度提升 4-5 倍)。
• 預填充(並擴展)的強化學習演算法,方便快速入門。
SkyRL建立在VeRL之上,繼承了其對學習演算法的豐富支援。SkyRL透過引入代理層擴展了VeRL:(1)高效的非同步多輪rollouts,(2)通用工具使用,以及(3)通用和可擴展的環境執行。
Group-in-Group Policy Optimization for LLM Agent Training
基於群組的強化學習 (RL) 的最新進展推動了大型語言模型 (LLM) 在數學推理等單輪任務中的應用。然而,它們在長期 LLM 代理訓練中的可擴展性仍然有限。與靜態任務不同,代理與環境的互動會跨越多個步驟展開,並且通常會產生稀疏或延遲的獎勵,這使得跨各個步驟的信用分配變得更加具有挑戰性。
本研究提出了一種新穎的強化學習演算法——群組策略優化 (GiGPO),它能夠為 LLM 代理實現細粒度的信用分配,同時保留了基於群組的強化學習的諸多優勢:無評判、低記憶體和穩定收斂。GiGPO 引入了一種用於估計相對優勢的兩級結構:
• (i) 在回合級別,GiGPO 基於完整軌跡組計算宏觀相對優勢;
• (ii) 在步驟級別,GiGPO 引入了一種錨定狀態分組機制,該機制透過識別跨軌跡的重複環境狀態來追溯建構步驟級別的組。
源自同一狀態的操作被分組在一起,從而實現微觀相對優勢估計。這種分層結構能夠有效地捕捉全局軌跡品質和局部步驟有效性,而無需依賴輔助模型或額外的部署。GiGPO使用 Qwen2.5-1.5B-Instruct 和 Qwen2.5-7B-Instruct,在兩個具有挑戰性的代理基準測試 ALFWorld 和 WebShop 上對 GiGPO 進行了評估。
至關重要的是,GiGPO 提供了細粒度的每步信用訊號,並且在 ALFWorld 上實現了 > 12% 的性能提升,在 WebShop 上實現了 > 9% 的性能提升,相比 GRPO 基準測試,GiGPO 的性能提升同樣顯著:同時保持相同的 GPU 記憶體開銷、相同的 LLM 部署,並且幾乎不產生額外的時間成本。
如下圖,代理與一組以相同狀態初始化的環境互動,以生成一組軌跡 {τi}Ni=1。相同顏色的狀態代表相同的環境狀態。GiGPO 執行二維組計算(episode level AE 和step level AS),以產生用於指導細粒度策略優化的分層相對優勢。
具體細節我就不展開了,就是在rollout階段做了一些細粒度的優化,不過作者開源了基於verl的程式碼,有興趣可以試一下。
論文:https://arxiv.org/abs/2505.10978
程式碼:https://github.com/langfengQ/verl-agent
Nemotron-Research-Tool-N1: Tool-Using Language Models with Reinforced Reasoning
利用外部工具賦能大型語言模型已成為將其功能擴展到文字生成任務之外的關鍵策略。先前的研究通常透過以下方式增強工具的使用能力:應用監督微調 (SFT) 來確保工具呼叫的正確性,或從更強大的模型中提煉推理軌跡以實現 SFT。然而,這兩種方法都存在不足,要麼完全忽略推理,要麼產生限制泛化的模仿推理。
受 DeepSeek-R1 透過基於規則的強化學習成功引出推理的啟發,本文提出了 Nemotron-Research-Tool-N1。Nemotron-Research-Tool-N1 並非嚴格監督從更強大的模型中提煉出的中間推理軌跡,而是透過二元獎勵進行優化,該獎勵僅評估工具呼叫的結構有效性和功能正確性。這種輕量級的監督機制使模型能夠自主地內化推理策略,而無需帶註釋的推理軌跡。
在 BFCL 和 API-Bank 基準上進行的實驗表明,基於 Qwen-2.5-7B/14B-Instruct 建構的 Nemotron-Research-Tool-N1-7B 和 Nemotron-Research-Tool-N1-14B 都取得了最先進的結果,在兩項評估中均優於 GPT-4o。
Nemotron-Research-Tool-N1(Tool-N1)訓練流程概覽如下圖。從包含使用者查詢(query)和候選工具的標準SFT工具呼叫資料開始,訓練LLM,使其使用GRPO演算法中的二元獎勵函數進行結構化推理和工具呼叫。由於監督僅針對格式和工具呼叫的正確性,因此訓練過程不需要精心策劃的推理軌跡。
資料準備
濾除包含無效工具呼叫的樣本(特別是那些涉及候選工具列表中缺失工具的樣本),並標準化資料集。從系統提示中提取可用工具,並將候選工具和真實工具呼叫解析為結構化字典格式。JSON 解析失敗或包含格式不一致的實例將被丟棄。這種預處理過程生成了一個乾淨且一致的資料集,適用於強化學習。對於來自 ToolACE 子集的多輪資料,進一步將每個軌跡細分為多個單步預測實例(將多輪拆成多個單輪,重複利用現有的基礎設施),其中每個實例包含一個目標工具呼叫,並將前面的步驟視為上下文。使用GRPO訓練,根據這些上下文信息和提供的工具來預測每個工具呼叫步驟。
思考模板
採用輕量級的提示模板來從 LLM 中引出工具呼叫,如下圖所示。該提示明確指示模型在 <think>...</think> 標籤內生成中間推理,然後在 ...</tool_call> 標籤內進行工具呼叫。此模板背後的設計理念是盡量減少對過於嚴格的格式規則的依賴,從而降低過度擬合特定提示模式的風險。透過賦予模型更大的推理表達靈活性,目標是促進模型在不同工具使用場景中實現更穩健的泛化。此外,在訓練過程中使用這種輕量級的提示設計,使生成的模型能夠更容易地與更複雜的提示策略整合。
獎勵建模
格式檢查:訓練過程中加入了格式檢查,以驗證模型的輸出是否符合預期的結構規範——具體來說,推理過程是否包含在 <think>...</think> 標籤中,工具呼叫是否正確包含在 ...</tool_call> 標籤中。這種結構約束鼓勵模型在工具呼叫之前進行明確的推理,而不是快速得出最終答案。透過強制遵循格式,旨在培養模型的內在推理能力,這可能會有助於提升泛化能力——尤其是在處理分佈外輸入時。
工具呼叫檢查:檢查工具呼叫本身的正確性。工具呼叫輸出被解析為字典,以便與真實呼叫進行精確匹配。這包括檢查預測的工具名稱是否與真實呼叫匹配,以及所有必需的參數是否都具有正確的值。這種嚴格的匹配標準確保模型能夠學習生成功能精確且可執行的工具呼叫。與 SFT 中的下一個標記預測邏輯相比,這種基於字典的匹配帶來了更大的靈活性。它允許參數順序變化而不會受到懲罰,從而鼓勵模型專注於工具呼叫的底層語義,而不是停留在表面記憶。這種設計有助於更深入地理解工具的使用,並支持更好的泛化。
這是一篇很好的來自NVIDIA的實踐文章,詳細資訊請參考論文:
https://arxiv.org/abs/2505.00024
Agentic Reasoning and Tool Integration for LLMs via Reinforcement Learning
大型語言模型 (LLM) 在複雜推理任務中取得了顯著進展,然而,它們仍然受到對靜態內部知識和純文字推理的依賴,這從根本上限制了它們的發展。現實世界的問題解決通常需要動態、多步驟推理、自適應決策以及與外部工具和環境互動的能力。
本文引入了 ARTIST(自改進 Transformers 中的代理推理和工具整合),這是一個統一的框架,它將代理推理、強化學習和 LLM 的工具整合緊密結合在一起。ARTIST 使模型能夠自主決定在多輪推理鏈中何時、如何以及呼叫哪些工具,利用基於結果的強化學習來學習強大的工具使用和環境互動策略,而無需步驟級監督。
在數學推理和多輪函數呼叫基準測試中進行的大量實驗表明,ARTIST 的性能始終優於最先進的基準模型,與基礎模型相比,其絕對性能提升高達 22%,並且在最具挑戰性的任務中取得了顯著的進步。詳細的研究和指標分析表明,代理強化學習訓練能夠帶來更深層次的推理、更高效的工具使用和更高品質的解決方案。
在 ARTIST 中,rollout 在模型生成的推理步驟和工具輸出之間交替進行,從而捕捉代理與外部工具和環境的互動。統一應用 token 級損失會導致模型模仿確定性工具輸出,而不是學習有效的工具呼叫策略。
為了防止這種情況發生,ARTIST採用了一種損失遮罩策略:在損失計算過程中,工具輸出中的 token 會被遮罩,確保梯度僅透過模型生成的 token 傳播。這將優化重點放在代理的推理和決策上,同時避免來自確定性工具響應的虛假更新。
ARTIST 架構圖如下。透過交織基於文字的思維、工具查詢和工具輸出,實現代理推理,從而在統一框架內實現推理、工具使用和環境互動的動態協調。
ARTIST 方法論概述如下圖。該框架闡述了推理如何在內部思考、工具使用和環境互動之間交替進行,並以基於結果的獎勵來指導學習。這使得模型能夠透過強化學習迭代地完善其推理和工具使用策略。
ARTIST 中的 Rollouts
在 ARTIST 中,rollout 的結構設計為在內部推理和與外部工具或環境的互動之間交替進行。與僅由模型生成的 token 組成的標準 RL rollout 不同,ARTIST 採用迭代框架,其中 LLM 將文字生成與工具和環境查詢交織在一起。提示模板:ARTIST 使用結構化的提示模板,將輸出分為四個部分:
• (1) 內部推理 (<think>...</think>)
• (2) 工具或環境查詢 (...</tool_name>)
• (3) 工具輸出 (<output>...</output>)
• (4) 最終答案 (<answer>...</answer>)
發出工具查詢後,模型會呼叫相應的工具或環境,附加輸出,並繼續推理循環,直到得出答案。Rollout 過程:每次rollout都由這些結構化片段組成,策略模型在每個步驟中決定是進行內部推理還是與外部資源互動。
工具呼叫可能包括程式碼執行、API 呼叫、網路搜尋、檔案操作或在互動環境(例如網路瀏覽器或作業系統)中的操作。這些互動的輸出會被重新整合到推理鏈中,從而實現基於回饋的疊代改進和自適應策略調整。
獎勵設計
精心設計的獎勵函數對於有效的強化學習訓練至關重要,因為它提供了優化訊號,引導策略朝著理想的行為發展。在 GRPO 中,基於結果的獎勵已被證明既高效又有效,無需密集的中間監督即可支持穩健的策略改進。然而,ARTIST 為獎勵設計帶來了新的挑戰:除了得出正確的最終答案之外,模型還必須以連貫可靠的方式建構其推理、工具使用和環境互動。
為了解決這個問題,ARTIST使用了一種複合獎勵機制,可以為每次部署提供細粒度的回饋。ARTIST 中的獎勵函數由三個關鍵部分組成:
答案獎勵:當模型生成正確的最終答案(如 <answer>...</answer> 標籤中所示)時,該組件會分配正向獎勵。答案獎勵直接激勵模型正確解決任務,確保推理過程的最終目標得以實現。格式獎勵:為了促進結構化和可解釋的推理,ARTIST引入了格式獎勵,鼓勵遵守規定的提示模板。該獎勵檢查兩個主要標準:
• (1) 在整個部署過程中,執行順序——推理 (<think>)、工具呼叫 () 和工具輸出 (<output>) 是否保持正確;
• (2) 最終答案是否正確地包含在 <answer> 標籤中。格式獎勵有助於模型學習以一致且易於解析的方式組織其輸出,這對於可靠的工具呼叫和下游評估至關重要。
工具執行獎勵:在每次工具互動過程中,模型的查詢可能格式正確或可執行,也可能不正確。為了鼓勵穩健有效的工具使用,ARTIST引入了工具執行獎勵,定義為成功工具呼叫的比例:
Tool Exection Reward = Tool success / Tool total
其中 Tool success 和 Tool total 分別表示成功呼叫工具的次數和總呼叫次數。此獎勵確保模型學習生成語法正確且可在目標環境中執行的工具查詢。
ARTIST使用的是GRPO方法訓練,模型用的是Qwen2.5 7b和14b,框架用的是verl,然後分別針對複雜數學推理和多輪函數呼叫設計了獎勵函數,詳細請參考論文:
https://arxiv.org/abs/2505.01441
Agent RL Scaling Law: Spontaneous Code Execution for Mathematical Problem Solving
大型語言模型 (LLM) 通常在需要精確、可驗證計算的數學推理任務中舉步維艱。雖然基於結果的獎勵的強化學習 (RL) 可以增強基於文字的推理能力,但理解代理如何自主學習利用程式碼執行等外部工具仍然至關重要。本文研究了基於結果的獎勵的強化學習,並將其應用於工具整合推理 (ZeroTIR) 訓練基礎 LLM,使其能夠在沒有監督工具使用範例的情況下自發生成並執行用於數學問題的 Python 程式碼。
具體而言,訓練步數的增加會導致自發程式碼執行頻率、平均響應長度以及至關重要的最終任務準確率的提高。這表明,投入到訓練中的計算工作量與有效的工具增強推理策略的出現之間存在可量化的關係。實現了一個具有解耦程式碼執行環境的穩健框架,並在標準 RL 演算法和框架中驗證了我們的發現。實驗表明,ZeroTIR 在具有挑戰性的數學基準測試中顯著超越了非工具 ZeroRL 基準線。
基於現有工具功能,基於微調模型的強化學習會掩蓋一些重要的發現。與基於 SFT 之後模型的強化學習類似,很難觀察到響應長度與性能之間的關係。本文旨在提供更全面、更清晰的分析,以促進社區研究和「代理強化學習擴展定律」的複現。展示了使用主流社區框架(Open-Reasoner-Zero、OpenRLHF)和流行的強化學習演算法(PPO、Reinforce++)以及環境伺服器進行的詳盡實驗。研究了從基礎模型初始化的 LLM 如何透過強化學習自發學習利用 Python 程式碼執行環境。
論文的核心假設是,利用這種工具的學習過程遵循可識別的模式,將其稱為「代理強化學習擴展定律」。
• 識別並描述了新的代理強化學習擴展定律,該定律控制著 ZeroTIR 中自發程式碼執行技能的自主習得,用於數學推理。
• 提出並實現了一個有效的框架 ARL,用於訓練基礎 LLM,以自發地利用程式碼執行,該框架可以在社區主流的強化學習訓練框架上快速啟用。
• 實證驗證表明使用 ZeroTIR 訓練的 ZTRL 模型在具有挑戰性的數學基準測試和基於 SFT 的 TIR 方法上顯著優於非工具性 ZeroRL 基準線。
ZeroTIR 透過強化學習訓練基礎 LLM,使其能夠自主利用 Python 程式碼執行環境進行數學問題求解。主要採用策略梯度演算法,例如 PPO 和 REINFORCE 變體,例如 Reinforce++。
首先,ZeroTIR引入了重放緩衝區過濾機制,以增強穩定性並集中學習。針對同一提示生成的數個響應被分組,並計算其最終答案準確率(基於結果獎勵)。濾除準確率高於高閾值 0.8 或低於低閾值 0.2 的組,優先考慮學習梯度可能最有利的中間範圍內的樣本。
其次,ZeroTIR實現了一種高效的互動機制,用於在部署期間自發執行程式碼,如圖 3 所示,該方法利用動態停止token(例如,「python」、「 」)來迭代管理推理、程式碼生成、與外部程式碼環境的互動以及執行回饋的整合。這種狀態機方法比生成完整序列然後進行事後解析以提取程式碼的效率顯著提高。
該機制還透過計算已完成的執行週期 (n calls) 來管理工具互動頻率。為了進行實驗控制,尤其是在管理計算資源的初始運行中,強制設定最大呼叫次數 (N max)。達到此限制後,會在最終恢復生成之前向上下文中注入一條通知(「工具呼叫次數已用盡。您無法再呼叫該工具。」),以確保代理此後能夠依靠內部推理。
論文:https://arxiv.org/abs/2505.07773
程式碼:https://github.com/yyht/openrlhf_async_pipline
總結
還有一些與搜尋相關的工作,例如 R1-Searcher、ReSearch、Search-R1、DeepResearcher 等,有興趣可以看看。
總體上,代理的訓練擴展還是基於現有的強化學習基礎設施,做了一些修改,稱不上是巨大的創新,但是這個領域逐漸活躍起來了,說不定大家競爭來競爭去發現了一條百試百靈的路徑,讓強化學習和代理更完美地融合,門檻進一步降低,支持更複雜的場景。
一起「點贊三連」↓