Files
Video-Tree-TRM5/research-wiki/findings/2026-07-15-question-gen-v2-diagnosis-and-strategy.md
T

75 lines
6.1 KiB
Markdown
Raw 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.
# 出题质量 v2 诊断与重构策略:Phase A 为何不够、四层病灶、锁定方向
- **日期**: 2026-07-15
- **触发**: Phase Agrounded selector)落地并生成 30 道 AR 题后,Claude 三 agent + Codex 独立质量抽检均判"未真正过关";遂精读已下载 6 篇论文,定位根因并锁定 v2 重构方向。
- **前序**: [2026-07-14-ar30-too-easy-analysis.md]96.7% 太简单诊断)、[2026-07-14-hard-distractor-literature.md](首轮文献调研)、[2026-07-14-grounded-question-gen-phaseA-design.md]Phase A 设计)。
## 一、质量抽检结论:Phase A 部分奏效,但没解决真问题
对 Phase A 生成的 12 道新题 + 8 道旧 baseline 做了两次独立抽检:
| | Claude 三 agent | Codex(独立) |
|---|---|---|
| 负空间干扰项 | 基本消灭(12 道仅 1 处) | 减少但 grounding **不可审计** |
| 仍可 shortcut | 4/12 | **8/12** |
| 严格 grounded | 多数 | **仅 1/12** |
| 双正解高风险 | 3 处 | **4/12** |
机制层证据:干扰项视觉分落 [0.05,0.35] 甜区 90%——**但这是 selector 用自己的 VLM 给自己打分(循环自证)**,Codex 一针见血:"视觉可信分包装过的、不可审计的近似答案"。
## 二、四层病灶(根因)
| 层 | 病 | 证据 |
|----|----|----|
| **① grounding 来源** | 用**同一个 VLM 生成+打分**,且是"生成式 judge 打分"而非跨模态度量 → 循环自证、不可审计 | 抽检;GroundAttack 对照 |
| **② 题型结构** | **1-vs-3 单共识 + 自由编辑**天然可被:逐槽多数投票、最模糊/子串项获胜(A⊃B)、最长项获胜 | 抽检逐题 |
| **③ 歧义控制** | Phase A **松绑了 multi_true**——方向反了,放进更多近双正解 | 抽检 4 道双正解 |
| **④ 对抗信号位置** | 只做后置过滤(Phase B);过滤天生分不清"难"和"歧义",且产量靠反复补生成 | AFLite 自认局限 |
## 三、文献回挖(6 篇,对症三缺口)
### GroundAttackgrounding 的正解 + 关键纠偏)
- **三个独立冻结模型**Qwen2.5VL 描述 / DeepSeek-V3(纯文本 LLM)生成候选 / **SigLIP(CLIP) 打分**。生成候选的模型**看不到视频**,结构上无法自评。
- **打分是跨模态 embedding 相似度**(候选文本嵌入 vs 真实帧视觉嵌入的 cos),**不是 VLM 生成一个分**。Clustering+CLIPK-means 聚类 → 每簇取与真实帧 argmax。
- **纠偏**:只把自评 VLM 换成第二个 VLMMiniMax-M3)只解决"同模型循环"**仍不是 GroundAttack 机制**(那是 embedding 度量)。且 bge 是纯文本、算不了跨模态,跨模态必须 CLIP/SigLIP。
- GroundAttack 独立验证了"grounded"**没独立验证"wrong"**——这是它的短板,正好留给 MiniMax-M3 补。
### TempCompass / VITATECS / Vinoground(题型 + 歧义)
- **放弃 1-vs-3,改对称 1-vs-1 对比对**VITATECS 五条约束(禁蕴含=杀子串、等信息量=杀最长项、只改单维);Vinoground **正负选项同词不同序**bag-of-words 相同 → 长度/具体度线索结构上不存在)+ **双向 AND 评分**(问 A 问 B 都对才算,杜绝蒙)。
- **text-only 盲答过滤**Vinoground 0 帧探针 / VITATECS NLI 蕴含过滤——去视频只喂选项,高于随机就剔。
- **歧义靠收紧不靠松绑**:全用"人在环 + 一致性 κ + 高精度过滤器(宁杀错勿放歧义)"。VITATECS 原话"更在乎 precision 而非 recall"。
- 警钟:随机换词/名词替换干扰项极易被解(74.5–90.3%),动作反事实必须落在**动词/事件结构** + 等信息量 + 禁蕴含。
### AFLite / AdVQA(对抗信号位置)
- AFLite 作者**自认**:模型化过滤**分不清"题难"和"题烂/歧义"**(过滤后人类正确率反降)。我们的作弊者门是其单模型无集成弱化版,**必然继承并放大盲点**。
- AFLite 不解决产量,靠超大池剔剩 1/3 糊弄;无补生成。
- AdVQA 正解:**对抗前移到生成端**(出题当下让活模型试答)+ **独立于求解器的多裁判答案一致性门**10 人,<6 confident 或无共识→剔)。自动对抗(无一致性校验)会制造歧义/标签漂移——同我们盲点。
## 四、两个把方案串起来的洞察
1. **Phase B 翻转门 = Vinoground 双向对比**:机制对,但**用错层**——应把"对称 before/after 对"做成**生成格式**,而非先生成 1-vs-3 再事后翻转检验。
2. **MiniMax-M3 定位不是 grounding scorer,是独立"错误性/歧义核验器"**:补 GroundAttack 缺的"wrong"验证 + 堵"歧义当难度"盲点。
## 五、锁定的 v2 重构方向(用户已拍板:三个都选治本重构)
| 岔路 | 决定 |
|------|------|
| **题型** | **全面转对称 1-vs-1 对比对**(改 4 选项契约,评测/训练侧跟着动) |
| **grounding** | **引入独立 CLIP/SigLIP 依赖**(跨模态 embedding 相似度,最贴 GroundAttack 原意) |
| **对抗位置** | **对抗信号前移到生成端**(作弊者门降为第二道网;主信号生成时产生) |
目标架构(待 brainstorming 细化):
```
生成: 出"正解 + 单维反事实"对称对(等信息量/禁蕴含/尽量同词不同序)
grounding: 独立 CLIP/SigLIP 对真实帧算相似度选负项(不是 VLM 自评)
歧义门: MiniMax-M3 独立核验"确实错、非双正解" + NLI 禁蕴含 + text-only 盲答过滤(收紧)
对抗: 主信号前移生成端; 作弊者门 = 第二道网; 双向 AND 评分
```
**下一步**brainstorming 定 question-gen v2 设计(重点解决:对比对如何进 inference/eval/training 的 4 选项契约、CLIP 适配器如何装配、生成端对抗的反馈环怎么设计、Phase A/B 既有代码如何取舍)→ Codex 审 → writing-plans → 实现。
## 相关
- 论文:`reference/papers-distractor-gen/`GroundAttack/TempCompass/VITATECS/Vinoground/AFLite/AdVQA
- 现有实现:`app/question_gen/distractor_selector.py`VLM 自评,待换 CLIP)、`adversarial_filter.py`(Phase B 翻转门,待前移为生成格式)
- 独立 VLM`.env``M3_VL_LLM_*`MiniMax-M3,异于生成用的 qwen3.6-plus