研究提案 已修订

从成功分支到失败谱系:科学 Agent 训练环境的可检出性账本与反事实工作流干预

针对 Poseidon / PEARL 只在已跑通的工作流上切分四类任务、并以拒绝采样丢弃教师失败环境导致的监督分布偏斜,提出带可检出性审计、反事实干预谱系与短路泄漏检测的失败谱系环境合成框架。

科学 Agent 训练数据工程 环境合成 AI for Science 数据质量审计 反事实干预 拒绝采样

背景与动机

科学发现 Agent 的训练环境长期受制于产量。Poseidon 把这条路的产能推到了新的量级:从 7,110 个公开仓库中合成 97,659 个可执行且可验证的环境(PEARL),折合每个仓库 13.7 个环境,而前作 D3-Gym 只有 565 个环境 / 239 个仓库,折合 2.4 个。在 306 个仓库的匹配预算下,Poseidon 产出 5,370 个,D3-Gym 产出 575 个,比值 9.3。产量提升来自两点:把一条科学工作流拆成 Reproduction / Subflow / Completion / Correction 四类任务,以及一个「生成器—验证器」递归改进环,让首轮被拒环境中 49.4% 经修订后通过。

产能这一侧的问题解决了,监督分布的另一侧问题被产能放大了。下面四处裂缝都有论文自己给出的数字可以直接定位。

保留下来的轨迹只覆盖「教师已经会做」的工作流。 论文用 DeepSeek-V4-Pro 做拒绝采样,从 97,659 个环境中采到 64,477 条成功轨迹,成功率 66.0%。被丢掉的 33,182 个环境正是教师也做不出来的那批。Table 3 给出了按难度的可解率:D1 94.0%、D2 86.0%、D3 57.0%、D4 41.0%。可解率随难度单调下降,意味着被丢弃的 34% 高度集中在 D3、D4。训练信号的难度上界因此被教师能力封顶,而教师失败的那批环境恰好携带最多的新信息。论文对这 33,182 个环境没有任何后续处置,也没有报告它们按难度、按学科、按任务类型的分布。

四类任务共享同一条工作流,环境数不等于科学内容量。 同一个 seed program 切出来的 Reproduction、Subflow、Completion、Correction 共用同一份输入数据、同一段参考实现、同一个沙箱。它们是同一条工作流的四个视图,不是四个独立环境。Table 5 的 leave-one-out 显示去掉任一类型都在四个基准上掉分(去掉 Reproduction −5.5、去掉 Subflow −6.2、去掉 Completion −4.7、去掉 Correction −5.0,均为 Avg. 列,基准为 BioCoder / MedAgentBench / BixBench-MCQ / ScienceAgentBench),论文把这读成「Removing any single task type degrades performance on every benchmark, confirming that each contributes non-redundant supervision」。问题在于该消融的控制项,论文原话是「while controlling the total training-data size and source-repository distribution」——控制的是轨迹总量与仓库分布,没有控制 seed program 的数量。去掉一种类型之后,剩下三种是否从同样多的 workflow 里抽取,正文没有交代。若总数固定而视图数变少,被覆盖的 workflow 数必然变多,两个变量纠缠在一起。

逐格读还能看出一处论文没有讨论的异质:w/o Completion 在 BioCoder 上只掉 0.70.7,远低于它在 BixBench(MCQ)上的 7.37.3;w/o Correction 在 ScienceAgentBench 上只掉 1.01.0,而在 BixBench 上掉 7.37.3。「在每个基准上都掉分」是真的,「四类各自贡献非冗余监督」则取决于基准——同样四类视图,在不同基准上的可替代性差了一个数量级。这恰恰支持本提案要拆的那一层:四类视图带来的不是四种等权能力,而是与基准特性绑定、幅度悬殊的混合增益。

Appendix F 的多样性指标有同类隐患。PEARL 的 Vendi Score 92.03 ± 0.62 高于 D3-Gym 的 62.24 ± 0.27,centroid distance 0.4674 高于 0.4415。这两组数字是在混合了四种任务模板的指令嵌入上算的,D3-Gym 只有端到端一种模板。模板措辞差异本身就会抬高 Vendi,科学广度与模板差异在这两个数字里无法分开。

