通过一个可组合的合成数据管线(9 个正交轴控制难度与多样性)+ 简单的 DPPO 强化学习配方,以 9B 参数在 Terminal-Bench 2.0 上达到 27%,超越所有公开 RL 方案和 32B 以下的先前工作。
每个合成任务是从 9 个结构化轴的笛卡尔积中采样生成。前三个轴(Domain、Skill type、Primitive skills)借鉴 Nemotron-Terminal;其余六个轴由本文引入,专门针对多样性与难度控制。
| 轴 | 来源 | 基数 | 示例值 |
|---|---|---|---|
| Domain | Pi et al. | 9 | security, software_engineering, data_science, ... |
| Skill type | Pi et al. | 4–7/domain | Algorithmic, Systems, Web Security, ... |
| Primitive skills | Pi et al. | 20–40/domain | graph traversal, cryptographic hashing, ... |
| Persona | 本文 | 6–18/domain | "红队操作员", "生物信息学分析师", ... |
| Language | 本文 | 8 | Python, C, Bash, Rust, Go, multi-language |
| Task complexity | 本文 | 4 | short / moderate / complex / intricate (30-60 cmd) |
| Command complexity | 本文 | 3 | bash-only / bash+code / bash+code+services |
| Fixture | 本文 | 7 | text_only / image / audio / video / binary / ... |
| Verifier | 本文 | 5 | exact_text / metric_threshold / fuzz_equivalence / ... |
先前工作(TermiGen, TerminalTraj)需要昂贵的教师模型逐一验证生成质量。TMAX 直接跳过这一步——每个 domain 预构建 Docker 基础镜像,每个任务只需追加依赖即可执行。RL 的 soft filtering(过滤全零奖励样本)取代了显式验证;实践中每批过滤 <8 个样本,说明生成数据的有效率极高。
通过两个机制避免双峰分布:细粒度复杂度轴(均匀采样 4 个任务复杂度级别 × 3 个命令复杂度级别);渐进式验证器(metric_threshold 通过阈值提供连续难度旋钮,fuzz_equivalence 通过随机输入数量控制,multi_protocol 通过协议数控制)。
与 6 个先前数据集相比,TMAX-15K 在领域均衡性(balance = 0.998)和绝对难度(pass@8 = 53%,最低)上均领先。
使用 Divergence Proximal Policy Optimization (DPPO)——GRPO 的变体,基于 binary TV 散度近似遮蔽训练与推理 logprob 偏差过大的 token。相比原始 GRPO,DPPO 在长时序 agentic 场景下显著减少训练崩溃(见图 7)。
Qwen 3.5 的混合精度架构导致 vLLM (推理) 与 HuggingFace (训练) 之间的 logprob 差异频繁出现尖峰。将 LM head 保持 FP32 可将最大差异降低约 2–3×,从而避免数值不匹配触发的 KL 爆炸。
使用 group size = 32(即每个 prompt 32 次 rollout)。实验表明 group size 从 8 增至 32 可显著改善训练稳定性,减少训练中期的奖励崩溃频率(图 8)。
| 类别 | 超参数 | 值 |
|---|---|---|
| 算法 | RL objective | DPPO (binary TV, threshold 0.1) |
| 算法 | KL 系数 β | 0.0(无 KL penalty) |
| Rollout | Group size | 32 |
| Rollout | 每批 unique prompts | 8 |
| 序列 | Max total response | 65,536 tokens |
| 序列 | Max tool calls | 64 |
| 优化 | Learning rate | 1 × 10⁻⁶ (constant) |
| 优化 | 训练步数 | 500 |
| 模型 | LM head 精度 | FP32 |
| 基础设施 | 推理引擎 | vLLM (async) |
| 基础设施 | 沙箱 | Podman / Apptainer |
在中间轮次保留模型的思考内容(称为 "interleaved thinking"),这已被 MiniMax-M2 证明可以改善 agentic 场景下的性能,并被本文采用为默认配置。
在相同的 Qwen 3.5 9B 基础上,用不同数据集做 RL 训练,TMAX-15K 在 Terminal-Bench Lite 达 57.2%,比第二名(OpenThinker-Agent data, 53.0%)高 4.2 分。
| RL 数据集 | TB Lite (%) | TB 2.1 (%) |
|---|---|---|
| 无(Qwen 3.5 9B baseline) | 41.9 ± 2.7 | 16.1 ± 3.7 |
| TerminalTraj | 45.8 ± 2.7 | 18.0 ± 0.0 |
| SWE-Smith | 47.2 ± 2.2 | 21.0 ± 0.5 |
| TermiGen | 49.4 ± 1.5 | 25.1 ± 1.9 |
| CLI-Gym | 50.7 ± 5.9 | 25.1 ± 1.4 |
| Endless Terminals | 52.6 ± 1.4 | 25.5 ± 1.4 |
| OpenThinker-Agent | 53.0 ± 0.7 | 25.1 ± 3.7 |
| TMAX-15K(本文) | 57.2 ± 2.5 | 28.8 ± 1.4 |
无需修改配方,TMAX RL 训练在 2B / 4B / 9B / 27B 四个规模上均提升基础模型,9B 提升幅度最大(+15.3 pt TB Lite)。
| 模型 | TB Lite (%) | TB 2.0 (%) |
|---|---|---|
| Qwen 3.5 2B → TMAX-2B | 5.7 → 11.8 | 2.3 → 2.9 |
| Qwen 3.5 4B → TMAX-4B | 31.8 → 42.6 | 16.6 → 18.9 |
| Qwen 3.5 9B → TMAX-9B | 41.9 → 57.2 | 21.1 → 27.2 |
| Qwen 3.6 27B → TMAX-27B | 70.8 → 68.6 | 39.6 → 42.7 |
TMAX RL 训练不是"harness fitting":SWE-Bench Verified +9.5pt(44.0 → 53.5%),AIME 2024/25 +17.8pt(73.3 → 91.1%),说明模型学到了真实的 terminal 使用能力。
在 4 种 harness(本文、OpenHands、mini-SWE-agent、Terminus-2)上,TMAX-9B 均比 Qwen 3.5 9B 提升 ≥9 分,而最大收益仍来自本文 harness,表明训练在不同工具集和提示格式间泛化。