Files
Video-Tree-TRM5/research-wiki/designs/2026-07-09-paper-main-figure-design.md

198 lines
17 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.
# 论文主图设计:Self-Evolving Search Agent 推理训练闭环
**日期** 2026-07-09 · **状态** 已获用户批准(口头) · **产出物** Figma 图(文件 `xnLGUkZottqnr4dsEt9fGq` Page 1 空白区)
## 1. 目标与定位
- **用途**:论文主图(目标会议存在文档分歧:CLAUDE.md=AAAI 2026ARCHITECTURE.md 与记忆=EMNLP 2026,以用户最终决定为准,不影响本图设计),展示推理训练部分的自进化闭环;不含建树与新题生成(建树已有独立图,位于同一 Figma 文件)。
- **核心叙事**:搜索 Agent 通过 推理→诊断→进化→门控 闭环自我改进;**Frozen LLM, trainable harness**——被"训练"的不是模型权重,而是版本化的 Skills+Prompts。
- **差异化**:AVP/DVD 等相关工作画的是推理期内环(agent 怎么搜视频);本图内环只是一个面板,**训练期外环是主角**。
- **审稿人一句话记忆点**:这是一个不动模型权重的 PyTorch 式训练循环。
## 2. 已确认的关键决策
| 决策点 | 结论 |
|---|---|
| 构图 | 水平流水线 + 底部参数回流闭环(方案 A) |
| 版式 | 双栏跨页宽图,画布 2400×1050 px(≈2.3:1,缩印 180mm |
| 信息密度 | 四机制全部可见(Agent 内环 / 诊断瀑布 / patch 引擎 / CE-Gate+信息阶梯),去工程化(无熔断/缓存/遥测) |
| PyTorch 类比 | 底部独立双行对照条,与上方区域逐段对齐 |
| 示例贯穿 | 延续建树图同一 Video-MME 天文台视频,问题/诊断/patch 文本典型化设计 |
| 迭代维度 | Store 处 v1…vN 卡片堆叠 + ×N epochs 循环标记暗示,不加独立时间轴 |
| 绘制位置 | 与建树图同文件(素材直接复用),Page 1 空白区 y≥1800,不动现有图层 |
| 语言 | 图内文字全英文 |
## 3. 布局
> 下方 ASCII 草图为中文说明稿,仅示意区域关系;最终图层文字一律采用 §4/§5 的英文术语。
```
┌──────────────────────────────────────────────────────────────────┐
│ [输入] ┌──────────────┐ ┌───────────┐ ┌──────────┐ ┌──────┐ │
│ Q+缩略图→│ ① INFERENCE │→ │② DIAGNOSE │→ │③ EVOLVE │→ │④ CE- │ │
│ │ 树环境+内环 │ │ 归因瀑布 │ │ patch引擎 │ │ GATE │ │
│ └──────↑───────┘ └───────────┘ └──────────┘ └──┬───┘ │
│ │ read ┌─────────────────┐ accept│ │
│ └─────────────────│⑤ Skills+Prompts │←──────┘ │
│ │ Store v1…vN ▤▤ │ reject→保基线
│ └─────────────────┘ │
├──────────────────────────────────────────────────────────────────┤
│ DataLoader│forward()│backward()│optimizer.step()│grad clip│nn.Parameter│
└──────────────────────────────────────────────────────────────────┘
```
**数据流勘误记录**CE-Gate 位于 Evolve 之后(进化产出候选 → gate 用 e-process 验证候选 vs 基线 → accept 才写入 Store),信息阶梯为 gate 供给高信息量题序,而非控制输入难度。此顺序已与 `core/evolution/gate.py``app/harness/gate_ladder.py` 核实。
## 4. 五区域内容规格
术语均与代码核实一致(来源见 §7)。
### 4.1 输入区
- 问题卡(Q: *"What happens right after the dome opens?"* 措辞绘制时可打磨)+ 天文台视频缩略图 + 迷你树 icon,标注 "hierarchical video tree (Fig. 2)" 衔接建树图。
### 4.2 ① INFERENCEagent-controlled,图上唯一画成循环的面板)
- 树环境迷你版:L1/L2/L3 三层色带(绿/蓝/黄,复用建树图配色与缩略图)。
- Agent 内环轨迹:Thought → `search_similar``view_node``observe_frame``submit_answer`;侧边 `read_skill` 箭头(来自 ⑤,工具名与 `app/search/tools.py:56-58` 一致)。
- 示例结局:answer ✗(答错),输出 trace 流向 ②。
- 面板角标:*agent-controlled*;其余面板角标 *code-controlled*
### 4.3 ② DIAGNOSEcode-controlled
- 归因瀑布级联:`extraction failure → search failure → reasoning failure`(+ mixed 兜底),画成三级下落台阶。
- 二分岔:**defect**(改 skill 正文)vs **lapse**(记 appendix 提醒)。
- D1–D5 压缩为一排五个小 chipattribution / tool quality / search behavior / skill compliance / decision patterns。
- 示例:该题归因 `search failure` → 判 **defect**
### 4.4 ③ EVOLVE
- patch 流水线:candidate edits → **rank-and-clip** → apply patch。
- 侧边锁条带:**protected spans**appendix / momentum 区带锁图标,不可改写)。
- 示例 patch 片段:*"+ verify event boundary via L2 card before observe_frame"*。
- momentum 机制不单独出现(用户确认),仅隐含于锁条带。
### 4.5 ④ Validation · CE-GATE
- 面板标题 **Validation · CE-Gate**:块顺序验证(`validate.py` 配对翻转 W/L)作为输入喂 e-process——图上画为"candidate vs baseline 配对小图 → e 曲线"。
- e-process 小曲线:e 值随题数爬升,越过 `e_confirm` 虚线。
- 四出口:**accept (confirmed) / accept (provisional) / reject / continue**(代码中三种 reject 在图上合并,用户确认)。
- 侧挂小组件:信息阶梯(2:1 交错题序图标,标注 *info-max question ladder*),尺寸压小避免抢焦点。
- 视觉层级:accept 主路径线最粗;reject/continue 细灰次级线。
### 4.6 ⑤ Skills+Prompts Store
- v1…vN 卡片堆叠(复用建树图 Event Card 堆叠画法)+ 版本号 badge。
- accept 箭头写入 v(N+1);read 箭头回流至 ①,构成大闭环;循环标记 **×N epochs**。
## 5. PyTorch 对照条(最底部)
浅灰底横带,等宽字体,与上方区域逐段对齐:
| 上方区域 | 对照文字 |
|---|---|
| 输入 | `DataLoader` |
| ① | `model.forward()` |
| ② | `loss.backward()` |
| ③ | `optimizer.step()` |
| ④ | `grad clipping (validate)`(对应 CLAUDE.md 类比表中"进化 validation = grad clipping";④ 面板同时含 validate 配对翻转与 CE-Gate 判定) |
| ⑤ | `nn.Parameter` |
条带一侧放记忆点标语:*Frozen LLM, trainable harness*。
## 6. 视觉规范与素材复用
| 元素 | 方案 |
|---|---|
| 面板样式 | 白底、细虚线外框、顶部居中标题(沿用建树图) |
| ① | 淡绿系 · ② 淡橙红系(新增,饱和度对齐现有 pastel) · ③ 淡紫系(复用 VLM 紫) · ④ 淡蓝系 · ⑤ 白卡+badge |
| 直接复用 | 视频缩略图(candidate_a_t*)、L1/L2/L3 badge、Scene/Event/Frame Card 组件、VLM 紫块、箭头/chevron 样式 |
| 字体 | 与建树图一致(Inter);标题 24px / 正文 16-18px / 标注最小 15px 灰(2400px 画布缩印 180mm 后 15px ≈ 1.1mm12px 过小已弃用) |
| 图层组织 | 顶层 Frame 命名 `Main Figure — Self-Evolving Loop`,五区域各一个子 Group,便于后续人工微调 |
## 7. 术语出处(代码核实)
| 图上术语 | 来源 |
|---|---|
| gate 四出口 accept_confirmed / accept_provisional / reject×3 / continue | `core/evolution/gate.py:57-110` |
| 归因瀑布 extraction/search/reasoning/mixeddefect vs lapse | `core/evolution/diagnose.py:910-997` |
| D1-D5 五维聚合 | `core/evolution/diagnose.py:1095-1307`D2-D5)、`1551-1563` + `2230` + `2293-2296`D1 attribution distribution |
| 信息阶梯冷启动 2:1、信息量排序 | `app/harness/gate_ladder.py:57-117` |
| 块顺序验证配对翻转 W/L | `core/evolution/validate.py:12-69` |
| rank-and-clip、protected spans、appendix/momentum 区 | `core/evolution/evolve.py:186-594``core/evolution/patch.py:11-56` |
| agent 工具五件套(含 `read_skill` | `app/search/tools.py:33-73` |
| 版本目录 Store `store/skills/v{N}` / workspace 本地拷贝 | `app/harness/store.py:28-136``app/harness/workspace.py:103-108,150-152` |
## 8. 验收标准
1. 图在 Figma 中为独立顶层 Frame,可整体导出 PNG/SVG,缩印 180mm 宽时最小文字(12px 标注)仍可辨认。
2. 五区域 + 对照条齐全,闭环箭头(⑤→① read、④→⑤ accept)无歧义。
3. 全部术语与 §7 代码核实结果一致;无熔断/缓存/遥测等工程元素。
4. 风格与同文件建树图肉眼一致(配色、字体、面板语言、卡片组件)。
5. 不改动/移动建树图的任何现有图层。
## 9. 构图重构记录(2026-07-09 定稿后追加)
用户验收反馈:内容正确但"下半部空、无主线重点"。经方案比选(用户选 A),实施:
| 改动 | 内容 |
|---|---|
| 显式循环主干 | 面板间 chevron → 4px 黑色实心三角箭头(forward 主线);④→⑤ write 与 ⑤→① read 回流均为 4px 绿色实线带,⟳ ×N epochs 置于带上;黑/绿双色对应 forward / parameter-update 语义 |
| 底部压缩 | Store 2080px 全宽行 → 680×170 紧凑块(右缘对齐 ④,write 直指 v5);对照条 130→84px;画布 1050→**940**2.55:1 |
| 填充 | motto 24px 斜体移至左下空区;read 带起点加绿色圆点锚记 |
逐模块精修均经 Claude 自审 + Codex 独立审双 PASSQuestion/①/②/③/④/⑤+对照条/整图重构共 8 轮审核)。Codex 抓到的实质问题:④ 的 W/L 翻转数与 e 曲线出口统计不自洽(修正为序列省略号 + W=8·L=0E=56.78>e_confirm=20)、ladder 色块数与题数不符、read 线易误读为边框。
## 10. 定稿修订记录(2026-07-10,本节覆盖 §2/§3 的布局规格)
逐模块精修完成后的第二轮构图重构与最终决策(均经用户逐项拍板):
| 决策 | 内容与理由 |
|---|---|
| 环形布局 | 画布 2400×940 → **1608×960**;顶行 Question→①→②→③(黑色 forward 箭头),③ 底部下沉入 ④,底行 ④→⑤ 右→左(绿色 write),⑤ 顶部 read 回流 ①;顺时针一圈 = 一个 epoch,上下缝压缩至 36px |
| ④ 表义化 | 横版 840×280,右→左三段与底行流向一致:入口小票 `v6 · candidate`(③ 箭头落点)→ 配对复测表(v5·baseline 上 / v6·candidate 下,翻转列淡绿高亮,`W = 8 · L = 0` + 小注 `(4 of 8 flips shown)`)→ e-process 曲线越 `e_confirm = 20`(端点 `E = 56.78`,与 gate.py 公式验算一致)→ 绿色放行单卡片(与 ② 红色缺陷工单对仗)+ 虚线幽灵票 `else: no confirmed write`(if/else 结构;虚线沿用 ① 的"未采用路径"编码) |
| 出口简化 | gate 四出口在图上压成 accept(confirmed) + else 两出口;else 措辞避免暗示"非 confirmed 全是 reject"Codex I2 |
| PyTorch 对照 | 底部全宽对照条 → Question 下方**纵向对照卡**248×280 浅灰圆角块,Q/①…⑤ ↔ DataLoader/forward/backward/step/grad clipping/nn.Parameter 六行) |
| ⑤ Store | 408×280 与 ④ 同高:v1..v5 灰卡 + **v6 ✦ 绿卡**write 落点),motto 移入面板底部;版本叙事闭合:本轮 read v5 → 产出 v6 候选 → 放行写入 → `read (next epoch)` 读 v6Codex I3 时序标注) |
| 模型标签统一 | ① Agent / ③ LLM / 建树图 VLM 全部统一为 **Agent**(同紫块同图标;紫=冻结预训练模型,与绿=可训练资源对仗)。备注风险:建树图批量帧描述严格说非 agentic,正文表述需圆(如 captioning agent |
| 删减 | 面板间游离标签(trace + ✗ / defect)、⑤ 的 nn.Parameter 小标签、大 ⟳ 字符、全宽对照条均删除;`⟳ × N epochs` 合并为单行小字嵌缝 |
审核记录:④⑤+布局经 Codex 独立审(无 CriticalI1/I2/I3/M3 已采纳落实);整图终审 **PASS**(无 Critical/图内必改项)。终审遗留三项归入 **figure caption 与投稿检查**,不改图:
1. caption 需说明"紫块 Agent = 冻结预训练模型组件,仅 ① 为 agent-controlled,训练对象是 harness"(消解 ③ 同款 Agent 块的误读,兼答 motto 与标签并存问题);
2. 投稿前打印 180mm 宽样张,验证代码字体图例、`e_confirm = 20``(4 of 8 flips shown)` 等 14px 小字的缩印可读性。
## 11. 建树图风格统一记录(2026-07-10)
主图定稿后,用户认定主图风格更优,建树图向其看齐(内容结构不大改)。改动与决策:
| 决策 | 内容 |
|---|---|
| 视觉词汇表统一 | 两图共用同一套编码:虚线=堆叠/次要(不得用作焦点强调)、红色只留给错误、层级色 L1绿/L2蓝/L3黄贯穿;据此 Scene 2/Event 2 焦点框由灰虚线改层级色 3px 实线,Event i 红虚线框与 Event Card 红描边改 L2 蓝,Frame Card 描边补齐 L3 黄 |
| 标题与结构 | 三区块标题 ① Long Video / ② Multi-scale Temporal Decomposition / ③ Build TreeInter Bold 24 + 编号居中);chevron 换主图同款 4px 黑箭头;全部游离节点收入顶层 Frame(1715×441);修正 3 处 "leval" 拼写与标题缺空格、删重复标题 |
| Build Tree 补位 | 用户删除冗余 E1/E2 块后,空区放**空心骨架树**(白底+层级色描边,caption "tree skeleton (from ②) → attach a card to every node");三个 Agent 块加建树顺序徽章 ❶Event(L2)→❷Frame(L3)→❸Scene(L1),与算法#1 "L2 先行→L3 向下→L1 向上"一致 |
| 两树同构 | 主图 Question 面板迷你树按同一对称几何重画(实心 24/20/16);空心=待填充骨架(建树图)、实心=成品(主图),唯一差别维度即语义 |
| 模型标签 | 建树图 VLM 紫块随主图统一为 Agent(用户决策;正文 caption 需说明紫块=冻结模型组件) |
审核记录:Codex 独立审出 1 CriticalL3 展开帧时间戳越出 Event 2 区间,已改 0:21:30/0:21:32+ 2 Important(竖排来源标注弱化为 16px 灰、"The Event Card of L2 corresponding to L3" 改 "parent event card (L2)"+ 1 MinorFrame Card 黄描边),全部落实。遗留投稿检查项:❶❷❸ 徽章含义入 caption、180mm 样张验证小字。
### 11.1 ③ Build Tree 二次重构:配方表(2026-07-11,覆盖上文"Build Tree 补位"与"两树同构"两行)
同门反馈引发讨论后,用户裁定 ③ 的核心信息是**每类 Card 由什么输入生成**(建树流程而非建树结果),推翻骨架树方案。定稿设计与决策:
| 决策 | 内容 |
|---|---|
| 配方表结构 | 三行 = 三类卡的生成配方,**行序 = 建树顺序**(❶ Event→❷ Frame→❸ Scene,即 L2→L3→L1),顺序歧义消除;行区上方图例 `1 → 2 → 3 = construction order` 解释徽章 |
| 输入模态编码 | **缩略图(边框层级色)= 图像输入;迷你 Event Card = 文本输入**。三行配方:两张蓝框帧 / 黄框帧 + 迷你卡 / 三张迷你卡堆叠 + ⋯(text only)——一眼读出模态递变:纯图 → 图+文 → 纯文 |
| 迷你 Event Card | 58×56,淡蓝底 + 14px "Event" 标题 + 字段线 + 点列,与大卡视觉基因一致(经两轮迭代:无标题字形认不出、被拒调用残留一代旧卡致"重影",均已清理) |
| 树的去留 | 大树/骨架树全部移除;两图迷你树同构(主图 Question 面板对称重画)保留 |
| 内容纠错 | 借重画撞出两处原图错误并修正:Scene Card 字段 "frame summary"→"scene summary"(对照 `scene_summary`)、两卡 "visible test"→"visible text"(对照 `visible_text` |
| 主图 ② 阶段标签 | 三层注释:灰 `replay & collect evidence`(顶部)、斜体 `defect or lapse?`(过渡箭头旁)、红 `verdict`(贴红票左上缘,红色随工单类目);补齐同门指出的流程过渡感 |
| 工具图例回退 | ① 工具名就近标注经试验后观感不佳,回退为底部图例(用户决定) |
| 备份 | 重构前两图整体克隆锁定:Tree 备份 `2173:2`、Main 备份 `2173:276`BACKUP 2026-07-10 |
本轮 Codex 终审 **PASS**(无 Critical/Important):配方三行与 `video_builder.py` 逐行核对一致(L2=chat_with_images(rep_frames)、L3=帧+l2_description、L1=l2_texts 纯文本聚合),字段名全部对应。Minor 归入投稿检查项:
1. caption 补一句 "cards show selected fields"L2 卡代码中还有 action_subjects/visible_text/spatial_relations,图内为节选);
2. `verdict` 红字在极小缩印下有被误读为错误标注的微小风险,如需更稳可改深灰或加冒号(当前保持用户拍板的红色随工单方案)。
## 12. 被拒绝的备选方案
| 方案 | 拒绝原因 |
|---|---|
| B 上下双层 S 形回路 | PyTorch 对照条无法与面板逐段对齐,退化为角标 |
| C 中心辐射环形 | 2.3:1 宽幅下横向空间浪费大,机制细节难展开,与建树图直线叙事不一致 |
| 独立进化时间轴 | 占版面,与对照条拥挤;由 Store 版本堆叠 + ×N epochs 替代 |