解锁 GPT-OSS 的 Agentic RL 训练:实用回顾
看起来您只提供了来源链接,但没有贴出需要翻译的正文内容。请把要翻译的文本粘贴过来,我会按照要求保留链接和格式进行简体中文翻译。
贡献者
Source: …
Agentic 强化学习 (RL)
Agentic RL 通过 优化整个决策过程 而不是单轮响应来扩展传统的 LLM 训练。代理与环境(模拟或真实)交互,规划动作,调用工具,观察结果,并在多步轨迹中调整行为。
相较于经典方法的关键区别
- 在策略数据收集 – 代理在训练期间自行收集经验。
- 跨长时域的信用分配 – 中间选择(例如查询改写、工具选择、执行顺序)会直接影响后续成功。
- 迭代闭环训练 – rollout → 奖励计算 → 策略更新 → 新的 rollout(例如使用 GRPO 或 PPO)。
为什么它对 LinkedIn 很重要
LinkedIn 是一家 AI‑first 公司,构建代理帮助专业人士取得成功。在这种背景下,模型必须:
- 在信息不完整的情况下进行推理。
- 与结构化服务交互。
- 在多个步骤中适应不断变化的用户意图。
这些能力对招聘人员、求职者、知识寻求者和学习者至关重要,他们需要检索信息、细化查询、协调工具并执行多步骤工作流。Agentic RL 为通过端到端优化构建 可扩展、可靠且可适应 的 AI 系统提供了原则性的基础。
GPT‑OSS 与 Agentic RL
GPT‑OSS 模型的性能已显示与 OpenAI o3‑mini 和 o4‑mini 相当 [OpenAI announcement],但其在 agentic RL 中的适用性尚未得到验证。近期工作主要聚焦于 不使用工具调用 的微调,例如:
本文探讨了为 GPT‑OSS 解锁 agentic RL 训练的过程,旨在将其作为 agentic 应用的潜在骨干模型。
实验设置
- 框架: verl – 一个被广泛采用的开源 RL 训练库。
- 基准:
- GSM8K
- Retool 任务(使用代码编译器工具的 agentic 编码)
- 可验证指令遵循任务(arXiv 2507.02833)
- 评估模型:
- GPT‑OSS‑20B(主要关注)— 也在 GPT‑OSS‑120B 上测试了 attention‑sink 修复。
- Qwen‑2.5‑32B – 用作 RL 训练期间标准指标趋势的基准。
GPT‑OSS 强化学习训练的挑战
verl 是团队为实现代理式 RL 训练民主化而贡献的 OSS 框架。随着 GPT‑OSS 中全新的 Harmony 聊天模板,首要任务是确保训练框架完整支持 Harmony 所需的更新消息格式和对话语义。这保证了 rollout 生成、轨迹构建以及工具解析的一致性。
ReTool 作为 sanity‑check
ReTool 是一个代理式编码任务,模型在代码编译器工具的帮助下求解数学问题。工作流:
- 模型接收问题描述。
- 它生成代码并将其发送给编译器工具。
- 工具返回执行结果。
- 模型根据反馈迭代优化其解答。
- 最终交互结束后,模型输出答案,并据此计算奖励。
早期训练运行显示 KL 散度和熵爆炸 以及 奖励不递增,表明 GPT‑OSS 训练流水线存在问题(见图 1)。
图 1
| 左侧:奖励比较 | 右侧:梯度范数 |
|---|---|
![]() | ![]() |
说明: 左侧:Qwen‑2.5‑32B 的奖励显著高于 GPT‑OSS‑20B。右侧:训练过程中的梯度范数行为(观察到 GPT‑OSS 的梯度值出现爆炸)。
在 verl 中的实用调试之旅:恢复 PPO On‑Policy 完整性
恢复 PPO On‑Policy 完整性:解决 MoE 对数概率不匹配的问题