Correction 注入的是受控错误,不是科研中真正发生的错误。 论文对 Correction 的定义是「往程序里注入一个受控错误」,验证判据中的 repair consistency 只要求「the intended defect in a correction task to be present in the supplied code and the resulting behavior to match the failure described in the instruction」。这条判据检查的是注入是否成功,不是这类错误是否属于真实科研的失败分布。真实的分析错误长在别处:单位与量纲不统一、缺失值处理顺序颠倒、对照组缺失、多重比较未校正、训练集与测试集在数据清洗阶段泄漏、随机种子导致结果不可复现、依赖版本漂移改变数值。这些都是结构性的,不是一行代码里的局部缺陷。模型在受控注入的分布上学到的诊断能力,向这些结构性错误的迁移量未测。

要说公平,论文在这一块做过一件事:Appendix C 是一个独立人工审计,含抽样与分层、审计员与盲法、评分细则、执行检查、审计结果五节。所以不能笼统地说「验证器没有独立复核」。这条人工审计覆盖的是环境的可执行性与科学有效性——校验器判过的是不是真的能跑、任务是不是有意义。它没有覆盖、也未声称覆盖的一层是:注入的这类错误在真实科研里是否常见。repair consistency 这条判据自查的是注入的保真度,人工审计查的是环境能不能跑,两者之间的空白恰恰是「错误分布的代表性」。批评应当精确落在这里。

同一段的工程细节也值得坐实:验证器是 GPT-5.5,生成器是 DeepSeek-V4-Flash,二者的反馈循环「runs for up to three」轮;教师是 DeepSeek-V4-Pro;被训练的主干是 Qwen3.5-9B / 27B / 35B-A3B;PEARL 覆盖 10 个学科。这些型号在下文「单位成本」与「裁判与被测同源」两处要用到——GPT-5.5 既是验证器,又出现在 Table 2 的前沿模型对比里。

Repository 级去污染覆盖不到一半的评测基准。 论文的清理动作是移除「environments whose source repositories matched, or were near-duplicates of, repositories underlying the evaluation benchmarks」。BioCoder 明确来自真实生物信息学仓库,这条规则能覆盖。ScienceAgentBench 来自 44 篇论文,BixBench 是开放式生物信息学分析,MedAgentBench(表中记作 MA-Bench)跑在 FHIR 模拟器上——这三者没有对应的 GitHub 源仓库,仓库级去重对它们不起作用。

六个基准里还有两个此前未计:SciCode 的题干来自教科书式的分模块编程题,BioMysteryBench 是生物谜题型基准。两者同样不以 GitHub 仓库为底座,仓库级去重覆盖不到。逐项清点后,六个基准中只有 BioCoder 一类的仓库基准能被这条规则实质覆盖,其余五个的覆盖率为未知而非零——论文没有逐基准交代移除的环境数,所以「未知」不能读作「安全」。

这四处裂缝指向同一个缺口:Poseidon 合成的是已跑通、已发表、有星标、被教师解出的工作流的成功分支,学的是复现与局部修补。科学发现的核心动作——判断这条分析走不通、定位走不通的原因、给出可执行的证据——不在监督分布里。

核心思路

提出 FailScope:把环境合成的单位从「一条工作流的四个视图」换成「一次对工作流的结构化反事实干预 + 该干预的可检出性审计」。框架由三条账本和两条合成轴构成。

两条合成轴。

  • 纵轴是干预谱系,替换掉「LLM 注入受控错误」。四类干预各配一组注入算子:数据口径类(单位换算、量纲错位、缺失值处理顺序、归一化与切分的先后)、统计推断类(多重比较未校正、对照组缺失、清洗阶段的训练/测试泄漏、分布假设违背)、计算实现类(索引偏移、随机种子未固定、依赖版本漂移、浮点累积精度)、解释类(相关读成因果、推导下界读成实测比值、结论超出数据支持范围)。每类干预必须给出一个可执行的 probe,把干预前后的关键输出量分开。
  • 横轴是失败分支回收,替换掉「丢弃教师失败的环境」。教师失败的那 33,182 个环境不进垃圾桶,而是进「难例池」:按失败模式聚类,配上教师轨迹在何处分叉的标注,作为难度可控的监督来源与过程奖励模型的素材。

