研究提案 待审核

保留漏斗审计:Oracle 门控的 SQL 智能体轨迹语料丢掉了哪 12.41 个百分点

HarnessSQL 用「通过指称验证与协议检查即保留」产出 2,512 条 SQL 智能体轨迹,但教师 pass@1 71.20% 与 pass@3 83.61% 之间 12.41 个百分点的归属、77.83% 失败率中 81.0% 的注释守卫伪影、协议门的两种定义、oracle 只约束假阳性、难度带保留率五项全部不进账。OVRF 用五轴账本加四统计量审计被拒侧,再做重准入干预。

智能体训练数据 Text-to-SQL 轨迹筛选 数据工程 执行验证 强化学习 语料审计 可复现性

私有内容

此页面为私有内容,请输入密码查看

锚点论文是 HarnessSQL(arXiv:2610.12274,香港科技大学、微软研究院、清华大学、澳门大学,v1 于 2026-10-08,cs.CL)。它把「训练—部署错配」落成了一条可执行管线:79 个数据库(Spider 2.0-Lite 的 30 个 SQLite 库 + Spider 2.0-DBT 的 49 个库移植到 SQLite)封进只读沙箱,教师(Qwen3.6-27B)在四工具 DSH-SQL 契约内 rollout,只保留通过指称等价验证与协议检查的轨迹,得到 2,512 条 SFT 语料,再做 DAPO 执行奖励 RL。Qwen3-8B 在 Spider 2.0-SQLite 上从 15.5% 升到 45.2%,14B 从 22.2% 升到 54.8%。代码已开源。

这条管线的说服力集中在「保留什么」。本提案要问的是它的反面:被丢掉的那一部分,丢得有没有道理。

背景与动机

HarnessSQL 的保留门写得很短。§3.3 的原话是「轨迹通过指称验证与协议检查后保留」,产出 2,512 条。附录 K 的表 16 补了一句「每任务三次教师 rollout」,并给出教师的 pass@1=71.20%\mathrm{pass}@1 = 71.20\%、pass@3=83.61%\mathrm{pass}@3 = 83.61\%。三个数字之间缺一条账:每任务滚三次、教师单轮通过率 71.20%、三轮内通过率 83.61%,最终留下 2,512 条——这 2,512 条到底是「首次尝试就通过的那批」,还是「每任务挑一条通过的那批」?

两种读法都与数字逐位吻合。2,512/0.7120=3,528.12{,}512 / 0.7120 = 3{,}528.1,2,512/0.8361=3,004.72{,}512 / 0.8361 = 3{,}004.7,都可取整到合理任务数。全篇没有一句话区分它们。差别不小:若取前者,pass@3−pass@1=12.41\mathrm{pass}@3 - \mathrm{pass}@1 = 12.41 个百分点对应的那一整批任务——占教师可解任务的 12.41/83.61=14.8%12.41/83.61 = 14.8\%——一条轨迹都没进语料,而这批任务恰恰是教师自己也需要重试才做对的那些。§1 把教学目标写成「教会模型何时查 schema、如何解释执行失败、如何从错误的中间假设恢复」,被排除的却正是恢复发生的地方。

第二处口径在失败的定义上。表 11 报告 77.83% 的轨迹含至少一次失败执行,77.71% 出现失败后修订,作者用这两个数论证语料捕捉到了恢复行为。附录 D 紧接着自陈:34,936 次执行里的 3,989 次失败中,3,230 次来自以 SQL 注释开头的查询被只读守卫拒绝(首 token 不是 SELECT / WITH / EXPLAIN)。3,230 / 3,989 = 81.0%。真正属于 SQL 推理错误的只剩 759 次,摊到 2,512 条上是每条 0.302 次;即使假设每条轨迹至多摊到一次,含真实 SQL 错误的轨迹占比上界也只有 30.2%,不是 77.83%。

这条区分不是抠字眼,它直接绑着论文自己的一个因果结论。附录 D 的消融把「仅由前导注释引起的失败轮」剪掉后,执行准确率从 30.4% 掉到 28.2%,作者据此判定保留良性执行失败提供了有价值的恢复监督。这个差值在 n = 135 的评测集上只有 0.40 个二项标准误(30.4% 与 28.2% 的标准误分别约 3.96 与 3.87 个百分点,未配对差值标准误约 5.54 个百分点),论文既没有 seed 也没有逐题 McNemar 对撞。更麻烦的是它的可解释性:若把只读守卫改成先剥离前导注释再判别首 token,这 2.2 个百分点所依赖的那批监督信号会整体消失——一个 harness 的解析选择,被读成了学习信号。

