NVIDIA發佈Polar:用於跨Codex、Claude Code和Qwen Code進行GRPO訓練的忠實令牌回滾框架
NVIDIA研究人員推出Polar框架,通過在智能體工具鏈和推理服務器之間放置模型API代理,實現無需修改智能體工具鏈即可進行強化學習訓練。基於Qwen3.5-4B模型使用GRPO訓練,Polar在Codex、Claude Code和Pi工具鏈上分別將SWE-Bench Verified pass@1提升了22.6、4.8和6.2個百分點。框架以NeMo Gym環境註冊,並在ProRL Agent Server倉庫開源。
文章情報
要點
- Polar通過模型API代理捕獲令牌級交互,無需修改現有智能體工具鏈即可進行RL訓練
- 使用GRPO在Qwen3.5-4B上訓練,SWE-Bench Verified最高提升22.6個百分點
- 支持多種API格式(Anthropic、OpenAI、Google),並提供前綴合並策略加速軌跡重建5.39倍
- 同時支持在線強化學習和離線SFT數據生成,已在GitHub開源
為甚麼重要
這條新聞值得關注,因為Polar通過模型API代理捕獲令牌級交互,無需修改現有智能體工具鏈即可進行RL訓練。
技術影響
可能影響模型選型、推理成本、產品能力和評測基準。
強化學習在語言智能體中的應用日益複雜。智能體現在需要管理多輪工具調用、長上下文任務以及多智能體協作。將現有智能體軟件接入訓練流程而不破壞其運行機制,是當前的主要工程挑戰。
NVIDIA研究團隊推出的Polar框架,為研究人員提供了一種無需修改任何智能體工具鏈即可對其運行強化學習的方法。
Polar解決的核心問題
“智能體工具鏈”是指像Codex CLI、Claude Code、Qwen Code或Pi這類工具。它們負責管理系統提示詞、工具格式、上下文工程以及智能體提交補丁的方式。這些細節直接影響智能體在評估時的行為。
傳統的強化學習基礎設施要求將工具鏈邏輯重寫為框架擁有的環境API(通常採用OpenAI Gym風格的env.init()、env.step()、env.reset())。每個新工具鏈都需要新的集成代碼,並可能丟失原生工具鏈路徑中的執行細節。
Polar的關鍵洞察是:每個基於LLM的智能體都必須調用模型。這個模型API邊界是智能體外部的共同接口。Polar不在工具鏈內部集成,而是在該邊界放置一個代理。
代理的工作機制
對於每個傳入的模型請求,網關代理執行四步操作:
- 檢測提供方API——通過請求路徑和標頭,區分Anthropic Messages、OpenAI Chat Completions、OpenAI Responses和Google generateContent等格式。
- 標準化請求——將角色、內容部分、工具定義和生成參數轉換為本地推理服務器使用的OpenAI Chat Completions格式。
- 捕獲令牌級數據——存儲請求消息、響應消息、提示令牌ID、採樣響應令牌ID、結束原因和log概率。
- 返回提供方格式——將響應轉換回工具鏈期望的格式。
對於流式請求,Polar獲取非流式上游響應併發射合成提供方格式流。這保證了與期望服務器發送事件的工具鏈的兼容性,同時確保完整令牌捕獲。
對現有工具鏈的唯一改動是將模型基礎URL指向網關。
架構:回滾服務器與網關節點
Polar包含兩個核心組件:
回滾服務器接收TaskRequest並將其擴展為num_samples個獨立會話。每個會話帶有會話ID、任務ID、超時預算、運行時規範、智能體規範、軌跡構建器、評估器和回調URL。服務器將會話分發到網關節點,並在會話完成時接收回調。
網關節點負責每個會話的完整生命週期——啓動運行時、運行工具鏈、構建軌跡、評估輸出和清理。網關還承載該會話模型調用的代理端點,將完成捕獲與會話註冊關聯。
在每個網關內,隔離的工作池處理INIT、RUNNING和POSTRUN階段。一個有界READY緩衝區保存已初始化的運行時,直到有空閒運行槽。CPU密集的運行時準備和評估器預熱在關鍵路徑之外進行,不阻塞GPU上的智能體執行。如果工具鏈在模型調用被捕獲後超時,網關仍會進入POSTRUN狀態,以便恢復部分軌跡。
內置評估器包括會話完成獎勵、可配置的基於輸出的評估器,以及SWE-Bench/SWE-Gym工具鏈評估器。自定義評估器可通過註冊接口添加。
Polar目前支持Docker和rootless Apptainer運行時。內置工具鏈快捷方式包括codex、claude_code、gemini_cli、qwen_code、opencode和pi。
軌跡重建:逐請求 vs. 前綴合並
會話完成後,Polar從捕獲的模型調用重建可訓練的軌跡。
提供兩種策略:
逐請求構建器將每個模型調用視為獨立軌跡。它對單個調用無損,但會碎片化多輪會話。單個編碼問題可能產生數百個逐請求軌跡,增加了下游訓練器的負擔。
前綴合並構建器重建更長的軌跡,前提是工具鏈會話保留了只追加的對話歷史。它通過驗證相鄰完成之間的嚴格令牌前綴關係,將完成劃分為有序鏈。子智能體、上下文壓縮邊界和並行智能體分支自然形成獨立鏈。在每個合併軌跡中,只有採樣的助手令牌被標記為可訓練。規範的中間間令牌接收零損失掩碼。
消融結果
研究團隊在相同模型、硬件和拓撲上對兩種策略進行了三個訓練步驟的基準測試。
| 指標 | 逐請求 | 前綴合並 | |------|--------|----------| | 訓練器更新次數 | 1,185 | 218 | | 牆上時鐘時間 | 189.5 min | 35.2 min | | 加速比 | — | 5.39× | | 平均回滾GPU利用率 | 20.4% | 87.7% |
SWE-Bench Verified結果
訓練使用標準GRPO,基模型為Qwen3.5-4B。數據集為SkyRL-v0-293-data SWE-Gym(293個任務,1輪,回滾批量大小4,每個提示16個樣本),使用Slime訓練器。所有實驗採用前綴合並策略構建軌跡。
訓練回滾獎勵進展(pass@1)
| 工具鏈 | 前10步 | 後10步 | |--------|--------|--------| | Codex | 9.5% | 54.5% | | Claude Code | 28.8% | 67.0% | | Qwen Code | 61.6% | 66.0% | | Pi | 61.6% | 76.2% |
SWE-Bench Verified最終分數
| 工具鏈 | 基線 | Polar RL | 增益 | |--------|------|----------|------| | Codex | 3.8% | 26.4% | +22.6 pts | | Claude Code | 29.8% | 34.6% | +4.8 pts | | Qwen Code | 34.6% | 35.2% | +0.6 pts | | Pi | 34.2% | 40.4% | +6.2 pts |
最大增益出現在Codex上。Codex向原本未在該工具鏈上訓練的Qwen模型呈現了不熟悉的動作協議和補丁提交風格。Polar將獎勵信號附加到通過Codex執行路徑的實際採樣令牌上,因此GRPO優化了模型在評估時使用的行為。在原生Qwen Code工具鏈上,基模型已經良好對齊,Polar仍帶來了0.6個百分點的提升。
離線SFT數據生成
Polar還可作為分佈式離線數據生成服務,無需更改運行時。研究團隊使用Qwen3.5-122B-A10B在8×H100服務器上(TP=8,max_model_len=32,768),以pi工具鏈針對來自7個SWE-Gym倉庫的1,638個實例進行了演示。
只有當SWE-Bench評估工具鏈確認智能體的補丁解決了所有FAIL_TO_PASS測試並保持所有PASS_TO_PASS測試為綠色時,軌跡才被接受進入SFT語料庫。
| 倉庫 | 嘗試次數 | 接受次數 | 接受率 | |------|----------|----------|--------| | getmoto/moto | 343 | 184 | 53.6% | | python/mypy | 257 | 101 | 39.3% | | conan-io/conan | 71 | 27 | 38.0% | | pydantic/pydantic | 81 | 24 | 29.6% | | iterative/dvc | 219 | 45 | 20.5% | | pandas-dev/pandas | 477 | 98 | 19.7% | | dask/dask | 141 | 25 | 17.7% | | 總計 | 1,638 | 504 | 30.8% |
運行成本約64 GPU小時。接受的軌跡平均每會話104條消息,51個助手輪次。
框架比較
| 系統 | 異步RL | 異步回滾分階段 | 回滾即服務 | 工具鏈無關 | |------|--------|--------------|------------|----------| | Polar | ✓ | ✓ | ✓ | ✓ | | ProRL Agent | ✓ | ✓ | ✓ | ✗ | | SkyRL-Agent | ✓ | ✓ | ✗ | 部分 | | PRIME-RL | ✓ | ✗ | ✗ | ✗ | | Agent Lightning | 部分 | ✗ | 部分 | 部分 | | rLLM | 部分 | ✗ | ✗ | ✗ | | OpenClaw-RL | ✓ | ✗ | ✗ | 部分 |
Polar是此比較中唯一在所有四個屬性上均提供一流支持的系統。
優勢與侷限
優勢:
- 無需修改工具鏈代碼——代理在模型API邊界攔截
- 提供商無關:原生支持Anthropic、OpenAI Chat、OpenAI Responses和Google API格式
- 前綴合並將訓練器更新次數從1,185減少到218,牆上時鐘時間加速5.39倍
- 同一運行時同時適用於在線RL和離線SFT數據生成
- 工具鏈原生RL為不熟悉的執行路徑帶來巨大增益(Codex上22.6分)
- 當工具鏈中途超時時,可恢復部分軌跡
- 以NeMo Gym形式開源
侷限:
- 獎勵設計、評估器質量和分佈偏移仍由研究人員負責
- 要求工具鏈支持可配置的模型基礎URL
- 令牌級捕獲依賴於服務堆棧提供可靠的令牌ID和log概率
- 實驗中逐請求策略因會話級噪聲信用分配導致獎勵作弊;會話歸一化和PRM風格信用分配在路線圖上
關鍵要點
- Polar通過模型API代理訓練LLM智能體——無需修改工具鏈代碼
- 支持Anthropic Messages、OpenAI Chat Completions、OpenAI Responses和Google generateContent API
- 使用GRPO在Qwen3.5-4B上訓練,在四個編碼工具鏈上將SWE-Bench Verified提升最多22.6分
- 前綴合並軌跡重建比逐請求快5.39倍
- 在~64 GPU小時內從1,638次嘗試生成504個接受的SFT軌跡(30.8%);以Apache-2.0開源
- 重寫ProRL Agent;註冊為NeMo Gym環境
參閲論文和GitHub倉庫。