三条账本。

  • 可检出性账:定义 δi\delta_i 为第 ii 个干预前后关键输出量的相对变化,τi\tau_i 为该环境评估脚本的数值容差。δi<τi\delta_i < \tau_i 的干预判为不可检出,直接剔除或改标为「需外部知识」。必刊 πdet\pi_{det}(可检出干预占比)及其按干预类别的分层值。这条账本把「注入了错误」和「错误能被证据发现」分开。
  • 泄漏审计账:对 Reproduction 与 Completion 做数据反事实——把输入数据替换成同形状、同分布、语义无关的数据集,重跑参考解,看评估脚本是否仍判通过。仍判通过的记为骨架短路。必刊 πshortcut\pi_{shortcut} 并按任务类型分层。这条账本把「评估脚本通过」与「真的用了数据」分开。
  • 产量分解账:把环境数 NenvN_{env} 拆成 NwfN_{wf}(独立 seed program 数)与 VperV_{per}(每 workflow 平均视图数)。论文只报乘积 97,659,两个因子全未拆分,9.3× 的产量里来自 NwfN_{wf} 的部分与来自 VperV_{per} 的部分无法分辨。必刊两个因子,并补一个固定 NwfN_{wf}、扫 Vper∈{1,2,3,4}V_{per}\in\{1,2,3,4\} 的臂,读边际收益曲线。

与现有工作的关键区别。 Poseidon 把工作流的成功分支当作唯一的监督矿脉,用任务类型切分提高开采率;FailScope 把干预当作监督的单位,用可检出性决定一个干预有没有资格进训练集。前者问「这条工作流能切出几个任务」,后者问「这个反事实能不能被可执行证据发现」。区别落在三处可核对的输出上:πdet\pi_{det}、πshortcut\pi_{shortcut}、(Nwf,Vper)(N_{wf}, V_{per})。三者都是 Poseidon 未刊、而任何后续环境合成流水线都应当随数据集一并发布的量。

技术路线

第一步,复现基线与因子分解。 在 306 个仓库的匹配预算上重跑 Poseidon 的仓库发现与任务合成,把产出按 seed program 归组,得到 NwfN_{wf} 与 VperV_{per},并统计四类任务在同一 workflow 上的共现矩阵。这一步的产出是 9.3× 这个数字的分解式。固定 NwfN_{wf} 后扫 VperV_{per},在固定轨迹预算下训练 Qwen3.5-35B-A3B,读四个基准上的边际曲线。

第二步,干预算子库与 probe 生成。 按四类干预各实现 8–12 个注入算子,每个算子自带一个 probe(一段可执行代码,输入干预前后的两个版本,输出关键量的差值)。probe 必须是与参考解无关的独立实现,避免用参考解自己判定自己。对 Reproduction 类环境的原始 seed program 施加干预,记录 δi\delta_i 与评估脚本容差 τi\tau_i,落可检出性账。

第三步,数据反事实的短路检测。 为每个 Reproduction 与 Completion 环境构造语义无关的同分布替代数据(保持列名、形状、量纲、缺失率,打乱或替换取值来源),重跑参考解并记录评估脚本判定。落泄漏审计账。对 πshortcut\pi_{shortcut} 高的环境重写评估脚本,让它必须读取输入数据的某个函数才能给出通过判定。

第四步,难例池与失败分支监督。 对教师拒绝采样失败的 33,182 个环境,按教师轨迹的终止原因聚类(超时、异常、答案不通过、迭代耗尽),并标注分叉步。从中构造两类监督:一是「给定前缀,预测这条分析是否会失败」的过程判别任务,二是把教师的分叉步作为负样本、把修订后的正确续写作为正样本的偏好对。这一步补上成功分支之外的那 34%。

第五步,端到端验证。 在四类干预环境上训练,评测分两条线:干预诊断能力(给定带干预的分析,判断是否存在错误、属于哪一类、给出可执行证据)与下游六个基准的迁移。对照臂包括 Poseidon 原版 Correction、随机注入(论文的 F.2 风格)以及「只翻最自信标签」的对抗臂。

关键技术挑战。

探针的独立性是第一道关。probe 若复用参考解的代码路径,干预与 probe 会一起错,δ\delta 恒为 0 而 πdet\pi_{det} 虚高。解法是要求 probe 由独立模型族生成并与参考解做代码相似度筛查,相似度超过阈值的重新生成。

反事实数据的构造是第二道关。替换后的数据必须让参考解仍能跑完(否则评估脚本的失败来自崩溃而非语义),要保住列名、形状、量纲与缺失率。解法是分层替换:只换取值来源而保留结构,并对替换后崩溃的环境单独计数,不计入 πshortcut\pi_{shortcut}。