第三处是协议门自身的定义漂移。§2.1 定义 RprotocolR_{\mathrm{protocol}} 检验四项:只读、动作 schema 合规、不含重复冗余查询、在步长预算内终止。附录 J 的实测清单第 6 条是另一套:工具参数合法、只读、预算内、提交前执行过完整 SQL。两边是双向对不上的——§2.1 的「无重复冗余查询」不在实现清单里,实现清单的「提交前执行过完整 SQL」不在 §2.1 里。表 8 给了一个旁证:若保留门真的剔除了重复冗余查询,SFT checkpoint 在评测中的 duplicate-call rate 不该还有 16.29%(基座 58.82%、SFT+RL 6.61%)。

第四处在 oracle 的方向性上。§3.1 采用 SQL-first 下种:生成器先采样一条可执行 SQL,再从真值关系一并导出自然语言指令与执行 oracle。问题与 oracle 同源,凡指令欠定之处(并列排序、舍入时机、NULL 处理、日期字段选取),oracle 只认生成器那一种读法。附录 J 第 5 条的变异测试要求「定向变异不应保持验证结果」,约束的是假阳性——一条错误查询碰巧产出相同结果而被放过。它不约束假阴性:一条在另一种合法读法下指称等价的提交被判失败。附录 I.2 的示例反而暴露了管线对此的自救方式——那条 core 任务的指令把「以机型名作为并列排序的决胜键」「只对展示的营收与比率字段保留两位小数」写死进提示词。指令写得越细,oracle 越接近单射,通过率越高;而 Spider 2.0、BIRD-Interact、LiveSQLBench 的指令不受这层约束。

第五处是难度轴与保留率的脱钩。附录 I.1 把 DstrD_{\mathrm{str}} 做成显式下种旋钮,四个带(foundation / core / growth / stretch)各带分数区间与最少结构族数,πb\pi_b 控制课程配比。进入语料的难度分布却是 πb\pi_b 与各带保留率之积,后者从未刊出:表 16 只按来源库切成 1,797(71.5%)与 715(28.5%)。stretch 带被教师通过率筛掉多少,没人知道。

核心思路

提出 OVRF(Oracle-Verified Retention Funnel):把「保留门」从一条二元判据升级为一份可审计的五轴账本,并在账本之上做重准入实验。

账本对每一条被丢弃的 rollout ι\iota 记录五元组 K∗(ι)=(b,a,p,c,v)K^\ast(\iota) = (b, a, p, c, v):bb 是结构难度带与 Dstr(z)D_{\mathrm{str}}(z);a∈{1,2,3}a \in \{1,2,3\} 是尝试序号;pp 是失败来源,取值于 {注释守卫拒绝、真实 SQL 错误、协议不合规、超预算、无失败};cc 是触发剔除的条款标识;vv 是 oracle 判定与结果指纹。HarnessSQL 的可复现性声明里已经写明「记录每条 rollout 的执行 SQL、归一化结果指纹、拒绝原因」,账本只是把这条声明要求的字段落成表。

四个统计量从账本上直接读出,不需要重跑任何模型:

  • 尝试轴上,ρatt=#{a>1}/#{保留}\rho_{\mathrm{att}} = \#\{a>1\} / \#\{\text{保留}\}。等于 0 即确认语料是纯 pass@1\mathrm{pass}@1,14.8% 的教师可解任务整体缺席。
  • ϕ\phi 落在失败语义轴,定义为 #{真实 SQL 错误}/#{全部失败执行}\#\{\text{真实 SQL 错误}\} / \#\{\text{全部失败执行}\},与表 11 的 77.83% 正面对撞。
  • 协议轴产出的是 δproto(d)\delta_{\mathrm{proto}}(d):在 d∈{原字符串, 规范化后, 结果指纹}d \in \{\text{原字符串},\ \text{规范化后},\ \text{结果指纹}\} 三种「重复」定义下分别按 §2.1 重判语料的剔除率,报区间而不报单点。
  • ν\nu 是假阴性轴的估计,ν=Pr⁡[oracle 判失败∧存在合法读法使提交与 oracle 指称等价]\nu = \Pr[\text{oracle 判失败} \wedge \text{存在合法读法使提交与 oracle 指称等价}],抽样框现成——就是 pass@3−pass@1\mathrm{pass}@3-\mathrm{pass}@1 那批被丢弃的首次尝试。

与现有工作的区别在审计对象上。已有的轨迹选择工作(2610.13152)给已保留轨迹打结构分再筛一遍,本方案审计的是被拒绝的一侧,因为拒绝决定已经不可逆地塑形了语料;欠定问题的工作(2610.02739)在评测侧消解指令欠定,本方案把它当成语料保留的系统性偏差来测。

技术路线

第一步,挂账本并回填零训练统计量。 复用已开源代码,在 rollout 侧写 K∗K^\ast,对 2,512 条保留轨迹与全部被拒 rollout 各落一条记录。产出 ρatt\rho_{\mathrm{att}}、ϕ\phi、δproto\delta_{\mathrm{proto}} 三张表,按 bb 分层。这一步不训练,成本是重跑一次数据采集(论文口径:79 库、每任务 3 rollout、8×H800)。