图 2. 即使在 on‑policy 训练中也出现了非零重要性抽样裁剪值。
我们关注 on‑policy 方法,因为它们提供更高的稳定性和更可靠的收敛。纯 on‑policy 的近端策略优化(PPO)要求重要性抽样比率恰好为 1:
[ \text{ratio} = \frac{\pi(a \mid s)}{\pi_{\text{old}}(a \mid s)} ]
在我们的 ReTool 训练中观察到了非零裁剪值(图 2),其根源在于两个对数概率之间的不匹配:
| 对数概率 | 定义 |
|---|---|
log_prob | (\log\bigl(\pi(a\mid s)\bigr)) |
old_log_prob | (\log\bigl(\pi_{\text{old}}(a\mid s)\bigr)) |
根本原因:双前向传播 & MoE 架构
在 verl 0.3.0 之前,实现依赖于两次独立的前向传播(一次用于当前 log_prob,一次用于存储的 old_log_prob)。在 Mixture‑of‑Experts (MoE) 模型(如 GPT‑OSS)中,细微的浮点差异或随机路由会导致两次前向传播选择的专家不同,从而违反了 on‑policy 的假设。
解决方案:通过对数概率替换强制 ratio = 1
if on_policy:
# 强制将 old_log_prob 设为新计算的 log_prob(分离梯度)
old_log_prob = log_prob.detach()
else:
old_log_prob = model_inputs["old_log_probs"]
将 old_log_prob 设为新计算的 log_prob(分离梯度)后,重要性比率被强制回到 1,绕过了 MoE 非确定性路由导致的不稳定。
修正训练‑推理不匹配
即使修复了对数概率不匹配,梯度范数仍然爆炸,奖励也没有提升。一个简化的 GSM8K 单步任务仍然表现出不稳定,暗示存在 训练‑推理不匹配:推理引擎(如 vLLM、SGLang)侧重吞吐量,而在 FSDP 下的训练则强调数值精度。这种不匹配会把本应是 on‑policy 的 RL 过程转变为 off‑policy 优化。
随附的博客文章详细说明了此类不匹配为何会导致梯度不稳定和奖励不提升。应用 rollout correction(参见verl 文档)可以稳定梯度,尽管奖励提升仍然有限。
图 3 – 不同配置下的梯度范数行为
![]() | ![]() | ![]() |
|---|---|---|
| 绿色 – 未使用 rollout correction(不稳定) | 红色 – 冻结注意力层(部分稳定) | 蓝色 – 启用 rollout correction(稳定) |
图 4 – 奖励与对数困惑度动态
左图:即使在使用 rollout correction 后,GSM8K 上的奖励提升仍然缓慢。
Right: 推理与训练之间的对数困惑度显著不匹配仍然存在。
FlashAttention V3 中的注意力汇聚支持
在 GPT‑OSS 中,注意力汇聚(attention sinks)是可学习的标量参数(每个注意力头一个),在 softmax 计算中充当 虚拟 token,提升流式推理和滑动窗口注意力的稳定性。
已识别的问题
fsdp_worker中硬编码了 FlashAttention v2(不支持汇聚)。- FlashAttention v2/v3 中不支持汇聚的反向传播。
- 前向传播尚未合并到官方 FlashAttention v3 仓库;我们使用了 vLLM 的分支(PR #75)并实现了反向传播。
标准注意力
scores = Q @ Kᵀ / sqrt(d) # [B, H, N_q, N_k]
probs = softmax(scores, dim=-1) # Σ_j P_ij = 1
output = probs @ V # [B, H, N_q, d_v]
带汇聚的注意力(GPT‑OSS)
scores = Q @ Kᵀ / sqrt(d) # [B, H, N_q, N_k]
combined = concat([scores, sink_param], dim=-1) # [B, H, N_q, N_k+1]
probs = softmax(combined, dim=-1) # Σ_j P_ij + P_sink = 1
probs_content = probs[..., :-1] # 去掉汇聚分量
output = probs_content @ V # [B, H, N_q, d_v]
汇聚参与 softmax 归一化,但 不 对输出产生贡献。
数学公式
[ P_{ij}= \frac{\exp(S_{ij})}{\sum_{j’=1}^{N_k}\exp(S_{ij’}) + \exp(S_h)} ]
[ P_{i,h}= \frac{\exp(S_h)}{\sum_{j’=1}^{N_k}\exp(S_{ij’}) + \exp(S_h)} ]
反向传播
[ \frac{\partial L}{\partial S_h}=- \sum_i P_{i,h}, \Bigg(\sum_{j=1}^{N_k} P_{ij},\frac{\partial L}{\partial S_{ij}}\Bigg) ]
前向传播改自 vLLM 的 FlashAttention 分支;反向传播现在能够正确计算汇聚参数的梯度。
实验结果
在 FlashAttention v3 中加入该修复后,GPT‑OSS‑20B 在多个 RL 任务上收敛速度显著提升:
- GSM8K 单轮 RL – 快速收敛(图 5)。
- 指令遵循(VerifyIf) – 奖励稳步提升(图 6)。
- 多轮工具使用的 Agentic RL(ReTool) – 训练稳定且奖励提升(图 7)。
图 5 – 单轮 GSM8K 收敛

图 6 – 可验证的指令遵循
| 指标 | 图示 |
|---|---|
| 平均熵 | ![]() |
| 平均梯度范数 | ![]() |
| 平均奖励 | ![]() |
图 7 – 多轮 Agentic RL(ReTool)
左侧:未修复的 FlashAttention 2(fa2)出现发散。右侧:FlashAttention 3 经过修复后表现正常。












