AI News HubLIVE
站内改写

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不在工具链内部集成,而是在该边界放置一个代理。

代理的工作机制

对于每个传入的模型请求,网关代理执行四步操作:

  1. 检测提供方API——通过请求路径和标头,区分Anthropic Messages、OpenAI Chat Completions、OpenAI Responses和Google generateContent等格式。
  2. 标准化请求——将角色、内容部分、工具定义和生成参数转换为本地推理服务器使用的OpenAI Chat Completions格式。
  3. 捕获令牌级数据——存储请求消息、响应消息、提示令牌ID、采样响应令牌ID、结束原因和log概率。
  4. 返回提供方格式——将响应转换回工具链期望的格式。

对于流式请求,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仓库。