难度与成本的耦合是第三道关。论文 Figure 5 底行在「固定 30,000 条轨迹」下扫平均难度 2.4→3.2,结论是无一致趋势。可高难度环境的拒绝采样成功率更低,凑够 3 万条成功轨迹要消耗远多于低难度子集的环境数,所谓固定轨迹预算并不等于固定环境预算。必刊按难度的成功率 ρsucc(d)\rho_{succ}(d) 与各子集实际消耗的环境数,才能判断「难度无影响」是真结论还是两个相反效应抵消。

单位成本是第四道关。97,659 个环境背后是 7,110 个沙箱的构建、每仓库的 LLM 文件分组与脚本重写、每环境的 GPT-5.5 验证加最多三轮修订、以及 64,477 条最长 50 步 / 65,536 token 上下文的采样。这些成本论文一处未报。必刊沙箱构建 CPU-h/仓库、seed 提取 token/仓库、验证调用/环境(含重试)、采样 token/成功轨迹,以及第 k 个环境的边际成本是否随仓库变冷门而上升。

裁判与被测同源是第五道关。环境质量的验证器是 GPT-5.5,GPT-5.5 又是 Table 2 里被比较的前沿模型之一;教师是 DeepSeek-V4-Pro,同样在榜上。数据由 GPT-5.5 的判据筛出,训练出的模型与 GPT-5.5 同台比较,这条链路需要一个独立验证器臂来估计偏差:换成另一个模型族做 validator,重跑一遍,比较两版数据集的下游增益差。

预期成果

定量目标——均以 Poseidon / PEARL 为对照基线,同一训练配方,三个规模各跑三个种子:

  • 可检出性:πdet≥0.85\pi_{det} \ge 0.85,且四类干预各自的分层值不低于 0.75。对照下,复现的 Poseidon Correction 任务在同样审计下的 πdet\pi_{det} 预期显著更低——这正是本框架要暴露的缺口。
  • 短路率:πshortcut≤0.05\pi_{shortcut} \le 0.05。若复现基线高于此值,说明 Reproduction / Completion 的评估脚本存在数据无关通过通路。
  • 产量分解:给出 (Nwf,Vper)(N_{wf}, V_{per}),并测出 VperV_{per} 从 1 到 4 的边际增益。判定标准是第 4 个视图的边际增益低于第 1 个视图的三分之一,即视图复用收益快速饱和,9.3×9.3\times 中的大部分应来自 NwfN_{wf}。
  • 模板剥离后的多样性:按任务类型分层各算一遍 Vendi,得到 VsingleV_{single}。若 Vsingle/Vmix<0.7V_{single} / V_{mix} < 0.7,则 92.03 相对 62.24 的优势主要来自模板而非科学广度。
  • 难度—成本耦合:ρsucc(d)\rho_{succ}(d) 在 D1→D4 上的完整曲线,以及 Figure 5 五个难度子集各自实际消耗的环境数。判定标准是最高难度子集消耗的环境数不超过最低难度子集的 1.5 倍,否则「固定轨迹预算」的对照不成立。
  • 失败分支的增量:在匹配环境预算下,加入难例池监督后 BixBench(Open)与 ScienceAgentBench 的增益高于仅用成功分支。这两个基准是六个基准中最开放的两个,也最依赖「判断分析是否成立」的能力。
  • 干预诊断的可迁移性:在数据口径类与统计推断类干预上训练出的检测器,在未见过的新学科(例如从生物信息学迁到计算化学)上的检出率下滑不超过 10 个百分点。

定性产出—— 一份随环境集合发布的四联账本(可检出性 / 泄漏 / 产量分解 / 单位成本),一套四类干预的算子库与对应 probe,一个带失败分支标注的难例池,以及一份逐基准的去污染覆盖率清单。

影响—— 这三条账本不改变环境合成的产能,改变的是产能的计价方式。当前文献用环境数、用 embedding 多样性、用 leave-one-out 的降幅来为一类数据定价,三个量都能被模板复用与视图膨胀抬高。πdet\pi_{det} 与 πshortcut\pi_{shortcut} 是两个不能被这类手段抬高的量:前者要求干预能被可执行证据发现,后者要求评估脚本必须读到数据。任何后续的科学 Agent 环境集合都可以直接套用这两条判据做横向比较。

