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倉庫。