On Data Engineering for Scaling LLM Terminal Capabilities¶
会议: NeurIPS 2026
arXiv: 2602.21193
代码: https://huggingface.co/collections/nvidia/nemotron-terminal
领域: LLM 其他
关键词: 终端智能体, 数据工程, 合成任务生成, 轨迹采集, 监督微调
一句话总结¶
针对终端交互智能体训练数据稀缺且闭源的问题,本文提出 Terminal-Task-Gen 数据合成框架与高质量终端数据集 Terminal-Corpus,并在 Qwen3 基础上微调得到 Nemotron-Terminal 系列模型,在 Terminal-Bench 2.0 上仅凭 32B 参数便超越了 480B 级前沿模型。
研究背景与动机¶
随着大语言模型逐步深入实际软件工程场景,在命令行界面(CLI)中与真实环境交互已成为智能体落地的关键能力。从早期的单步代码补全走向端到端任务执行,智能体需要熟练掌握环境依赖配置、编译构建、系统排错、动态调试等全流程操作。尽管业界涌现出 Claude Code、Codex CLI 等工具,且在 Terminal-Bench 等评测基准上展现出令人瞩目的推理与执行表现,但支撑这些前沿终端智能体的核心训练数据方案一直处于闭源未公开状态。
当前终端智能体数据构建面临两项严峻瓶颈:一是基础资源极其匮乏,包含多样化任务目标、真实前置依赖文件与预置环境的样本极难批量获取;二是交互轨迹采集的工程复杂度极高。直接捕获人类真实终端操作成本高昂且数据稀疏,而采用多智能体协作生成合成轨迹时,若对每个任务都重新实例化独立 Docker 容器并多轮协同调试,计算开销与环境失败率会随数据规模急剧上升。这种高昂试错成本迫使多数开源探索只能局限于简单适配器包装,却难以系统掌握长程环境交互规律。
面对这些挑战,本文提出了一套结合现有基准适配与靶向技能合成的粗细两级数据工程方案。本文的核心 idea 是:将通用推理能力与终端操作技能解耦,通过轻量级无大模型介入的数据集适配快速提供广度覆盖,结合基于种子与基元技能分类体系的目标驱动合成补齐关键能力缺口,并利用预置领域 Docker 镜像与单阶段数据混合打破环境构建与多轮轨迹生成的扩展瓶颈。
方法详解¶
整体框架¶
Terminal-Task-Gen 框架采用分阶段、粗细协同的构建流程,包含现有基准适配(Dataset Adaptation)、合成任务生成(Synthetic Task Generation)、轨迹采集与执行模拟(Trajectory Generation)以及后处理清洗(Post-Processing)四个阶段。系统首先将现有的高质量数学、代码与软件工程数据集自动映射为终端指令与环境上下文,形成坚实的基础能力底座;随后通过基于种子(Seed-based)与基于基元技能(Skill-based)两条路径,生成覆盖 9 大垂直领域的强约束、可执行评测任务。最后,利用强教师模型(DeepSeek-V3.2)在预构建容器中与 tmux 终端环境交互捕获真实轨迹,经过去污染与质量过滤后产出高质量微调语料。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["多源原始数据<br/>公开数据源 / 种子问题 / 技能分类库"] --> B["数据集适配<br/>轻量映射构建基础环境与提示词"]
A --> C["合成任务生成<br/>种子扩展与多技能组合任务生成"]
B --> D["预置领域 Docker 环境<br/>固定9大基础镜像免去动态构建开销"]
C --> D
D --> E["轨迹采集与执行交互<br/>教师模型在 tmux 终端环境生成长程解题路径"]
E --> F["数据过滤与清洗<br/>n-gram 去污染与完整保留错误状态轨迹"]
F --> G["Nemotron-Terminal 模型训练<br/>单阶段混合监督微调 (Qwen3 8B / 14B / 32B)"]
关键设计¶
1. 数据集适配:零模型介入的基准环境转化 现有多轮智能体数据合成往往过度依赖大模型解析,在海量基础数据处理上极耗算力。针对这一痛点,本文采用规则化适配方案,无需大模型介入即可将现有的数学推理(OpenMathReasoning)、代码推理(OpenCodeReasoning)及真实软件工程修复数据(SWE-bench 系列)无缝包装为 Terminal-Bench 标准格式。在软件工程任务中,适配器自动在沙盒环境对应路径写入待修复的有缺陷代码文件,并为不同领域追加特定的终端指令后缀(例如指导模型如何通过命令行编辑文件并执行测试脚本验证),以极低计算成本构建了超过 22 万条覆盖基础编码与推理的初始交互样本。
2. 合成任务生成:种子扩展与基元技能的组合合成 纯适配数据受限于源任务形态,缺乏真实终端长程运维、依赖解决与跨系统协同等高难度特征。为此,本文设计了种子生成(Seed-based)与基元技能生成(Skill-based)双轨合成机制。种子生成利用复杂科学计算或算法问题作为灵感,提示 LLM 补充具体的文件读写路径、边界测试用例与基于 pytest 的自动评分逻辑。基元技能生成则在数据处理、数据查询、数据科学、调试、依赖管理、文件操作、科学计算、安全分析及系统管理等 9 个领域中梳理出多维基元技能池,每次随机抽取 3 到 5 项技能进行跨维度深度组合,合成出目标明确、环境约束严格且不泄露参考答案的全新长流程终端任务。
3. 预置领域 Docker 环境:解耦环境验证与任务生成的工程优化 以往方法在合成任务时,常让 LLM 同步生成配套的 Dockerfile,导致频繁出现基础镜像拉取失败、环境配置冲突、验证反复中断等灾难性开销。本文打破这一繁杂依赖,转而维护 9 个固定的预置领域 Docker 镜像,提前预装各领域高频依赖(如科学计算与数据科学所需的 pandas、scikit-learn,安全分析所需的加解密工具链等)。任务只需在此基础上声明特定依赖或由智能体运行时通过终端动态安装。这不仅彻底消除了任务级 Dockerfile 的反复调试与构建开销,将数千个散乱容器收敛为 9 个共享基础镜像,还使任务生成逻辑与底层环境完全解耦,实现了单遍直出(single-pass)的高并发任务扩展。
4. 轨迹保留与数据清洗:保留失败与恢复模式的反直觉过滤准则 在轨迹采集与后处理阶段,常规经验通常倾向于只筛选出最终成功通过单元测试(Success-only)或完整交互(Complete-only)的完美样本。但实验发现,严格过滤不仅会导致超过一半的宝贵长程数据被丢弃,更剥夺了智能体学习错误定位与状态恢复的机会。本文采用 14-gram 与评测基准严格去污染,剔除包含中文与身份泄漏的异常样本,但保留了交互过程中的未完成与非成功轨迹。这些轨迹中包含语法拼错、命令报错后查看日志并重新调整策略的真实回环,极大地增强了微调后模型在实际面对报错时的容错推理与自愈能力。
损失函数 / 训练策略¶
模型训练采用标准自回归因果语言建模损失函数,在完整的终端交互序列上仅对智能体输出的 JSON 格式动作(含分析、计划与击键指令)计算梯度,屏蔽终端环境回显输出(terminal_state)部分的损失:
其中 \(x_{\le t}\) 表示截止到第 \(t\) 步的环境反馈与终端历史,\(y_t\) 为智能体生成的动作 Token。在训练超参数上,微调采用 AdamW 优化器(\(\beta_1=0.9, \beta_2=0.95\)),最大学习率设为 \(2\times 10^{-5}\),采用 10% 预热的余弦学习率衰减调度器与 1.0 的梯度裁剪阈值,微批次大小为每 GPU 1,全局批次大小为 128,训练周期为 2 轮。针对序列长度,全量微调采用 32,768 上下文窗口,并基于开源 veRL 分布式训练框架实现序列并行与 CPU 内存卸载,避免采用多阶段预热,直接实施单阶段全数据混合训练。
实验关键数据¶
主实验¶
在 Terminal-Bench 2.0 评测基准下,使用官方标准无状态评测智能体 Terminus 2 进行全面评估。Nemotron-Terminal 显著超越了作为底座的 Qwen3 原始模型,并展现出超越自身参数量量级的强大终端解决能力。
| 模型 | 参数量 | 开源状态 | TB 2.0 准确率 (%) | 相比底座提升 |
|---|---|---|---|---|
| Qwen3-8B (底座) | 8B | 开源 | \(2.47 \pm 0.5\) | - |
| Nemotron-Terminal-8B | 8B | 开源 | \(\mathbf{13.0 \pm 2.2}\) | +10.53% |
| Qwen3-14B (底座) | 14B | 开源 | \(4.04 \pm 1.3\) | - |
| Nemotron-Terminal-14B | 14B | 开源 | \(\mathbf{20.2 \pm 2.7}\) | +16.16% |
| Qwen3-32B (底座) | 32B | 开源 | \(3.37 \pm 1.6\) | - |
| Nemotron-Terminal-32B | 32B | 开源 | \(\mathbf{27.4 \pm 2.4}\) | +24.03% |
| GPT-OSS (high) | 20B | 开源 | \(3.10 \pm 1.5\) | - |
| GPT-OSS (high) | 120B | 开源 | \(18.7 \pm 2.7\) | - |
| Qwen3-Coder | 480B | 开源 | \(23.9 \pm 2.8\) | - |
| Gemini 2.5 Flash | - | 闭源 | \(16.9 \pm 2.4\) | - |
| Grok 4 | - | 闭源 | \(23.1 \pm 2.9\) | - |
| GPT-5-Mini | - | 闭源 | \(24.0 \pm 2.5\) | - |
| DeepSeek-V3.2 (教师模型) | 685B | 开源权重 | \(38.2 \pm 2.9\) | - |
消融实验¶
研究团队围绕数据来源构成、轨迹过滤策略及上下文长度等维度在 Qwen3-8B 上展开了系统消融。
| 数据配置 / 策略 | 样本量 | TB 2.0 准确率 (%) | 说明 |
|---|---|---|---|
| 全量混合 (Nemotron-Terminal-8B) | 490,520 | \(\mathbf{13.0 \pm 2.2}\) | 适配器数据 + 合成数据单阶段混合 |
| 仅数据集适配 (Adapters - All) | 226,313 | \(9.66 \pm 2.11\) | 融合 Math、Code 与 SWE 适配数据 |
| 仅适配 - Math | 162,692 | \(5.39 \pm 1.65\) | 仅含数学推理转化任务 |
| 仅适配 - Code | 31,960 | \(6.29 \pm 1.65\) | 仅含编程竞赛与算法转化任务 |
| 仅适配 - SWE | 31,661 | \(7.02 \pm 2.13\) | 仅含真实 GitHub Issue 修复任务 |
| 仅合成任务 (Synthetic - All) | 264,207 | \(12.4 \pm 2.29\) | 融合种子生成与技能生成任务 |
| 仅合成 - Seed-based | 124,366 | \(6.18 \pm 1.91\) | 基于种子任务提示生成 |
| 仅合成 - Skill-based | 139,841 | \(12.4 \pm 2.38\) | 9大领域基元技能组合生成 |
| 合成数据过滤消融 | |||
| 无过滤 (No filter) | 264,207 | \(\mathbf{12.4 \pm 2.29}\) | 保留非成功与不完整轨迹 |
| 仅完整轨迹 (Complete-only) | 104,603 | \(6.74 \pm 2.20\) | 剔除执行超限或中途截断轨迹 |
| 仅成功轨迹 (Success-only) | 83,448 | \(5.06 \pm 2.11\) | 仅保留最终完全通过单元测试轨迹 |
| 训练策略消融 | |||
| 两阶段课程学习 (Curriculum) | - | \(10.39 \pm 1.71\) | 先适配器预热、后合成数据微调 |
关键发现¶
- 负样本与错误轨迹具有极高信息量:在合成数据过滤消融中,若仅保留成功轨迹(Success-only),模型得分仅有 5.06%;而放弃任何完成度与正确性过滤(No filter)保留全量交互轨迹后,得分飞跃至 12.4%。这表明终端交互中模型遇到的报错排查、反复试错是习得鲁棒操作策略的关键先验,严苛过滤反而会抹杀宝贵的纠错信号。
- 基元技能组合是能力跃迁的核心引擎:Skill-based 合成数据仅凭 13.9 万条样本便取得了 12.4% 的性能,远高于同等规模适配器或种子数据,且在数据查询、数据科学与系统排错等基座模型得分为 0 的空白领域实现了决定性突破。
- 长上下文盲目扩增收益有限:盲目引入 YaRN2 将训练窗口拓展到 65,536 并未提升性能(降至 10.3% - 11.9%),主要原因是绝大多数高质量操作轨迹都在 32k 限制内,处于长尾超长区间的往往是陷入死循环的无意义冗余操作。
亮点与洞察¶
- 预置多领域 Docker 镜像机制解耦了环境与任务:以往方法因动态合成 Dockerfile 导致高达数十个百分点的环境拉取和构建失败,本文采用 9 种固化领域镜像方案,以极低维护成本保障了海量轨迹采集的工程确定性。
- 数据工程能有效跨越参数鸿沟:通过高质量多领域合成轨迹对齐,32B 参数的 Nemotron-Terminal-32B 达到了 27.4% 的准确率,完胜 480B 规模的 Qwen3-Coder(23.9%)与 120B 级的开源模型,证明特定交互形态下数据质量远比纯参数规模关键。
- 无大模型介入的适配器数据具有高复用价值:把高质量纯文本数学与代码问题直接包装为终端格式无需 LLM 重写,作为冷启动底座与高精合成数据单阶段混合即可取得最佳泛化效果。
局限与展望¶
- 缺乏强化学习与环境反馈回传:当前工作主要聚焦于监督微调(SFT)阶段的数据探索,尚未进一步利用沙盒执行结果的单元测试通过率开展基于强化学习(RL)的试错策略搜索与自适应策略迭代。
- 极端复杂任务中对不可知工具的适应力仍待加强:在依赖深度图形化交互或非常规专有闭源工具链的未知场景下,现有静态技能组合的合成仍显单薄。
- 长程死循环检测需更精细的分级截断:虽然实验证明保留失败轨迹有益,但对于由于网络超时或僵尸进程导致的无效超长轨迹,仍需建立精细化语义截断机制,避免稀释有效学习信号。
相关工作与启发¶
- vs Terminal-Bench 原生适配工具:原生适配器仅作为轻量转换工具且主要面向基准评测,本文系统研究了其作为训练语料的可行性与清洗策略,并揭示了单纯适配数据在终端深层技能覆盖上的天花板。
- vs 多智能体合成方案 (Austin et al., Peng et al.):多智能体协作生成任务常面临耗时冗长、协调链路复杂与 Dockerfile 动态构建频频崩溃的瓶颈;本文精简掉不必要的协作环节,采用单轮结构化提示与预置镜像体系,实现了轻量、高产且稳定的工业级流水线。
评分¶
- 新颖性: ⭐⭐⭐⭐☆ 首次系统公开终端交互场景下的大规模数据合成范式与反直觉过滤准则
- 实验充分度: ⭐⭐⭐⭐⭐ 涵盖 8B/14B/32B 全规格模型,设计了完备的数据源、过滤规则与长上下文消融
- 写作质量: ⭐⭐⭐⭐⭐ 逻辑结构严谨,工程细节与核心发现阐述详实透彻
- 价值: ⭐⭐⭐⭐⭐ 开源高质量终端模型与超大规模合成数据集,极具社区推进意义