docopt_docopt_pr6:相同测试入口下修正比较逻辑
可见 pytest 从 1 failed, 2 passed 变为 3 passed。恢复动作修正了 equality 比较,最终报告说明 __ne__、基于内容的比较与确定性 repr。B 保留 514 个监督 token,失败观察之前的动作在 B 中不计 loss。它能提供“根据断言修正具体实现”的短恢复示范。
归档独立验收支持最终 patch 被接纳;不能由此推广为复杂多文件或长循环恢复能力。
这批数据适合建立去重对照,但不能据此认定已补足纠错、停止或长期推理能力。合并会消除多池造成的隐式加权,保留大部分可执行修复知识;它几乎不增加新决策,还会保留教师的工具习惯与部分过程标签错配。
参考用户指定的 2026-10-28 三轮分析报告。下表直接取其内嵌数据。三轮均为固定 50 题;Run2 是续训权重,不是新的独立随机重复。基座前 31 题存在约 4% 时钟偏快,生成端还有续写状态影响,不能把差异全部归因于训练数据。
“长截断复读”“首次修改前失控”“查询历史”等来自轨迹启发式;它们不是官方失败原因。测试命令不等于有效验证,git 历史查询不等于获取答案,max_tokens 不等于累计输出预算耗尽。官方 resolved 始终是结果指标。
更值得解释的是:首轮后自然完成减少,修改前失控和无修改增加;续训没有反转这一趋势。数据筛选需要覆盖“从观察中作决定、改变错误策略、完成修改、验证、收尾”的完整过程。单纯增加测试命令、缩短文字、提前调用编辑,都不是充分目标。
此次主解释为:同一源实例先核对完整 token 序列一致,再对 A/C 的监督位置求并集,每个源轨迹只保留一次;B 仍作为局部恢复视图单独训练。这是合并情景核算,没有导出或替换任何训练文件。
全量候选表包含原 dev 数据,不能直接整体入训。总上下文 token 统计包含观察与重复前缀;监督 token 统计为 loss mask=1 的位置曝光次数;“唯一位置”指同一源序列中的位置,不是词表中不同 token 的数量。
这张表用冻结监督审计中的 train 各池合计投影。原始逐成员 split manifest 在当前可用位置缺失,故 937/924 是可核算的数量,不是已生成的 train 成员清单。正式导出时必须恢复原成员划分,不能因合并重新把旧 dev 放入训练。
| 维度 | 全量核查结果 | 能支持的结论与边界 |
|---|---|---|
| 格式token / mask / 台账 | 5/5 文件 SHA 与训练审计一致;1,735/1,735 通过长度、词表、mask、keep_msgs、spans 和台账计数校验;没有非 assistant 监督位置。 | 具备重新组合的工程基础。C1/C2 为 A 子集,B 与 C3 另行检查角色边界;检查的是发布 payload,不是重新运行工具。 |
| 结果修复轨迹 | A 的 936/936 有 evaluator success;935 自然 finish,1 条为 max_steps。全部记录为 evaluator_acceptance。 | 有归档的执行验收依据。F2P/P2P 通过数由总验收结果及声明节点数推导,不能冒充逐节点 JUnit 重放;本轮没有重跑 judge。 |
| 筛选既有错误 masking | A 中 294/936 条经过消息屏蔽,共 1,320 个 assistant 块不计 loss;最终保留 15,434 个 assistant 块。 | 当前数据已经做过错误步骤选择,不能把改进建议写成“从零加 error masking”。应修正漏检、错检和缺失的替代行为。 |
| 隔离来源与多样性 | 949 个实例来自 696 个仓库家族;A 本身为 936 个实例 / 691 仓。与受保护 SWE Verified 仓库名单的精确 family 交集为 0。 | 支持仓库名层面的隔离;不等于已完成 fork、语义近重复或所有 benchmark 污染审计。原 train/dev 划分仍须独立保留。 |
| 监督停止与报告 | A 中 904/936 条保留最终报告监督,31 条最终报告被屏蔽,1 条没有自然报告。C3 只保留 13 个报告。 | 不是完全没有“结束”样本。屏蔽不实收尾是合理的,但不会自动生成一个正确收尾替代目标;也不覆盖学生陷入循环后的停止决策。 |
| 任务测试判别力 | A 中 330/936 个任务只声明 1 个 F2P 节点;F2P 节点数中位数 2,P2P 通过数中位数 34。 | 节点数少不证明测试弱,节点数多也不证明覆盖充分。本轮未用错误补丁/正确替代实现挑战这些验证器,无法认定“通过即语义正确”。 |
| 行为当前学生状态 | B 只有 40 个源实例 / 40 个家族;它们来自成功教师轨迹内部。路径元数据统一指向 deepseek-flash 生成批次。 | 这些是局部恢复示范,不是当前 Qwen3.5-4B 在长截断、循环和压缩后状态上的真实纠偏分布。生成者标识来自归档路径,未另行重验调用签名。 |
936 个实例,P50=18,388,P90=45,980.5,最大 65,491;217 条达到 32K。训练输入有中长上下文,但没有 64K 以上完整样本。
15,089 bash / 392 read / 219 edit。bash 内也包含读写文件,不能把 native edit 少直接解释为没有代码修改;它确实使独立 edit 工具的示范较少。
思考长度与运行时复读需要分开。受监督思考正文重分词 P50=52、P90=669,最大 7,652;2,267 个块为空白思考占位符。按“至少 3,000 字符且压缩比小于 0.1”的静态候选规则,没有检出受监督的长复读。历史精确边界审计最大值为 7,653,差 1 来自正文抽取/重分词口径。这不证明训练后不会复读,而是削弱了“直接模仿训练集中 16K 复读文本”的解释。
查询历史的习惯会留下来。752/936 个 A 实例的正向监督中出现 git log/show/blame/rev-list/reflog,共 1,564 次;baseline 559/687、cap-3 193/249,两个来源都有。评测中查历史从基座 9/50 变成 46/50、45/50,与教师风格迁移的假设一致,但这仍不是因果证明。应筛无信息增益的查询,不能禁止所有历史查询。
原数据库记录 404/936 有 test 命令位于末次疑似编辑之后;本轮从序列化观察解析出 887/936 有 pass 摘要,669/936 的最后一个 pass 位于最后一个疑似写操作之后。两个口径不同,且 heredoc 被粗略算作写入、多个工具观察可能合并,均不能直接转成真实质量通过率。C2 的 422 条包含更细的既有规则检查,但仍应结合具体命令语义。报告没有将其余样本自动判为“没有验证”。
以下是有目的的语义复核,不是随机抽样,不能把发现比例外推为全量缺陷率。全量统计覆盖 949 个实例;人工深读集中于这些具体反例与正例。C3 的 13 个最终目标均核对了文本和台账。
可见 pytest 从 1 failed, 2 passed 变为 3 passed。恢复动作修正了 equality 比较,最终报告说明 __ne__、基于内容的比较与确定性 repr。B 保留 514 个监督 token,失败观察之前的动作在 B 中不计 loss。它能提供“根据断言修正具体实现”的短恢复示范。
归档独立验收支持最终 patch 被接纳;不能由此推广为复杂多文件或长循环恢复能力。
失败端:PUREMAGIC_DEEPSCAN=0 python -m pytest -q 观察:2 failed, 106 passed 受监督 msg 55:Those tests inherently deep scan dependent, not concern. Normal passes. 接着修改文档拼写;msg 57 将新文件加入 diff;msg 59 清理测试生成文件。 通过端:python -m pytest -q(不再设置 PUREMAGIC_DEEPSCAN=0) 观察:108 passed
这个局部窗口没有修复“关闭 deep scan 导致的失败”,而是切回另一运行配置。最终任务修复可以有效,生成文件清理也不等于篡改既有测试;问题在于把这段当作因果明确的“失败→修复→相同条件通过”。B 中这条的 763 个目标 token 还会被额外加权。
模型审核为 KEEP,并在 notes 中承认 deep-scan=0 的失败是预期的。这说明“动作内容可保留”与“适合作为恢复窗口”是两种判断,当前标签没有充分区分。
在 /tmp/broken_ruff2 写入故意损坏的 ruff.toml:broken = true 运行 pytest --ruff --ruff-format,按预期得到错误消息与 2 failed。 另一个观察:All checks passed! / 3 files already formatted。 最终目标:Implemented the fix ... Existing test suite: 7 passed Manual broken ruff.toml ... fail with the ruff error displayed.
数据台账把 2 failed 当作 HONEST_INCOMPLETE_REPORT 的证据;但这里是在测试“错误是否正确暴露”,失败输出是被期望的验证现象。关键词筛查还把 Existing lint behavior remains unchanged 中的 remains 当作限制说明。这条报告可以忠实于可见观察,却不是一个明确承认未完成的 C3 示范。
13 条 C3 最终目标全部以 Implemented 开头,多数再将剩余失败归因为旧测试或环境。这样的文本有时合理,有时需要反事实证据。当前检查不能认证这些归因全部正确,也不能将它们统称为“诚实放弃”训练集。
先得到 14 passed,随后用 Python heredoc 检查两种 ingestor 对不存在文件都抛出预期异常,观察输出为两个 OK。原规则把 python - << 视作修改,因此它进入 A/C1,却不满足 C2 的“最后修改后测试”规则。这个例子说明:选择更窄 C2 或删验证后尾部前,需要区分有效补充验证和无意义返工。
| 口径 | 原五池 | A/C 并集 + B | 解释 |
|---|---|---|---|
| B 文件独占曝光份额 | 1.14% | 1.91% | 只计算 B 那一行,容易高估改变 |
| B 所标注恢复位置的全部曝光 | 397,074 | 240,700 | 将 A、C 中同一位置的重复也算上 |
| 恢复区域 / 全部监督曝光 | 3.754% | 3.823% | 只增加约 0.069 个百分点 |
| 恢复覆盖的新实例 / 新位置 | 0 / 0 | 0 / 0 | B 的 40 条、120,350 个位置本来已在 A 中 |
去重还降低了“有 C1/C2 标签的源实例”被重复抽到的程度:C1 成员的视图份额从 50.4% 降到 34.5%,C2 从 62.4% 降到 45.7%。这是源实例成员份额,彼此可以重叠,不能相加成 100%。因此,去重并非只删除坏权重,也会撤销原来对早期修改和验证结束任务的偏重。
保留 A+C3 的唯一监督 6,176,116 个位置;B 覆盖其中 120,350 个。试算只改变重复曝光,不生成任何新实例或能力。每个梯度累积窗口采用自身监督 token 分母,因此表中总 token 份额不是精确梯度份额或预测分数。
总曝光 = 6,176,116 + w × 120,350
恢复区域曝光 = (1 + w) × 120,350
不建议先把 B 放大很多倍。40 条中最长 5 条占 B 监督 token 的 41.3%,整体容易被少数长窗口主导;而上述配置切换反例也会被一起放大。优先修正窗口标签、增加真实恢复场景,再讨论权重。
另一个容易误解的点是:B 的失败前缀 loss=0,仅对 B 这个视图成立。同一上下文在 A 中仍按 A 的 mask 监督;如果某个错误动作在 A 中未被屏蔽,添加 B 不会抵消它。需要在源实例层面统一执行明确的坏步骤屏蔽。
| 目标症候 | 数据能提供什么 | 合并后的预期影响 | 判断边界 |
|---|---|---|---|
| 无意重复、继续拟合教师风格 | 同源副本从 1,735 减至 989,唯一任务不变 | 较明确的机制降低局部任务/步骤的隐式权重;同 epoch 下减少训练曝光,可能减少能力偏移 | 不等于消除所有过拟合;同 step 数继续训会重复更多轮,收益可能缩小 |
| 首次修改前失控 | 仍有 324 个 C1 标签实例,已有有依据的早期修改 | 改善有限不会新增从 16K 思考失控状态切回行动的示范;C1 成员权重还会降低 | 不把“第 6 步前修改”设成普适硬门;基座成功组首次修改中位数为 10 步 |
| 长截断复读、动作循环 | 屏蔽了部分既有重复,保留中短思考 | 没有直接治疗证据可减少旧冗余;无法凭 teacher-forced 样本教会学生在自身失控状态恢复 | 静态无复读不保证自回归无复读;需将采样、续写机制作为独立对照因素 |
| 遇错不改变策略 | B 的 40 个教师内生恢复窗口,前缀/观察均保留 | 局部有效可偏重断言反馈后的实现修正;实际恢复区域份额只略升 | 覆盖窄,有窗口归因错误;不是当前学生失败前缀的新纠偏数据 |
| 反复验证、不自然结束 | 904 个 A 最终报告仍被监督,C2 标签仍保留 | 保留已有能力完整收尾知识不丢;简单并集不增加新的停止信号 | 31 个被屏蔽报告没有自动补上正确替代;需证明最后修改后的验证及部署协议相容 |
| 错误定位、部分 F2P、P2P 回归 | 936 个归档成功修复,691 个仓库家族 | 保留基本修复知识广仓库覆盖有价值,但新的接口/跨文件能力覆盖没有增加 | 测试充分性、错误补丁拒绝能力及长程复杂任务覆盖仍未验证 |
| 虚假完成、将失败归因环境 | C3 仅 13 个最终报告,不监督修复行动 | 可能带来负迁移若无正确证据,可能强化“已实现 + 失败无关”的收尾话术 | 不能把这种风险写成已发生的训练因果;应先逐条复核,而非直接放大 C3 |
| 工具错误与查询历史泛化 | 96.1% 受监督调用为 bash,80.3% A 实例查询历史 | 习惯大概率保留去重后仍会学习这些工具偏好;native edit 的独立样本很少 | bash 写入可以完全正确;应补足工具前置条件和恢复,不按工具名字惩罚 |
最合理的收益假设是“训练目标更均衡、少花预算重复已有内容”,而非“新合并数据已能修好三症候”。没有新训练和独立执行评测,不能预测会恢复到 20/50,也不能给出解决率增幅。
| 优先级 | 最小有效动作 | 完成证据 |
|---|---|---|
| P0 · 数据身份 | 恢复原始逐成员 split manifest;合并后保留 instance/family/pool 标签、原 hash、源消息位置。C3 独立登记。 | 成员划分与原 train/dev 一致;所有同源视图同 split;发布新版本而不覆盖旧数据。 |
| P0 · B/C3 语义 | 逐条复核 40 个 B 的失败原因、恢复动作和前后执行条件;复核 13 个 C3 的“未完成”语义与失败归因。 | B 不能以改配置/缩小验证替代修复;预期失败的负向测试不作为未完成证据;去掉错配或重新分类。 |
| P1 · 过程覆盖 | 从训练分区收集当前学生真实失败状态上的恢复;补最后编辑后的有效验证与正确收尾。 | 失败前缀真实、续写实际执行、独立验收;不以 benchmark 原题或近似答案制作纠偏。 |
| P1 · 多样性 | 在任务/行为层面采样,限制单一源轨迹曝光;保留容易任务与复杂任务,不机械只选短轨迹或前 6 步修改。 | 同时报告唯一源任务、有效监督 token、恢复类型和长度分布;不能只报 JSONL 行数。 |
按原 train 合计投影,保留 C3 时 1,647 → 937 个视图,监督曝光 9,965,547 → 5,922,376,输入上下文约减少 39.7%。在每次累积 8 条的既有配置下,一遍数据约从 206 次更新变成 118 次。这不是训练墙钟耗时承诺,也不是相同优化预算。如果固定 206 steps,新数据会被重复约 1.75 遍,不能把结果仅解释为“去重更好”。
建议从同一官方 Qwen3.5-4B 初始化新的 LoRA,以相同 mask/框架、学习率调度和执行 dev 协议对照。先做原分布与去重分布的同曝光预算比较,再单独加入修正后的 B/C3 或新增恢复数据。不要同时改变数据、LoRA rank、采样温度和 harness。
| 对照 | 变化 | 回答的问题 |
|---|---|---|
| D0 | 原五池分布 | 可比的原始数据目标 |
| D1 | A/C 去重,B 保留,其他固定 | 隐式多视图加权是否有害 |
| D2 | D1 加 B/C3 语义修正 | 标签/恢复窗口质量是否影响行为 |
| D3 | D2 加真实学生状态恢复与收尾数据 | 新状态覆盖是否带来额外泛化 |
D0–D3 是验证设计,不是已执行的实验。用独立家族执行 dev 选择 checkpoint,resolved 与回归题数为主;复读、首次有效修改、验证和停止作为解释指标。SWE50 保持冻结,不能回流训练,也不应被反复用于调数据和选 checkpoint。
949 个源实例,一行一个;A 的数值使用合并后保留的 A mask,C3 使用其报告 mask。标签可重叠。筛选仅查看归档统计;“无解析 pass”“报告被屏蔽”不是自动失败判定。
所有分析输入以路径和 SHA-256 绑定。五池源文件来自主 checkout 的冻结发布位置,用户指定的三轮 HTML 来自另一 Lody worktree;本报告写入当前 worktree。没有修改原数据,没有读取 hidden gold/test 内容,没有调用教师或占用 GPU 训练。
代码:analysis/swe/audit_acb_quality.py。逐行校验既有 ids/mask 合同,以临时 SQLite 索引源实例与监督视图,解码 949 个唯一上下文;序列相同时才比较监督位置集合。原 samples 数据库以只读 URI 打开。输出是审计统计,不含新训练发布资格。
python -X utf8 analysis/swe/audit_acb_quality.py \ --source-root E:/Deeplearning/local_train \ --reference <用户指定的三轮评测 HTML> \ --output <临时审计 JSON 路径>
长度分位数采用排序后 (n−1)×q 的线性插值。思考正文长度为 decode 后截取 <think> 正文再用同一 tokenizer 重分词,含空白占位符,不能与整个 assistant 回合长度混用。长复读静态检查为正文至少 3,000 字符且 zlib 压缩比 <0.1,不表示生成时 finish_reason=length。
查询历史按受监督 bash 命令匹配 git log/show/blame/rev-list/reflog;测试与潜在写入复用既有 segment_review 规则。多工具调用可能合并观察,heredoc 也可能被当作写入,所以自动 pass/修改顺序仅用于筛查。结构与监督集合的计数不依赖这些行为启发式。
mask spans 的末端为包含端点。B 区域曝光对同源的每个视图计算 mask 与 B mask 的交集,再累计;因此不会把 B 文件的单独份额误写成全部恢复监督份额。token 份额不是精确梯度归因。
阅读顺序建议:先看主要结论与合并口径,再看 B/C3 反例和曝光试算。此报告刻意保留“有价值的数据基础”与“尚未解决的模型行为”之间的证据边界。