docs: register Phase A plan in research wiki
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
---
|
||||
type: design
|
||||
node_id: design:maintenance-pool
|
||||
title: "训练池 Maintenance 正确题自动补入机制"
|
||||
date: 2026-07-14
|
||||
---
|
||||
|
||||
# 训练池 Maintenance 正确题自动补入机制
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
# AR30 靶向题"太简单"根因分析(baseline 29/30 = 96.7%)
|
||||
|
||||
- **日期**: 2026-07-14
|
||||
- **目的**: 30 道用 `ActionRecognitionStrategy` 6 个 SubPattern 靶向生成的 Action Recognition 题,本意复现 Agent 在 Video-MME AR 上的 6 种失败子模式(原生 AR 正确率约 65%),但 baseline 正确率 96.7%。逐题核实为何失败模式未被触发。
|
||||
- **数据**: `scratchpad/ar30_baseline_analysis.json`(30 题 × question/options/reasoning)+ `store/questions/generated-ar30/accepted_questions.json`(source_nodes/difficulty)
|
||||
- **对照**: [2026-07-11-benchmark-failure-taxonomy.md](M1–M5 失败机理)
|
||||
- **代码**: `app/question_gen/strategy_action_recognition.py`(6 SubPattern)、`store/prompts/question_gen/action_recognition.md`(出题 prompt)、`store/prompts/question_gen/gate_multi_true.md`(去歧义门)
|
||||
|
||||
## 一、结论摘要
|
||||
|
||||
**单一系统性根因:干扰项是"负空间"(视频中根本不存在的事件),而非"易混正例"(真实发生过、需辨析的近似动作)。** Agent 的工具箱(`search_similar`×3 → 判定不存在)恰好擅长确认"不存在",于是每道题坍缩成一次**检索存在性核对**——"哪个选项能搜到证据,其余三个搜不到就排除"——而非动作理解。这与靶向的失败模式(M1 负证据幻觉、M3 多实例锚定、M4 视觉粒度)**正好相反**:靶向想让 Agent 的坏启发式(搜不到就断言不存在)害它出错,但因为干扰项真的不存在,这个坏启发式反而变成了对的。
|
||||
|
||||
| 量化证据 | 数值 |
|
||||
|---------|------|
|
||||
| reasoning 通过"干扰项无证据/未出现"排除法定位答案 | **24 / 30(80%)** |
|
||||
| 时序题直接读取树内显式时间戳排序(无需时序推理) | **9 / 30** |
|
||||
| source_nodes = 6(单个小 L2 子树即含全部答案) | **13 / 30** |
|
||||
| 唯一答错题 [29] 的失败原因 | 树内**缺**证据(T1),非靶向失败模式 |
|
||||
| SubPattern 归属是否持久化到 accepted_questions | **否**(诊断盲区,见 §五) |
|
||||
|
||||
## 二、根因一:干扰项质量——"负空间"干扰项使排除法万能
|
||||
|
||||
出题 prompt 的 `distractor_rules` 与全局约束共同把干扰项推向"视频中不存在的动作"。典型 reasoning 结构是"正解有证据 + 其余三项全网搜不到":
|
||||
|
||||
| 题 | 正解证据 | 干扰项性质 | reasoning 片段 |
|
||||
|----|---------|-----------|---------------|
|
||||
| [2] 0kRsiSdDFYg | 举起/黑盒/PS5 三帧确认 | 跨域捏造 | "B: 全视频搜索无任何 bicycle kick 或 goalkeeper hug 场景,排除" |
|
||||
| [22] 068rdc75mHM (John Bell) | 三重确认 | 完全无关物件 | "B: coffee cup/city skyline/satellite dishes 完全未出现…C: dice/cups with lights 无任何节点提及" |
|
||||
| [0] 0ncLRRLvdfk (金融) | 3 个 L1 一致 | 异域动作(写代码/电视直播) | "D: 全视频无任何软件编码或自动交易算法相关内容" |
|
||||
| [9] 5WIdIs3A9Ok (美洲豹) | 凯门鳄/牛尸独立证据 | 未发生的捕食 | "B:无任何伏击鹿或牧场睡觉的证据。D:未发现跟踪水豚或猎杀活牛的证据" |
|
||||
| [23] 4IenX7OHumk | 鸟起飞/雄狮穿行两帧 | 未发生 | "C: 鸟类俯冲向水坑和狮子爬树在整个视频中均无任何证据" |
|
||||
|
||||
干扰项区分度过大:Agent 无需理解"发生了什么动作",只需确认正解选项能被检索命中、其余三项检索空返回。**Video-MME 原生题之所以难,是错误选项都是"可能发生/部分发生"的近似物**,逼真辨析;而这里错误选项是可证伪的缺席,`search_similar` 三次空返回即高置信排除。
|
||||
|
||||
### 门控是"负空间干扰项"的制度性推手(smoking gun)
|
||||
|
||||
`gate_multi_true.md`:**"≥2 个选项 plausibly correct → verdict fail"**。任何把干扰项做成"真实近似正例"的题,天然会让≥2 选项都合理,被此门直接毙掉。出题 prompt(`action_recognition.md`)末条同样写死 **"Do NOT write questions where multiple options could reasonably be correct"**。二者联合导致:**只有"1 个清晰正解 + 3 个明显缺席"的安全题能通过门控**,恰好把复现 M2/M3/M4 所需的易混题全部过滤掉。去歧义门在为"合法"服务时,杀死了"有用"。
|
||||
|
||||
## 三、根因二:证据集中度——答案在树摘要里,不需要跨段/多帧推理
|
||||
|
||||
- **时序题的正确顺序被写成树内时间戳,排序退化为数值比大小。** [15] "指地图(437s)→锤木板(478s)→行军(519s)→骑兵(539s),时间戳完全匹配";[18] "sandwich(2504s)→chocolate(2667s)→soda(2691s)→eat(2761s)";[25] "1576s→1747s→1897s→2046s 升序"。设计意图是"打乱时序即答错",但正确时序在 L2/L3 摘要里以时间戳明写,Agent 读出来排序即可,**时序推理环节被树旁路**。9/30 属此类。
|
||||
- **跨段题的合并已由 L1 摘要代劳。** `cross_segment_entity_tracking` 采样在 L1(`sampling_level_override=1`),而 L1 摘要本身就是跨段聚合后的高层描述。[0] "三个 L1 节点一致支持"、5 步作答——树替 Agent 完成了跨段合并,`cross_segment` 的"漏读某段"失败无从发生。
|
||||
- **13/30 题 source_nodes=6**(单个带帧的小 L2 子树),正解在头 1–2 次 `view_node` 即到手。步数中位数≈11 的高步数([26]=20、[28]=18、[23]=15)几乎全花在**反复检索确认干扰项缺席**这种冗余动作上,而非构建正解——空转仍稳落正确。
|
||||
|
||||
## 四、6 个 SubPattern 逐一复现失败分析
|
||||
|
||||
| SubPattern | 靶向失败 | 为何未触发(题例) |
|
||||
|-----------|---------|-------------------|
|
||||
| premature_evidence_anchoring | 找到首个证据就停搜 | 干扰项是缺席事件而非"前段的强局部匹配"。[8] 赛果题正解=官方成绩表,"首段诱饵"根本不存在,无从过早锚定 |
|
||||
| temporal_reasoning_failure | 排错序/数错第 N 次 | 正确顺序=树内时间戳,读数即排序([15][16][18][24][25]);干扰项是时序全反的排列,一眼可判 |
|
||||
| semantic_rigidity | 要求字面匹配拒同义词 | 同义改写太浅、且干扰项仍是缺席动作。[5] 吸管"缠绕"直接命中字幕,[4] 释义题靠排除异域项即中 |
|
||||
| fine_grained_visual_action | 分不清"怎么做" | 干扰项换成了缺席的执行方式而非"同动词的另一种真实做法"。[19] 墨镜"摘下 vs 推头顶/放鼻梁"——后两者视频无证据,非真实近似;[21][28] 同理 |
|
||||
| cross_segment_entity_tracking | 无法跨段合并实体 | L1 摘要已聚合(§三);干扰项混入的是"未发生动作"而非"另一实体的真实动作",[3][14][22] 排除法即中 |
|
||||
| evidence_gap_confabulation | 缺证据时编造因果 | 反被利用:正解是"仅旁白暗示/描述未展示"的诚实项,干扰项是缺席因果链,Agent 排除缺席项即选中诚实项。[20][12] 均一次命中 |
|
||||
|
||||
**共性**:每个 `distractor_rules` 名义上要求"近似/合理但错",但都留了"未出现/缺乏证据支持"的口子(如 fine_grained 的"确保都是合理执行方式"未被 VLM 落实),VLM 一律取"捏造缺席动作"这条最省力且最不会触发 multi_true 门的路径。
|
||||
|
||||
## 五、VLM + 门控的系统性偏差
|
||||
|
||||
VLM 面对采样素材被要求写 3 个错项,**最省力且最安全的路径是编造素材里没有的动作**:保证"错"、gate_key_verify 不会误判正解、且绝不触发 multi_true 门。反之,"错但有部分真实证据支撑"的近似干扰项需要 VLM 在素材里挖真实近似事件(更难),还有被 multi_true 门判歧义毙掉的风险。于是**出题目标函数(过门率最大化)与靶向目标(复现失败模式)直接冲突**:门控奖励"唯一清晰答案"=奖励"容易"。
|
||||
|
||||
附带缺陷:`build_prompt_context` 记录了 `sub_pattern`,但 `accepted_questions.json` 未持久化该字段(§一表);不过 `run_store` 的 DB(`logs/question_gen_ar30.db`)落了 `sub_pattern` 列,可据此做真实归属核对(见 §5.5)——**产物 JSON 未落盘 sub_pattern 仍是可观测性盲区,需从 DB 补齐到 JSON**。
|
||||
|
||||
## 5.5 归属核对:题目内容 vs 声称的 SubPattern(用 DB 真实归属)
|
||||
|
||||
前节靠题面反推有偏差。改用 `logs/question_gen_ar30.db` 的 `sub_pattern` 列(真实归属)逐题核对接受题(30 道),发现**近一半题目内容与其声称的失败结构脱节**。
|
||||
|
||||
| SubPattern | 接受/生成 | 过门率 | 靶向意图 | 题目实际内容 | 名副其实? |
|
||||
|-----------|----------|--------|---------|-------------|----------|
|
||||
| temporal_reasoning_failure | 5/44 | 11% | 排错序/定位第 N 次 | 5 道全是明确 "correct chronological order" 排序题 | ✅ 是(但顺序在时间戳里明写,故太简单) |
|
||||
| cross_segment_entity_tracking | 7/26 | 27% | 无法跨段合并实体 | 6/7 确跨段追踪同一实体(替补球员、white skirt、jaguar 跨段对比) | ✅ 基本是(但 L1 摘要已聚合) |
|
||||
| fine_grained_visual_action | 4/8 | 50% | 分不清"怎么做" | 3/4 是 how/manner 细粒度(handle sunglasses、manipulate straws、cat's manner) | ✅ 匹配最好 |
|
||||
| evidence_gap_confabulation | 3/31 | 10% | 缺证据时编造因果 | 仅 1/3 真涉证据缺口(predation evidence),另 2 道泛序列题 | ⚠️ 部分跑偏 |
|
||||
| premature_evidence_anchoring | 5/34 | 15% | 首个证据即停搜 | 几无一体现"前段诱饵→过早锚定"结构,全是普通结局/序列题 | ❌ 基本跑偏 |
|
||||
| semantic_rigidity | 6/24 | 25% | 字面匹配拒同义词 | 几无一是真正"同义改写 vs 字面原文"辨析,退化成通用 "which sequence/description accurate" | ❌ 基本跑偏 |
|
||||
|
||||
**结论**:DB 忠实记录了每题"打算"针对哪个子模式,但 11 道(semantic_rigidity 6 + premature_anchoring 5)严重跑偏,另 2 道(evidence_gap)部分跑偏。
|
||||
|
||||
**跑偏机制**:`instruction` 注入到 prompt 的 `## Special Focus:` 段后,VLM 未贯彻特异的失败结构,**回退到最省力的"哪个序列/描述准确"通用模板**。尤其 semantic_rigidity(需"正解同义改写 + 干扰项字面原文语义错"这种精巧结构)被直接忽略。
|
||||
|
||||
**佐证**:过门率越是靠"易混"取胜的模式越低——temporal 11%、evidence_gap 10%、premature 15%,说明真正尝试做易混的题大量被 multi_true 门杀掉,能通过的都是退化后的安全题。这与 §二"负空间干扰项"是同一病的两面:过门率压力下,VLM 既把干扰项做成缺席事件,也把题型拉平成通用序列题,两头都丢特异性。
|
||||
|
||||
## 六、Action Items
|
||||
|
||||
### A. 改 SubPattern(`app/question_gen/strategy_action_recognition.py`)
|
||||
1. **全部 `distractor_rules` 增加硬约束**:"每个干扰项必须对应视频中真实发生过的动作/实体,仅在时点、主体、执行方式或对象上与正解不同;严禁使用视频中不存在的动作作为干扰项。" 落实"负空间干扰项"禁令。
|
||||
2. **temporal**:`distractor_rules` 增加"正确顺序不得可由单一时间戳字段线性读出;采用同一 L2 段内、时间戳接近(<Δ 秒)的多个真实事件,迫使逐帧核对而非读数排序"。
|
||||
3. **fine_grained**:强制"4 选项为同一动词的 4 种真实执行方式(如顺/逆时针、单手/双手),其中≥2 种在视频不同片段真实出现过"。
|
||||
4. **cross_segment**:`sampling_level_override` 由 1 改回 **2(L2)**,避免 L1 摘要预聚合;`distractor_rules` 要求"强干扰项=只包含部分片段真实动作的合法子序列"。
|
||||
5. **premature_anchoring**:强制"前段必须存在一个与某干扰项字面吻合的真实局部匹配"(诱饵必须真实存在,当前是缺席)。
|
||||
6. **持久化 `sub_pattern`**:在候选落盘时写入 accepted_questions(补 `metadata.sub_pattern`),供后续诊断按模式分层统计(DB 已有,需同步到产物 JSON)。
|
||||
6b. **修复归属跑偏(semantic_rigidity / premature_anchoring)**:这两类 instruction 太抽象,VLM 回退成通用序列题(见 §5.5)。改法:instruction 内嵌 1-2 个"必须长这样"的具体题型模板 + few-shot 正例,并加一个"结构符合度"额外 gate(extra_gates),校验题目是否含该模式的必要成分(如 semantic_rigidity 必须有一个字面复用素材原文的干扰项),不符则退回重生成。
|
||||
|
||||
### B. 改出题管线 / 门控
|
||||
7. **`gate_multi_true` 松绑为分级**:区分"两个选项都完全正确"(应毙)与"两个选项都部分沾边、需辨析"(应留)。当前二元门是易混题的主要杀手,需改为"仅当≥2 选项完全满足题干时 fail"。
|
||||
8. **`action_recognition.md` 删除/改写** "Do NOT write questions where multiple options could reasonably be correct" —— 改为"错误选项应是视频中真实发生、但在时点/主体/方式/对象上与正解不同的近似动作(near-miss),而非视频中不存在的动作"。
|
||||
9. **新增"负空间干扰项"检出门**:对每个干扰项做一次 `search_similar`/树核实,若某题≥2 个干扰项在树中零命中 → 判定为"负空间安全题",退回重生成(把"能被排除法秒杀"变成显式失败信号)。
|
||||
10. **新增难度基线门(观测性)**:出题后用当前 baseline agent 试答,正确率>85% 的批次触发告警——把"太简单"从事后发现变成管线内的可观测指标。
|
||||
|
||||
## 七、独立审查修正(Codex,只读核实原始数据/代码/门控)
|
||||
|
||||
Codex 独立重数了 reasoning、查了 DB 拒绝原因、读了门控与管线代码,**证实主病但修正三处夸大、补三处遗漏根因**。整体可信度:诊断 7/10、action items 7/10。
|
||||
|
||||
### 被修正的原结论(本报告更新为以下)
|
||||
| 原结论 | 修正 |
|
||||
|--------|------|
|
||||
| §一"80% 靠负证据排除"(24/30) | 排除式 reasoning 约 23/30 成立;但**纯"负空间"事件**严格计只 18–21/30——原数把"错序/错主体/表格反证"也混入了负空间 |
|
||||
| §二 multi_true 是完整 smoking gun | multi_true 确是首因拒绝最多的门(137 拒中约 63 次首因),**但大量 multi_true='fail' 的实际原因是 "No source material provided",源于下方 gate 树错配 bug,而非"两真实近似选项都合理"**——smoking gun 被此 bug 污染,不能全算门控之过 |
|
||||
| §5.5 evidence_gap "仅 1/3 贴合" | 实为 **2/3 贴合**(#12 描述未展示、#20 展示 vs 旁白暗示均属 evidence gap),仅 #10 跑偏 |
|
||||
|
||||
### 遗漏的根因(新增,均已核实)
|
||||
1. **gate 树错配 bug(真代码 bug,最高优先级)**:`pipeline_v2.py` retry 换视频后用 `current_tree` 采样/生成(370/391 行),但 `run_gates(tree=tree,...)` 仍传**原始 tree**(471 行)。换视频重试的题门控用错树验证→大量"无 source material"假拒绝,**污染了 DB 拒绝原因统计**。需先修此 bug 再重估门控归因。
|
||||
2. **gate_key_verify 过宽**:只要"文本或帧任一支持正解"即 pass,不校验错误选项是否 near-miss,故放行"1 正解+3 缺席动作"。
|
||||
3. **OCR/静态文本泄漏未挡**:#1 gym visible_text、#8 最终成绩表、#26 board/Spanish labels 本质是读屏字非动作识别。
|
||||
|
||||
### Action items 评估修正
|
||||
- **纯改 `distractor_rules` 文案不够**(A1/A3 等):当前失败正是 VLM 不落实抽象规则,必须配"真实动作候选池"或结构 gate。
|
||||
- **松绑 multi_true 有风险**:需把 rubric 精确为"错误选项可有局部证据,但在题干限定的主体/时点/方式/对象下必须为假",否则放进真歧义坏题。
|
||||
- **A9 负空间检出门用 search_similar 成本高、误判多**(同义/视觉细节/字幕缺漏会误判):更优是**先从素材抽真实动作库存,再由库存组合 near-miss 干扰项**(从源头杜绝负空间,而非事后检出)。
|
||||
- **新增更优改法**:①先修 tree bug;②建"真实动作候选池"(实体/动作/时点/对象/方式)供 near-miss 构造;③per-pattern 结构验证器(semantic 必含"同义正解+字面陷阱"、premature 必含"前段真实诱饵");④AR 加 OCR/静态文本惩罚门;⑤"树可见性"难度评估——用完整树/去时间戳树/L2-only/frame-only 分别测,定位到底是视频理解难还是摘要泄漏。
|
||||
|
||||
## 相关文件
|
||||
- 6 SubPattern 定义:`app/question_gen/strategy_action_recognition.py:26-212`
|
||||
- 出题 prompt:`store/prompts/question_gen/action_recognition.md`
|
||||
- 去歧义门(根因制度推手):`store/prompts/question_gen/gate_multi_true.md`
|
||||
- 数据:`store/questions/generated-ar30/accepted_questions.json`、`scratchpad/ar30_baseline_analysis.json`
|
||||
- SubPattern 真实归属(DB):`logs/question_gen_ar30.db` 表 `question_gen_items` 列 `sub_pattern`(§5.5 核对依据)
|
||||
@@ -0,0 +1,82 @@
|
||||
# 困难干扰项生成文献调研:我们的病是 Easy-Options Bias,解法有成熟范式
|
||||
|
||||
- **日期**: 2026-07-14
|
||||
- **触发**: [2026-07-14-ar30-too-easy-analysis.md] 的 action items 被评估为"治标、不够彻底",遂调研学界/开源如何生成真正困难、能靶向失败模式的多选题干扰项。
|
||||
- **方法**: deep-research(5 角度并行搜索 + 对抗验证,108 agents),6 篇核心论文已下载到 `reference/papers-distractor-gen/`,GroundAttack 已精读。
|
||||
|
||||
## 一、核心结论:我们的病有学名,且解法与我们的"小修小补"根本不同
|
||||
|
||||
**我们"负空间干扰项 → 排除法秒杀"的病,学术名是 Easy-Options Bias(EOB)/ vision-option shortcut**:正确答案在特征空间比干扰项更贴近视觉内容,VLM 仅靠"vision+options 相似度匹配"就能选对、无需读题。GroundAttack 实测 NExT-QA(84.9%)、STAR(85.2%)、Video-MME 等 **80%+ 题有 EOB**——这不是我们独有的 bug,是整个多选 VQA 领域的系统病。
|
||||
|
||||
**关键差距**:我们原 action items 停留在"改 distractor prompt 文案 + 松绑门控"(要求 VLM 主观地"写得像")。学界的彻底解法是**用机制强制 grounded**,三条主线:
|
||||
|
||||
| 范式 | 一句话机制 | 代表 + 开源 | 消灭的捷径 |
|
||||
|------|-----------|------------|-----------|
|
||||
| **A. Grounded hard-negative mining** | 生成大量候选负选项 → 用 CLIP **视觉相似度**选出"与正解同样 groundable"的干扰项 | GroundAttack (2508.13428) | 排除法/单帧(vision-option 匹配) |
|
||||
| **B. 对比最小对 / 单维反事实** | 正解与干扰项共享全部内容,只改**一个维度**(时序方向/顺序/速度/主体/方式/对象),是真实事件的 near-miss | TempCompass, VITATECS, Vinoground, DMC3 | 单帧可解 + 语言先验 |
|
||||
| **C. 对抗过滤 + 配对翻转指标** | 门控从"唯一明显正确=过门"改为"能被 shortcut 秒杀=剔除";用配对翻转一致性(模型必须在正/反例间翻转)打分 | AFLite (2002.04108), QuadAcc, BVC, AdVQA | 一切 shortcut(模态无关) |
|
||||
|
||||
## 二、GroundAttack(已精读,最直接对口)
|
||||
|
||||
三个冻结模型协作,只替换负选项、保留原 V/Q/A:
|
||||
|
||||
| 模块 | 职责 | 我们的对应 |
|
||||
|------|------|-----------|
|
||||
| Captioner π_c | VLM 把视觉转详细文本描述 T | **已有**——树的 L2/L3 描述即是 |
|
||||
| Distractor π_d | 给定 T+Q+A,LLM 生成 **128 个** "confusing yet incorrect" 候选 | 我们只生成 3 个就落盘,无候选池 |
|
||||
| Selector π_s | **Clustering+CLIP**:K-means 聚类候选文本 → 每组用 CLIP 选与视觉最相似的 → 得 hard negatives | **完全缺失**——这是消灭 EOB 的关键 |
|
||||
|
||||
**实测效果**:EOB-free 标注后,VLM 在 (V+O) 设定掉到接近随机(20-30%,5选1随机=20%),(V+Q+O) 掉到未饱和。**成本 8.75 美元**(DeepSeek API 1.3e7 tokens)。核心洞察:**用 CLIP 视觉相似度选干扰项**,让干扰项和正解在视觉空间同样 groundable,排除法("搜不到就排除")从机制上失效——这正是我们最缺的一环。
|
||||
|
||||
## 三、落到我们 SubPattern + 门控架构的升级路径
|
||||
|
||||
### 3.1 出题层(替代"改 distractor_rules 文案")
|
||||
|
||||
用 **GroundAttack 式候选池 + 视觉相似度选择** 替代当前"VLM 直接写 3 个干扰项":
|
||||
|
||||
```
|
||||
现状: VLM 一次生成 3 个干扰项 → 落盘(VLM 走最省力路径 = 负空间)
|
||||
升级: 1. VLM 生成 N=32~128 个候选干扰项(都要求 grounded near-miss)
|
||||
2. 用现有 embedding(bge/CLIP)算每个候选 vs 采样帧的视觉相似度
|
||||
3. 选出与正解视觉相似度最接近的 3 个 → 保证同样 groundable
|
||||
4. EOB 自检:若正解的 vision-option 相似度显著 > 所有干扰项 → 退回重生成
|
||||
```
|
||||
|
||||
**对比最小对(范式 B)作为 SubPattern 的结构约束**——每个 SubPattern 绑定一个"只改一维"的反事实模板:
|
||||
- temporal_reasoning_failure → 只打乱事件**顺序**(同一组真实事件的错序排列,非缺席事件)
|
||||
- fine_grained_visual_action → 只改**执行方式**(同动词的另一种真实做法)
|
||||
- cross_segment_entity_tracking → 只改**主体**(另一实体在该段的真实动作)
|
||||
|
||||
### 3.2 门控层(替代"松绑 multi_true")
|
||||
|
||||
| 新增/改造门 | 机制 | 来源 |
|
||||
|------------|------|------|
|
||||
| **EOB 检测门** | 用 embedding 算 vision-option 相似度;正解不得显著比干扰项更贴近视觉,否则判"排除法可解"退回 | GroundAttack |
|
||||
| **对抗过滤门(AFLite 式)** | 出题后用弱/中 agent 在 **(V+O) 不看问题** 设定试答;能秒杀=有 shortcut=剔除 | AFLite |
|
||||
| **配对翻转一致性** 替代 multi_true 二元逻辑 | 同 SubPattern 造对比对(正例+反事实),模型必须翻转答案;不翻转=被 shortcut 攻破 | QuadAcc/BVC |
|
||||
| **难度基线告警门** | 出题批次用当前 baseline agent 试答,正确率 >85% 触发告警 | 通用 |
|
||||
|
||||
## 四、已下载论文(`reference/papers-distractor-gen/`)
|
||||
|
||||
| 文件 | 用途 | 状态 |
|
||||
|------|------|------|
|
||||
| GroundAttack_2508.13428.pdf | EOB 定义 + CLIP hard-negative mining(最对口) | ✅ 已精读 |
|
||||
| TempCompass_2403.00476.pdf | 时序对比最小对三种构造法(反向/变速拼接/换序)+ 开源 | 待精读 |
|
||||
| VITATECS_2311.17404.pdf | 六维度单维反事实描述 + 半自动 LLM+人工在环 + 开源 | 待精读 |
|
||||
| AFLite_2002.04108.pdf | 对抗过滤剔除 shortcut-solvable(SNLI 92→62%) | 待精读 |
|
||||
| Vinoground_2410.02763.pdf | 同词不同序时序反事实字幕对 | 待精读 |
|
||||
| AdVQA_2106.00245.pdf | Dynabench 人机在环对抗采集 | 待精读 |
|
||||
|
||||
开源代码:`github.com/llyx97/TempCompass`、`github.com/lscpku/VITATECS`、GroundAttack(代码待放出)。
|
||||
|
||||
## 五、待解问题(调研未完全覆盖)
|
||||
|
||||
1. **通用长视频上如何低成本自动生成单维反事实**:TempCompass 的反向/拼接技巧依赖"可反向播放/可拼接"的视频属性;主体/方式/对象维度的 grounded 扰动缺现成方法,需自研。
|
||||
2. **区分"题真难"vs"题不可判定/歧义"**:把 agent 自身作为对抗器时,如何自动近似 VITATECS 的人类在环校验,保证 hard-but-answerable。
|
||||
3. **单视频(非天然成对)语料如何构造配对翻转对**:QuadAcc/BVC 依赖成对视频,我们是单视频,需为每个 SubPattern 生成配对反事实时间窗。
|
||||
4. **IRT/难度校准反馈进出题器**:本次未找到强一级来源,需补充调研。
|
||||
|
||||
## 相关文件
|
||||
- 前序诊断:[2026-07-14-ar30-too-easy-analysis.md](含 gate 树错配 bug、EOB 病灶量化)
|
||||
- 论文:`reference/papers-distractor-gen/`
|
||||
- 调研原始输出:workflow wf_110dfc64-98c
|
||||
@@ -180,6 +180,11 @@
|
||||
"id": "plan:maintenance-pool",
|
||||
"label": "Maintenance Pool 自动补入实现计划",
|
||||
"type": "plan"
|
||||
},
|
||||
{
|
||||
"id": "plan:grounded-question-gen-phaseA",
|
||||
"label": "Grounded Question-Gen Phase A",
|
||||
"type": "plan"
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
@@ -336,6 +341,13 @@
|
||||
"relation": "implements",
|
||||
"evidence": "Implements maintenance pool auto-supplement in PerCategoryPoolStrategy",
|
||||
"added": "2026-07-14T14:22:44.443012+00:00"
|
||||
},
|
||||
{
|
||||
"source": "plan:grounded-question-gen-phaseA",
|
||||
"target": "design:grounded-question-gen-phaseA",
|
||||
"relation": "implements",
|
||||
"evidence": "Phase A 实现计划",
|
||||
"added": "2026-07-14T18:41:35.899803+00:00"
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
-4
@@ -1,8 +1,8 @@
|
||||
# Research Wiki 索引
|
||||
|
||||
> 自动生成,更新时间:2026-07-14 14:22 UTC
|
||||
> 自动生成,更新时间:2026-07-14 18:41 UTC
|
||||
|
||||
## design (27)
|
||||
## design (29)
|
||||
- [2026-07-06-core-agent-adapters-llm-design](designs/2026-07-06-core-agent-adapters-llm-design.md) `design:2026-07-06-core-agent-adapters-llm-design`
|
||||
- [2026-07-07-app-harness-design](designs/2026-07-07-app-harness-design.md) `design:2026-07-07-app-harness-design`
|
||||
- [2026-07-07-core-evolution-design](designs/2026-07-07-core-evolution-design.md) `design:2026-07-07-core-evolution-design`
|
||||
@@ -21,6 +21,8 @@
|
||||
- [Spec-3 出题管线 v2(失败机理靶向+逐题质量门)](designs/question-gen-v2.md) `design:question-gen-v2`
|
||||
- [出题模块迁移设计(question_gen)](designs/2026-07-07-question-gen-design.md) `design:2026-07-07-question-gen-design`
|
||||
- [出题管线 TaskTypeStrategy 拆分设计(Clean Architecture)](designs/2026-07-14-task-type-strategy-design.md) `design:2026-07-14-task-type-strategy-design`
|
||||
- [出题质量提升 Phase A — Grounded 单题质量(候选池 + VLM 视觉打分 selector + 单维反事实)](designs/2026-07-14-grounded-question-gen-phaseA-design.md) `design:2026-07-14-grounded-question-gen-phaseA-design`
|
||||
- [出题质量提升 Phase B — Agent 对抗过滤(独立后置过滤层)](designs/2026-07-14-adversarial-question-gen-phaseB-design.md) `design:2026-07-14-adversarial-question-gen-phaseB-design`
|
||||
- [建树修复管线:熔断根因修复 + 断点续跑 + 并发改造](designs/tree-repair-resilience.md) `design:tree-repair-resilience`
|
||||
- [建树模块竖切设计:数据结构 + 建树 + 修复 + 迁移](designs/2026-07-07-tree-module-design.md) `design:2026-07-07-tree-module-design`
|
||||
- [建树模块竖切设计:数据结构 + 建树 + 修复 + 迁移](designs/tree-module-vertical-slice.md) `design:tree-module-vertical-slice`
|
||||
@@ -31,14 +33,16 @@
|
||||
- [赛题生成工具设计](designs/question-gen-synth.md) `design:question-gen-synth`
|
||||
- [赛题生成工具设计(Question Generation Synthesis)](designs/2026-07-09-question-gen-synth-design.md) `design:2026-07-09-question-gen-synth-design`
|
||||
|
||||
## finding (5)
|
||||
## finding (7)
|
||||
- [2026-07-11-benchmark-failure-taxonomy](findings/2026-07-11-benchmark-failure-taxonomy.md) `finding:2026-07-11-benchmark-failure-taxonomy`
|
||||
- [2026-07-11-question-gen-calibration-analysis](findings/2026-07-11-question-gen-calibration-analysis.md) `finding:2026-07-11-question-gen-calibration-analysis`
|
||||
- [2026-07-14-ar30-too-easy-analysis](findings/2026-07-14-ar30-too-easy-analysis.md) `finding:2026-07-14-ar30-too-easy-analysis`
|
||||
- [2026-07-14-hard-distractor-literature](findings/2026-07-14-hard-distractor-literature.md) `finding:2026-07-14-hard-distractor-literature`
|
||||
- [2026-07-14-question-quality-gap-analysis](findings/2026-07-14-question-quality-gap-analysis.md) `finding:2026-07-14-question-quality-gap-analysis`
|
||||
- [Harness 评估: Spec-1 修复验证 (infer_spec1check)](findings/eval-spec1check.md) `finding:eval-spec1check`
|
||||
- [Harness 评估: Spec-2 批量并行建树](findings/eval-spec2-batch-tree-build.md) `finding:eval-spec2-batch-tree-build`
|
||||
|
||||
## plan (32)
|
||||
## plan (34)
|
||||
- [2026-07-06-core-agent-adapters-llm](plans/2026-07-06-core-agent-adapters-llm.md) `plan:2026-07-06-core-agent-adapters-llm`
|
||||
- [2026-07-07-app-harness](plans/2026-07-07-app-harness.md) `plan:2026-07-07-app-harness`
|
||||
- [2026-07-07-core-evolution](plans/2026-07-07-core-evolution.md) `plan:2026-07-07-core-evolution`
|
||||
@@ -52,6 +56,7 @@
|
||||
- [2026-07-12-per-category-pool-strategy](plans/2026-07-12-per-category-pool-strategy.md) `plan:2026-07-12-per-category-pool-strategy`
|
||||
- [2026-07-14-action-recognition-strategy](plans/2026-07-14-action-recognition-strategy.md) `plan:2026-07-14-action-recognition-strategy`
|
||||
- [2026-07-14-action-recognition-training](plans/2026-07-14-action-recognition-training.md) `plan:2026-07-14-action-recognition-training`
|
||||
- [2026-07-14-grounded-question-gen-phaseA-plan](plans/2026-07-14-grounded-question-gen-phaseA-plan.md) `plan:2026-07-14-grounded-question-gen-phaseA-plan`
|
||||
- [2026-07-14-maintenance-pool](plans/2026-07-14-maintenance-pool.md) `plan:2026-07-14-maintenance-pool`
|
||||
- [2026-07-14-task-type-strategy-framework](plans/2026-07-14-task-type-strategy-framework.md) `plan:2026-07-14-task-type-strategy-framework`
|
||||
- [Action Recognition 单题型首次训练实验计划](plans/action-recognition-training.md) `plan:action-recognition-training`
|
||||
@@ -59,6 +64,7 @@
|
||||
- [app/harness/ 训练循环编排层实现计划](plans/app-harness.md) `plan:app-harness`
|
||||
- [app/search/ 搜索 Agent 装配层实现计划](plans/2026-07-07-search-module.md) `plan:2026-07-07-search-module`
|
||||
- [core/agent/ + adapters/llm 基础设施实现计划](plans/core-agent-adapters-llm.md) `plan:core-agent-adapters-llm`
|
||||
- [Grounded Question-Gen Phase A](plans/grounded-question-gen-phaseA.md) `plan:grounded-question-gen-phaseA`
|
||||
- [main.py 推理入口 + 初始 Prompt 集实现计划](plans/main-inference-entry.md) `plan:main-inference-entry`
|
||||
- [Maintenance Pool 自动补入实现计划](plans/maintenance-pool.md) `plan:maintenance-pool`
|
||||
- [Per-Category Pool Strategy 实现计划](plans/per-category-pool-strategy.md) `plan:per-category-pool-strategy`
|
||||
|
||||
@@ -85,3 +85,7 @@
|
||||
- [2026-07-14 14:22 UTC] 新增 plan: Maintenance Pool 自动补入实现计划 (plan:maintenance-pool)
|
||||
- [2026-07-14 14:22 UTC] 新增边: plan:maintenance-pool --implements--> design:maintenance-pool
|
||||
- [2026-07-14 14:22 UTC] 重建索引: 70 篇页面
|
||||
- [2026-07-14 18:41 UTC] 新增 plan: Grounded Question-Gen Phase A (plan:grounded-question-gen-phaseA)
|
||||
- [2026-07-14 18:41 UTC] 新增边: plan:grounded-question-gen-phaseA --implements--> design:grounded-question-gen-phaseA
|
||||
- [2026-07-14 18:41 UTC] 重建索引: 76 篇页面
|
||||
- [2026-07-14 18:41 UTC] 重建索引: 76 篇页面
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
type: plan
|
||||
node_id: plan:action-recognition-strategy
|
||||
title: "ActionRecognitionStrategy 特化实现计划 (Plan B)"
|
||||
date: 2026-07-14
|
||||
---
|
||||
|
||||
# ActionRecognitionStrategy 特化实现计划 (Plan B)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
type: plan
|
||||
node_id: plan:grounded-question-gen-phaseA
|
||||
title: "Grounded Question-Gen Phase A"
|
||||
date: 2026-07-14
|
||||
---
|
||||
|
||||
# Grounded Question-Gen Phase A
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
type: plan
|
||||
node_id: plan:maintenance-pool
|
||||
title: "Maintenance Pool 自动补入实现计划"
|
||||
date: 2026-07-14
|
||||
---
|
||||
|
||||
# Maintenance Pool 自动补入实现计划
|
||||
|
||||
Reference in New Issue
Block a user