外部裁判标定 ν\nu 放在第二步。从被 oracle 判失败的首次尝试中抽 200 条,与 200 条判成功的配对,双盲交给两名独立裁判(一名人类、一名与教师不同族的 LLM),判定「在指令允许的读法集合内,两者是否指称等价」。门禁设为精确率 ≥0.80\ge 0.80、召回 ≥0.75\ge 0.75,不达标就把 ν\nu 降级为区间估计并在主结局里只报告上下界。

第三步,五臂干预。 用表 7 已验证的便宜设定(Qwen3-8B、固定 1,000 条子集)做臂筛选:A0 原管线(严格退化点)、A1 重准入(把 a>1a>1 通过的轨迹按等 token 预算补入,不是等条数)、A2 真失败匹配(按 ϕ\phi 匹配的子集,与 A1 等条数)、A3 守卫修正(只读守卫先剥离前导注释再判别首 token,重采语料)、A4 难度配额(按 band 等配额重采样,切断 πb\pi_b 与保留率的隐式耦合)。重准入写成单点可调参数 λ\lambda:λ=0\lambda = 0 时 A1 严格退化为 A0。

全量复现排在第四步。通过筛选的臂在 2,512 条全量语料上跑 3 seed(对齐附录 C:3 epochs、471 updates、lr 10−510^{-5}、有效 batch 16、32,768 上下文),14B 只跑 A0 与最优臂各 1 seed。

第五步,口径升级。 主结局一律报 n = 135 的二项标准误;SFT 与对照之间用逐题 McNemar 对撞而不是两个百分数相减;表 8 的六个行为指标(尤其 immediate recovery 与 duplicate-call rate)与准确率并列报告。禁止再用 2.2 个百分点这类不足 1 个标准误的差值支撑因果结论。

两处技术挑战需要提前处理。其一是等 token 预算下的重准入会让 epoch 数变化,控制办法是固定 optimizer update 数(471)而不是固定 epoch。其二是「合法读法集合」本身没有真值,ν\nu 的估计必须依赖裁判一致性,第二步的门禁指标(Cohen’s κ≥0.6\kappa \ge 0.6)先于 ν\nu 本身报告。

预期成果

定量目标分两类。审计类:ρatt\rho_{\mathrm{att}}、ϕ\phi、δproto\delta_{\mathrm{proto}}、ν\nu 四个数首次刊出,其中 ϕ\phi 的执行级点估计是 759/3,989=0.190759 / 3{,}989 = 0.190,对应的轨迹级「含真实 SQL 错误」占比上界为 30.2%;若表 11 的 77.83% 在剥掉注释伪影后仍然成立,本方案对失败语义的判断即被证伪。干预类:在 LiveSQLBench Base-Lite SQLite 上,重准入臂相对 24.8% 的提升若 ≥3\ge 3 个百分点且达 2 个标准误,即证明被丢弃的 12.41 个百分点承载了可迁移的监督;若提升集中在 Spider 2.0-SQLite 而 OOD 不变,说明 in-domain 收益里有一部分是同库熟悉度(论文已声明训练与评测共用 30 个库,附录 E 的任务级审计证明了无任务泄漏,但不覆盖库级熟悉度)。

定性目标是把「只保留验证通过的轨迹」这句实现描述变成一份可复现的规范:任何 oracle 门控语料都应答出四个轴的取值。对数据工程实践的直接影响是,保留门的每一条规则都要配一个对应的统计量,护栏类伪影(本次的注释守卫)不得被计入失败语义。

相关工作

  1. HarnessSQL: Harness-Native Training for SQL Agents in Realistic Database Environments(arXiv:2610.12274)——本提案的审计对象,贡献了沙箱、四工具契约与 2,512 条语料,保留漏斗的五个轴都取自它的附录。
  2. arXiv:2411.07763 — Spider 2.0: Evaluating Language Models on Real-World Enterprise Text-to-SQL Workflows,提供主评测所用的 135 条 SQLite 任务与 328 份接受真值 CSV。
  3. BIRD-INTERACT: Re-imagining Text-to-SQL Evaluation for Large Language Models via Lens of Dynamic Interactions(arXiv:2510.05318)——多轮用户模拟协议,用来判定 ν\nu 造成的是 in-domain 损失还是跨协议损失。
  4. arXiv:2610.02739 — Beyond Correctness: Resolving Underspecification in Agentic Text-to-SQL,把指令欠定当作待消解对象处理,本方案反过来把它当作 oracle 假阴性的来源来测。
  5. Quality, Not Just Outcome: A Structural Scoring Framework for Selecting Coding-Agent Trajectories for Supervised Fine-Tuning(arXiv:2610.13152)——给已保留轨迹打结构分,OVRF 补的是它不覆盖的被拒侧。