训练环境越多未必越好:先确认评分有没有奖励正确行为
RIVER 从 14,399 个 TMax 环境筛出约 3.5K,再给重复命令与输出扣分。River-8B 四项终端评测平均 19.4±1.2。
作者解释:SFT 补单步技能,RL 改多步执行顺序。
分清任务作者、数据审计、被训练模型和验收程序
任务包
生成任务说明、Docker 环境、配套数据和该题验收程序。
筛选器
GPT-5.4 静态审计三类材料,再用 Terminus-2 试做两次。
被训练对象
在容器里执行命令;能读权限允许的所有文件。
任务最终分
任务执行后运行,全部检查通过才给 1。
错误的验收器会让错误策略成为 RL 的“成功样本”
作者假设:SFT 补基础技能,RL 改跨步骤的执行行为
单步技能
- 写 grep 与终端管道命令
- 调用编译器与包管理器
- 理解领域知识
- 判断单次动作是否正确
多步行为
- 先检查再修改
- 错误后换方案
- 结束前验证
- 避免重复相同命令和输出
RIVER 不另造任务,而是检查上游环境能否正确验收模型行为
| 路线 | 扩展对象 | 怎样验收 | RIVER 增加了什么 |
|---|---|---|---|
| Endless-Terminals | 大规模可执行环境 | 各环境的结果验收程序 | 检查验收分数是否可信。 |
| TMax | 14,399 道题覆盖多领域与技能 | 随任务发布的验收程序 | 从这批题中筛到约 3.5K。 |
| 加强测试 | 代码任务的测试覆盖范围 | 更强的单元测试 | 同时检查任务说明、容器和验收是否一致。 |
| 推理步骤组合与泛化 | 单轮基本推理步骤 | 最终答案得分 | 扩展到包含终端命令、反馈与错误恢复的多轮执行。 |
两级过滤解决“该不该训练”,重复行为惩罚解决“怎样给中间步骤反馈”
CLEAN 表示审计模型未发现问题;其他七类指出主要缺陷
未发现列出的缺陷
说明清楚,环境可用,验收确实检查任务要求的结果。
假答案也能过
只验格式、计数、关键词或固定输入。
三件套不一致
任务说明与验收冲突,或说明与环境冲突。
答案可见
任务说明或容器文件直接暴露预期答案。
缺规格
任务有多种合理解释,验收只接受其中一种。
没有学习信号
写常量、echo 或复制文件就能完成。
运行级缺陷
验收有错误、缺 GPU 或服务、环境矛盾或运行不稳定。
缺陷可能重叠
审计仍只能选一个主类别,因此不同评分模型可能选不同缺陷。
模型对“有缺陷”的判断较一致;对 CLEAN 的判断较不一致
三个公开环境集合的 CLEAN 占比
| 环境集合 | GPT-5.4 判 CLEAN |
|---|---|
| TMax-15K | 35.8% |
| TermiGen | 10.1% |
| TerminalTraj-5K | 3.3% |
Claude Opus 4.8 盲复判
| GPT-5.4 判定 | Claude 同意 |
|---|---|
| CLEAN | 6 / 15 = 40% |
| 有缺陷 | 94 / 105 |
| 合计 | 100 / 120 = 83.3% |
120 题按 GPT 判定类别分层抽样,每类 15 题。83.3% 不能当作全部环境的总体一致率。查看完整图
训练模型只收任务验收结果;审计与试做只在准备数据时运行
OCR 只做到 0.368,复制可读的参考答案文件后变成 1.0
功能测试全通过,却因 Rust API 名称不同整题得 0
is_ascii_alphabetic() 符合要求;词频与协方差两个测试都通过。is_alphabetic。合法 API 的名称不同,整题却被判失败。命令与输出都高度重复,才扣这次模型回复 token 的训练优势
si,t = −δ if both Jaccard > 0.8
δ = 0.05 · cap = 0.15 / rollout
# 解释性重建,不是官方训练代码 repeated = any( jaccard(cmd, old.cmd) > 0.8 and jaccard(obs, old.obs) > 0.8 for old in prior_turns ) if repeated: token_advantage += -0.05
训练最多 16 轮交互,评测最多 64 次动作;两个预算不能混用
| 阶段 | 数据与更新 | 交互和长度上限 | 资源 |
|---|---|---|---|
| SFT | 78K 执行记录;全参数更新,只算 assistant token 损失 | 1 epoch;最长 16,384 tokens;学习率 1e-5 | 8 张 GPU |
| RL | 每批 32 题 × 每题 8 条执行记录;400 step | 16 轮;每轮生成 2,048 tokens;输入 16,384 | 8 张 H200;约 60 小时;temperature 0.6 |
| 最终评测 | 589 题;3 个随机种子;任务原生验收 | 64 次动作或 600 秒;完整输入窗口 40,960 | 各模型使用原生执行程序;预算统一仍非单变量对照 |
SFT · 学基础操作
- 数据
- 78K 条执行记录;全参数更新,只算 assistant token 损失
- 上限
- 1 epoch;最长 16,384 tokens;学习率 1e-5
- 资源
- 8 张 GPU
RL · 在线执行任务
- 数据
- 每批 32 题,每题 8 条执行记录;共 400 step
- 上限
- 16 轮交互;每轮生成 2,048 tokens;输入 16,384 tokens
- 资源
- 8 张 H200,约 60 小时;temperature 0.6
最终评测 · 独立预算
- 数据
- 589 题,3 个随机种子;任务原生验收
- 上限
- 64 次动作或 600 秒;完整输入窗口 40,960 tokens
- 对照
- 各模型使用原生执行程序;预算统一仍非单变量对照
River-8B 四项都领先,平均 19.4±1.2;最强对照模型为 17.8±0.7
控制环境数量后,过滤组平均高 1.7 个百分点,但没有每项都提高
| 训练环境 | OT-TBLite | TB-v2.1 | TB-Pro | TW-Verified | 四项平均 |
|---|---|---|---|---|---|
| RIVER 筛选 3.5K | 21.8 ±2.9 | 9.7 ±0.6 | 23.0 ±3.1 | 23.0 ±2.5 | 19.4 ±1.2 |
| TMax 随机 3.5K | 18.6 ±1.9 | 8.2 ±1.3 | 23.7 ±1.5 | 20.3 ±0.6 | 17.7 ±0.7 |
| 评测 | 筛选 3.5K | 随机 3.5K |
|---|---|---|
| OT-TBLite | 21.8 ±2.9 | 18.6 ±1.9 |
| TB-v2.1 | 9.7 ±0.6 | 8.2 ±1.3 |
| TB-Pro | 23.0 ±3.1 | 23.7 ±1.5 |
| TW-Verified | 23.0 ±2.5 | 20.3 ±0.6 |
| 四项平均 | 19.4 ±1.2 | 17.7 ±0.7 |
能预测成功的行为,直接奖励后未必提高结果
标准 GRPO
任务验收只给整次执行一个 0/1 分,无法区分哪个中间步骤做得好。
重复减少,分数提高
重复比例减少,整体分数提高;最终训练方案保留这项惩罚。
行为增加,分数没涨
结束前验证更频繁,却没有额外成绩增益。相关特征不一定是 能直接提高成绩的奖励目标。
换模型家族、规模、执行程序和训练目标后,过滤集仍带来更大的训练增益
约 3.5K / 14,399 个环境。
相对完整 TMax 数据,训练前后增益的平均增幅。
相对完整 TMax 数据,训练前后增益的平均增幅。
只用 Debug + Systems 的约 800 个环境做 RL,整体仍从 32.3 升到 49.2
未训练 TMax 任务的整体 solve rate
| 训练条件 | 成功率 | 相对 SFT |
|---|---|---|
| SFT,未做 RL | 32.3% | 基线 |
| RL · 2 领域 | 49.2% | +16.9 pp |
| RL · 4 领域 | 53.6% | +21.3 pp |
| RL · 6 领域 | 55.2% | +22.9 pp |
| RL · 8 领域 | 53.9% | +21.5 pp |
2 领域组只用 Debug + Systems 的约 800 个环境。表中题目来自同一 TMax 来源,不代表独立部署分布。查看完整图
训练代码、独立标注和单变量控制仍有缺口
模型判定标签
全量由 GPT-5.4 判;Claude 只复判 120 个分层样本,在 GPT 判 CLEAN 的样本中,两者一致率只有 40%。
公开材料不全
项目仓库只有网页和图表输入,没有 3.5K 任务清单、训练代码、模型权重或执行日志。
8B 主表
River、OpenThinker、TMax 使用各自不同的原部署程序;统一预算不等于只比较数据。
相关证据
AUC、RSA、跨领域结果 与假设一致,未证明全部增益都由这 12 种行为导致。
验收器也是训练系统:先检查评分是否对题,再扩环境
一套可复用的实验框架
同时查错误方案被判对和正确方案被判错;分开静态审计、试做与训练得分;用真实记录解释失败,再直接奖励或处罚行为做对照。
完整执行程序下的隔离评测
在 Claude Code、Codex CLI 与开源执行器上使用同一批隔离测试任务;分开任务生成者、验收编写者与环境来源,并人工复核评分分歧。