docs(designs): apply Codex review fixes to Spec-1/2/3
This commit is contained in:
@@ -43,6 +43,18 @@ graph LR
|
||||
| 视觉族 | 状态演化多帧、实例消歧数字 | 证据仅在帧内、不在任何 card 文本;多时刻真实读数做干扰项 | M4 视觉验证 | 15% |
|
||||
| 空间族 | 参照系空间 | spatial_layout 字段 + 时间锚;摄像机/被摄者双参照系 | T5 空间 | 10% |
|
||||
|
||||
**题族 × task_type 兼容矩阵**(Codex 审查补充;✓=合法组合,采样器按此分配双标签,保证 12 类各 20 题的硬约束可满足):
|
||||
|
||||
| 题族 | 合法 task_type |
|
||||
|------|---------------|
|
||||
| 检索族 | Object Recognition、Object Reasoning、Action Recognition、Attribute Perception、OCR Problems |
|
||||
| 推理族 | Action Reasoning、Object Reasoning、Information Synopsis |
|
||||
| 枚举族 | Counting Problem、Temporal Reasoning、Temporal Perception、Information Synopsis |
|
||||
| 视觉族 | Attribute Perception、Counting Problem、OCR Problems、Action Recognition |
|
||||
| 空间族 | Spatial Perception、Spatial Reasoning |
|
||||
|
||||
每个 task_type 至少落入一个题族;Spatial 两类仅由空间族供给。**"不出 T1 类素材题"是素材形态禁用**(不采瞬时动作/记分牌瞬时数值/无对白因果类素材),不删除任何 Video-MME task_type。
|
||||
|
||||
### 2.2 确定性后处理(零 LLM 成本,通用硬约束)
|
||||
|
||||
1. **选项 shuffle** + 答案字母重映射(修复 v1 答案 57% 在 A 的偏斜)
|
||||
@@ -77,8 +89,15 @@ graph LR
|
||||
| 项 | 决策 |
|
||||
|----|------|
|
||||
| 旧 240 题 | 原地保留 `store/questions/generated/`(infer_gen240 run 引用它,保可复现) |
|
||||
| 新题集 | `store/questions/generated-v2/`,workspace 以 `--questions generated-v2` 指向 |
|
||||
| 新题集 | `store/questions/generated-v2/`,布局与 v1 一致:`{video_id}.json` 平铺(无子目录)。CLI 示例:生成 `python tools/generate_questions.py generate --output-dir store/questions/generated-v2 ...`;推理 `python main.py --mode infer --questions generated-v2 --run-id gen240v2` |
|
||||
| 题目元数据新增 | `skill_target`、`source_nodes`(已有)、`gate_report`(四门判定)、`difficulty_steps`(抽检题) |
|
||||
|
||||
**元数据承载方式(Codex 审查修正)**:现有 `GeneratedQuestion`(`core/types.py`)为固定 8 字段,`load_benchmark` 丢弃未知 JSON 字段,池快照只存固定字段。约定:
|
||||
|
||||
| 字段 | 承载 | 进训练链路 |
|
||||
|------|------|-----------|
|
||||
| `skill_target`、`difficulty_steps` | 扩展 `GeneratedQuestion` 为可选字段(默认 None,benchmark 题不受影响);loader/pools 同步保留 | 是(diagnose 可按 skill_target 聚合报表) |
|
||||
| `gate_report` | 只存在于题目 JSON(溯源用)与生成期 SQLite;loader **不加载**(体积大且训练不需要) | 否 |
|
||||
| 规模 | 默认 240 题;**task_type 均匀(20/类)为硬约束**(进化循环分层需要),**族配比为软目标(±5%)**——采样器按"族 × task_type 兼容矩阵"(如枚举族→Counting/Temporal 类)分配每题的双标签;YAML 可扫 |
|
||||
|
||||
## 4. 配置归属(D7 规则)
|
||||
@@ -86,9 +105,20 @@ graph LR
|
||||
- **科研配置**(per-experiment YAML):族配比、门阈值(n-gram 窗口、多真判定温度)、抽检率、重出上限、规模
|
||||
- **工程配置**(`.env`):LLM/VLM 端点、超时、熔断——沿用现有
|
||||
|
||||
## 5. 运行时数据
|
||||
## 5. 运行时数据与治理
|
||||
|
||||
每题的门判定记录(哪门拒、拒因文本、重出轮次、最终状态)落 SQLite。表结构在设计批准后走 `structured-logging` skill 单独设计(本 spec 只约定:记录必须逐题可追溯、可聚合出各门拦截率报表)。
|
||||
- 每题的门判定记录(哪门拒、拒因文本、重出轮次、最终状态)落 SQLite。表结构在设计批准后走 `structured-logging` skill 单独设计(本 spec 只约定:记录必须逐题可追溯、可聚合出各门拦截率报表)
|
||||
- **质量门 LLM 调用治理(Codex 审查补充)**:轻量四门与生成器的全部 LLM/VLM 调用必须经 `GovernedLLMClient`/`GovernedVLMClient` + `TelemetryRecorder`(CLAUDE.md §4.8/§4.9),严禁裸调 SDK;门执行器通过依赖注入接收客户端实例,session_id 用生成批次 id、parent_call_id 链接到题目生成调用
|
||||
|
||||
## 5.5 核心接口概要(Codex 审查补充,完整签名留给 plan)
|
||||
|
||||
| 类型/函数 | 职责 |
|
||||
|----------|------|
|
||||
| `QuestionFamilySpec` | 题族声明:采样约束、prompt 模板、泄漏门捷径画像、合法 task_type 集合 |
|
||||
| `CandidateQuestion` | 生成器输出:题面 + 双标签 + source_nodes + 构造验证材料(未过门) |
|
||||
| `GateReport` | 四门判定结果:每门 pass/reject + 拒因文本 |
|
||||
| `run_gates(candidate, deps) -> GateReport` | 门执行器(依赖注入 LLM/树环境) |
|
||||
| `generate_one` 迁移 | v1 签名(只收 task_type)废弃,v2 收 `(family_spec, task_type, slot_seed)` 返回 `CandidateQuestion` |
|
||||
|
||||
## 6. 不做什么(YAGNI)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user