rendered paste body## ✅ 本周完成 (Done)- 围绕 no-testcase code pipeline 的 test case generation 做了质量复盘和问题归因。 - 当前数据不能简单按 stdio pipeline 全量处理,passed 数量不能直接代表可用训练数据规模。 - 主要风险集中在 empty output、polluted/demo output、no-stdin/interface mismatch 三类问题。- test case 质量检查和 case study。 - 已对 passed / failed 数据做抽样检查,确认旧版 stdio passed 中存在大量 empty output。 - 已用保守规则重新检查 passed output,确认 empty output 修复后基本消失,但 no-stdin 和 input-invariant output 仍然是主要污染来源。- 对 empty output 污染做了验证逻辑修正。 - verified output 必须非空,且不能明显是 traceback、error、demo label 或示例输出。 - 对需要 wrapper 的 stdio cases,统一用同一个 wrapped solution 重新生成 expected,避免同一 record 内 native output 和 wrapped output 混用。 - 修复后,抽样中 empty output 基本降为 0。- 明确了后续两条并行处理路线。 - 路线 A:从 test case generator 端筛选并重新生成合适格式和接口,在生成阶段区分 stdio / function / class / file / service 等任务类型。 - 路线 B:对已经生成的 test case output 做保守筛选,优先产出 high-confidence clean set,其余数据进入 rejected / salvage candidates。## 🚧 进行中 (In Progress)- 路线 A:test case generator 端的接口修正方案 (重新运行 test case generation) - 目标是在生成 test cases 前先判断任务是否适合 stdio reward pipeline - 直接在 writing test case generator 阶段把 solution 传进去,对着它的格式和接口来生成 input case,避免对 function/class 类型题由于缺少 original test case 被判为 stdio 格式 - 提前剔除 refactor、debug、translation、logging、file/db/API/service 等 open-ended task- 路线 B:生成 output 的保守筛选方案 (基于现在已经生成好的test case做筛选) - rule-based 检查 empty output、no input consumption、input-invariant output、有效 generated cases 数量不足等问题。 - rejected 数据后续考虑二次处理## 📋 下周计划 (Next Week)- 验证两种新方案产出的数据质量- 对两种方案中被丢弃的数据做质量检查,据此设计二次处理方案或者直接弃去- 汇总质量指标 - 固定跟踪 empty output rate、no_input_consumption rate、input_invariant_output rate、clean retention、wrapper success/failure distribution。- 继续和 @lixinye @machaozeng @liangqingyuan 讨论数据接口混杂带来的长尾问题## 🚫 Blockers / 需要支持- 正在持续关注 sandbox 稳定性,目前 sandbox 中负载下可以稳定运行,如果再出现崩溃问题则需要 infra 介入- model serving 的负载偶尔还会出现时间上的不均衡,正在调查## 💡 工作日志 (working logs)- 复盘了 largeverify passed 中 empty output 的来源。 - 旧版抽样中,passed / stdio 的 empty output 比例为 91 / 147 = 61.90%。 - failed / stdio 抽样中,171 / 171 cases 的 expected 为空,符合 interface mismatch 模式。- 复盘了修复后的质量结果。 - empty output 已基本降为 0。 - 但保守筛选下 clean rate 仍约为 9%-10%,主要原因是 no-stdin 和 input-invariant output。- 典型 case study: - function-only 题:solution 只定义函数,不读 stdin,也不 print,按 stdio 执行会得到 empty output。 - demo output 题:例如 class / shopping cart 题,无论 generated input 如何变化,输出都来自代码中硬编码的示例。 - invariant input/output 题:例如 prime check、move zeroes 等,generated inputs 未覆盖关键分支,导致输出过于单一。- 已将后续方案拆成两条线并行推进。 - 生成端修正:从 test case generator 阶段识别任务接口并生成更合适的测试格式。 - 产物端筛选:对现有 output 做保守 gate,先抽取可用 clean set。## 📊 Production deliverables / 数据快照### 已核查产物| 数据 | 数量 || --- | ---: || generated output / largeverify passed | 4,396,401 || failed UIDs | 2,424,695 |### Empty output 抽样结果| bucket | sampled records | sampled cases | empty output | all-empty records || --- | ---: | ---: | ---: | ---: || passed / stdio | 12 | 147 | 91 / 147 = 61.90% | 5 / 12 || failed / stdio | 12 | 171 | 171 / 171 = 100.00% | 12 / 12 || passed / non-stdio param | 12 | 186 | 0 / 186 = 0.00% | 0 / 12 |### 保守筛选后的主要污染类型| 数据范围 | no_input_consumption | input_invariant_output | too_few_cases_after_gate || --- | ---: | ---: | ---: || 360k snapshot | 323,287 / 360,000 = 89.80% | 108,898 / 360,000 = 30.25% | 326,609 / 360,000 = 90.72% || round2 shard | 17,873 / 20,000 = 89.36% | 6,072 / 20,000 = 30.36% | 18,039 / 20,000 = 90.19% |### 当前判断- empty output 是已经基本修复的直接 bug。- polluted/demo output 和 no-stdin/interface mismatch 是仍需系统性处理的核心问题。- 短期内应优先使用保守 clean set 继续后续实验;中期需要在 test case generator 端做任务接口分流和格式修正。