Files
Video-Tree-TRM5/research-wiki/reviews/2026-07-15-question-gen-v2-adversarial-audit.md
iomgaa 0fe1c96393 docs: add question-gen v3 construction-paradigm design and phase1 plan
Complete v3 planning: construction-first paradigm (frame-perception grounded fact extraction + 4-family independent judges + 6-layer verification + QuestionUnit contract), adversarial audit, paradigm-shift finding, real-data spike validation, logging schema, and phase1 contract implementation plan.
2026-07-15 05:41:10 -04:00

105 lines
9.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: question-gen-v2-adversarial-audit
title: question-gen v2 设计对抗审核 — 六路独立核验(四层病灶闭合度 + 契约一致性)
type: review
created: 2026-07-15
status: blocking
target: research-wiki/designs/2026-07-15-question-gen-v2-grounded-contrastive-design.md
---
# question-gen v2 设计对抗审核
**方法**6 路独立审核官(5 Claude + 1 Codex),互不通气,各自站"找漏洞"立场对抗式核验。5 路死磕 finding 四层病灶各一层 + QuestionUnit 契约一致性;1 路 Codex 端到端质疑质量。
**总判定**:**设计不能保证出题质量,不应直接进 writing-plans。** 四层病灶无一层 CLOSED;②不可翻转侧与契约层各带 Critical 级结构性缺陷(设计返工,非实现补丁)。
## 四层闭合度矩阵
| 层 | 判定 | 最致命残留 | 来源 |
|----|------|-----------|------|
| ① grounding 循环自证 | PARTIALLY | 换独立 VLM 只断"同模型自评"一半;打分仍黑盒标量、无帧证据可溯源(I1 自认)。时序逆序干扰项穿透 grounding/NLI/快解/后置四门 | ①+Codex |
| ② 结构性捷径 | **不可翻转侧 OPEN/Critical** | 数学必然:单维反事实互不重叠→正解=逐维众数→逐槽投票 100% 命中,且满足全部硬约束。病灶②被从"偏置"升级成"数学保证" | ②+Codex |
| ③ 歧义控制 | PARTIALLY(实操近 OPEN | 现网 gate 仍 Phase A 松绑版且 multi_true 判官 text-only 不看帧;镜像模式引入两条新歧义路径(翻转轴模糊、搬运干扰项未复检) | ③ |
| ④ 对抗信号位置 | PARTIALLY | 前移的是"便宜替身",完整 agent 仍后置且单裁判;回灌环无一致性校验+无收敛上界(踩 findings 漂移警告) | ④ |
| 契约一致性 | **BROKEN** | 设计只覆盖采样/分批/聚合 3 处,真实代码另有 5+ 处按单题拆 pair;镜像"即用即弃"架构与"生成期双入库"互斥=重写非改造 | 契约 |
## 跨审核官强收敛根因(高置信)
| # | 根因 | 指认者 | 硬伤 |
|---|------|-------|------|
| R1 | **MiniMax 单模型多角色=系统性单点** | ①③④+Codex | grounding打分+快解探针+歧义门三合一;仅歧义门加 NLI 第二路,grounding/快解裸奔→某类视频系统性偏差三门同向失效。缺 AdVQA 多裁判一致性门 |
| R2 | **不可翻转 4 子模式结构性未修** | ②+Codex | 逐维众数数学证明;覆盖 AR 题 60-70% 主体 |
| R3 | **契约拆 pair 远超设计覆盖的 3 处** | 契约+Codex | pools.py 三池切分把 P/Q 劈到不同池→AR pair 几乎全变孤儿被剔;correctness 逐题 dict 与 pair 双向 AND 口径无法共存→污染进化 |
| R4 | **验收指标自我确认 + 缺结构性/人工指标** | 全部+Codex | I4 测"模型是否用了捷径"非"捷径是否结构存在";MiniMax 相关指标全同源自证。缺帧错配安慰剂测试/逐维众数命中率(纯算法)/人工双正解率κ/槽位卡方/pair 关系可解率 |
| R5 | **回灌环+补生成 recall 泄漏** | ③④ | 回灌无一致性校验+无轮次上限→漂移;补生成"重试直到通过"+门非确定+无 quarantine→precision-over-recall 稀释回 recall |
## 逐层高severity 残留(矩阵未尽项)
### ① grounding
- V1 打分仍 `list[float]` 黑盒,observation 无帧证据/rationale/帧号(`distractor_selector.py` `_score_options`)——换 MiniMax 不改此数据结构。
- V2 粗档下区间选择退化为平局任意 top-3,near-miss 甜区失效;扩池无梯度救不了。
- V4 快解探针非对称谬误:弱解题器"解不出"被当"题够硬"绿灯。
- V5 时序逆序干扰项被 NLI 判非等价放过、被时序弱的 MiniMax 判非双正解放过。
### ② 结构性捷径
- C1Critical)逐维众数:见 R2。修法=放弃 hub-and-spoke,改平衡区组/因子设计(每维每值出现次数相等→逐维众数无定义),加纯算法硬校验 `argmax(逐维众数)==正解→fail`
- C2(高)镜像对 flip 反相关把双向 AND 从 1/16 打回 1/1(单个"事件时序"文本线索通杀 P+Q);bag-of-words 是"尽量"软约束未强制。
- C3/C4/C5(高/中高)evidence_gap 的"无法确定"恒定文本靶、semantic_rigidity 字幕匹配反向信号、premature 最终段文本靶——单维反事实改不掉这些语用/类别差异。
- C6(中)恒 A 正解槽位偏置无约束(Codex 亦独立指认 I1)。
- C7(中)NLI 的 embedding 回退是假绿灯,测不出语义泛化蕴含。
### ③ 歧义控制
- R1 视觉双真+文本独立(拿杯子/放盘子同框):NLI 放行,视觉侧唯一裁判 MiniMax 漏判即穿门。
- R2/R3(高,v2 新引入)镜像翻转轴模糊→P/Q 各自可辩护;搬运进 Q 的干扰项未在翻转题干下重新 grounding 复检。
- R6(实操高)现网 `gate_multi_true.md` 仍松绑版;`_gate_multi_true` text-only 不看帧,"视觉双真"结构上无输入通道。
### ④ 对抗信号位置
- R1 便宜探针能挡的题 ⊂ 完整 agent 能挡的题,差集=结构性/多步 shortcut,仍靠后置。
- R2 回灌环缺一致性校验+无 `max_regen_rounds` 上界。
- R4 后置难度判定单裁判,缺 AdVQA 多裁判一致性;"agent 恰好能解/不能解"的偶然性主导难度标签。
### 契约(BROKEN,设计未覆盖的 5+ 处)
| 处 | 文件/函数 | 拆 pair / 错口径 | 严重度 |
|----|----------|-----------------|-------|
| 三池 progressive exclusion | `pools.py::build_pools`/`_sample_excluding` | 拆 pair 到 test/val/diag→几乎全变孤儿 | Critical |
| per-category train/val 切分 | `pools.py::_split_one_category` | 拆 pair 到 train/val | Critical |
| batching 对/错桶分离(先于 FFD | `batching.py::_select_mixed_by_task_type` | 按逐题 correctness 把 P/Q 分进 correct/error 桶并抽样丢弃 | Critical |
| gate 信息量阶梯 | `gate_ladder.py`+`runner._run_gate_validation` | 逐题跑 gate,双向 AND 不生效,逐题分污染 e-process/进化 | High |
| pools.json 冻结/解冻 | `pools.py::_q_to_dict`/`_dict_to_q` | 丢 pair 三字段→孤儿 | High |
| 作弊门逐题剔除 | `adversarial_filter.py::run_cheater_gate`/`write_final_bank` | 半剔成孤儿 | High |
| correctness dict 逐题键 | `runner` 6+ 处消费 | pair 双向 AND 无处安放,与逐题 predictions 口径不自洽 | High |
| 镜像即用即弃架构 | `adversarial_filter.py::generate_mirror_question` | `_mirror`后缀/临时 pair_id/不入库,与"生成期双入库"互斥=重写非改造 | High |
| 非 AR byte-identical | 混合池 `rng.sample` | unit 折叠改变 population 长度→非 AR 选择漂移,破坏铁律 | Medium-High |
## 必须返工的设计条目(按优先级)
1. **§4.1.B 推倒重来**R2, Critical):hub-and-spoke → 平衡区组/因子设计 + 逐维众数硬校验。
2. **§4.2/§4.4 补第二独立视觉裁判 + 修快解探针非对称**R1, Critical):grounding 打分带帧证据核验 + 第二 VLM 交叉(qwen/MiniMax 多模态看帧,非 CLIP 几何);快解探针要求 solver 先证胜任;歧义门补第二视觉裁判凑多裁判。
3. **§5 契约大幅扩写**(R3, Critical):采样上移 pools.py(三池/train-val 以 unit 为原子);新增 unit 粒度 correctness 视图与逐题 dict 分离;序列化补 pools.json;作弊门 unit 粒度剔除;gate_ladder pair 口径。
4. **§2/§4.5 如实标注镜像是重写**(R3):给持久 pair 落库 schema。
5. **§4.4 multi_true AR 变体吃帧**(③):VLM 看真实帧;先落地收紧 rubric;镜像对增设翻转轴清晰度门 + 干扰项翻转题干下重新 grounding。
6. **§4.3 回灌环加独立一致性校验+收敛上界;补生成加 quarantine**R5)。
7. **§4.1 I4 验收指标重构**(R4):补纯算法结构性指标 + 人工/异构审计 + 帧错配安慰剂测试。
## 关键约束修正
- **grounding 不需要 CLIP**:排除的是专用图像嵌入模型(CLIP/SigLIP 太难装配);VLM 多模态(qwen/MiniMax 直接看帧+文本)可用。故"第二独立视觉裁判 / multi_true 吃帧 / grounding 帧证据核验"均可用 VLM 多模态落地,只是拿不到几何相似度。
## 反自证验收指标清单(R4 落地)
| 指标 | 靶向 | 手段(须非同源自证) |
|------|------|---------------------|
| 帧错配安慰剂测试 | ①虚假 grounding | 喂错误视频帧打分,分数须显著坍塌 |
| 逐维众数命中率 | ②C1 | 纯算法机械投票,阈值≈0.25 |
| 答案槽位卡方 + pair 槽位反置率 | ②C6 | 纯统计 |
| pair 关系可解率 | ②C2 | P+Q 一起喂盲答器+时序排序规则解法,须≈1/16 |
| 双正解率 + 裁判间 κ | ③ | 双 VLM 视觉裁判 + 求解器分歧探针三源投票,基线 33%→阈值≤5% |
| 难/烂混淆矩阵 | ④ | 人工/强裁判双标签,对照纯 Phase B 基线 |
| 难度判定翻转率 | ④R4 | N 次独立 agent 试答,测判定稳定性 |
| 前移拦截覆盖率 | ④R1 | 后置剔除题里"本应生成端拦下"占比 |
## 相关
- 设计: [2026-07-15-question-gen-v2-grounded-contrastive-design.md]
- 诊断: [2026-07-15-question-gen-v2-diagnosis-and-strategy.md]