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