相关工作

  1. Poseidon / PEARL(arXiv:2610.32448)— 本提案的分析对象。从 7,110 个科学仓库合成 97,659 个可执行环境,四类任务切分加递归改进把单仓库产量提到 9.3 倍。提案针对其监督分布只覆盖成功分支、视图数与工作流数未拆分、去污染仅到仓库级这三处提出审计与补法。 https://arxiv.org/abs/2610.32448

  2. D3-Gym: Constructing Real-World Verifiable Environments for Data-Driven Discovery(arXiv:2604.27977)— 开创了从科学代码仓库自动合成可验证训练环境的路线,565 个环境 / 239 个仓库。其「整条工作流即一个端到端任务」的设定是本提案 Vper=1V_{per}=1 的天然对照臂。 https://arxiv.org/abs/2604.27977

  3. MedAgentGym(arXiv:2506.04405)— 面向生物医学数据科学的可扩展 Agent 训练环境,2,137 条轨迹。在 Table 4 的匹配数据预算下它是四个基准上退化、四个基准上提升的对照,尤其 BixBench(MCQ)掉 8.1 分。本提案的逐格置信区间要求正是从这类「提升与退化同表共存却无离散度」的对照引出。 https://arxiv.org/abs/2506.04405

  4. SWE-smith: Scaling Data for Software Engineering Agents(arXiv:2504.21798)— 用程序化变换在真实仓库上规模化合成 bug,是「注入错误」路线在软件工程侧的规模化代表。本提案的干预算子库与之共享「用可执行信号确认注入有效」的思路,区别在于 SWE-smith 的注入目标是让测试失败,而科研错误的判定需要语义层面的可检出性判据。 https://arxiv.org/abs/2504.21798

  5. R2E-Gym: Procedural Environments and Hybrid Verifiers for Scaling Open-Weights SWE Agents(arXiv:2504.07164)— 程序化环境生成加混合验证器,其「执行信号 + 模型判据」的双通道验证结构是本提案可检出性账的直接参考:把「环境是否可执行」与「干预是否可检出」分成两个独立通道。 https://arxiv.org/abs/2504.07164

事实核查记录(2026-10-28)

分析对象 arXiv:2610.32448(POSEIDON: Scaling Training Environments for Scientific Agents from Code Repositories)的 HTML 全文已逐项回源。已坐实:97,659 个环境 / 7,110 个公开仓库 / 10 个学科;D3-Gym 为 565 个环境 / 239 个仓库(约 2.4);306 仓库匹配预算下 5,370 对 575(9.3×9.3\times);首轮被拒环境中 49.4% 经修订后通过;DeepSeek-V4-Pro 教师从 97,659 个环境经拒绝采样得到 64,477 条成功轨迹(66.0%66.0\%,本文按两数相除复算,论文未直接给出该百分比;被弃 33,182 个同为差值推导);Table 3 可解率 D1 94.0 / D2 86.0 / D3 57.0 / D4 41.0;Table 5 四个 remove-one-type 变体在四个基准上的逐格降幅与 Avg.(−5.5 / −6.2 / −4.7 / −5.0);Abstract 中消融控制项的原文表述;Table 6 Vendi 92.03±0.6292.03\pm0.62 对 62.24±0.2762.24\pm0.27、centroid distance 0.4674±0.00170.4674\pm0.0017 对 0.4415±0.00090.4415\pm0.0009;repair consistency 判据原文;验证器 GPT-5.5、生成器 DeepSeek-V4-Flash、反馈循环最多三轮、主干 Qwen3.5-9B/27B/35B-A3B;六个评测基准为 BioCoder / SciCode / MedAgentBench(MA-Bench) / ScienceAgentBench(SA-Bench) / BixBench / BioMysteryBench。

已订正两处。其一,本文原对「验证器无独立复核」的批评范围过宽:论文 Appendix C 设有含盲法的独立人工审计,已收窄为「人工审计只覆盖环境可执行性与科学有效性,未覆盖注入错误的真实分布代表性」。其二,去污染一段原只列四个基准,已补齐 SciCode 与 BioMysteryBench,并把「未知覆盖率」与「零覆盖率」区分开。

保留待复现:NwfN_{wf} 与 VperV_{per} 两个因子论文完全未拆,无从核对;ρsucc(d)\rho_{succ}(d) 按难度的成功率论文未刊,只有 Table 3 的可解率;沙箱构建与采样成本论文未报。