Files
Video-Tree-TRM5/research-wiki/overview.md
T
2026-07-06 11:39:12 -04:00

77 lines
3.8 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.
# 系统总览 (Overview)
> Video-Tree-TRM5:在层次化视频树上构建可自我进化的搜索 Agent + 可训练递归检索器,通过 Harness Engineering 持续改进实现长视频理解。目标会议 EMNLP 2026。
## 1. 核心思想:自进化循环对标 PyTorch 训练
系统外层是一个 `for epoch` 循环,每轮跑 `推理 → 诊断 → 进化`,对标神经网络训练:
| PyTorch | 本项目 | 代码位置 |
|---------|--------|----------|
| DataLoader | 出题 question_gen | `app/question_gen/generator.py` |
| model.forward() | 推理 inference | `app/harness/inference.py` + `core/agent/loop.py` |
| loss.backward() | 诊断 diagnose | `core/evolution/diagnose.py` |
| optimizer.step() | 进化 evolve | `core/evolution/evolve.py` |
| nn.Parameter | Skills + Prompts(版本化) | `store/skills/`, `store/prompts/` |
| training loop | 外层循环 runner | `app/harness/runner.py` |
| checkpoint | Store 版本快照 | `app/harness/workspace.py` |
只有 inference 是 agent-controlledLLM 自主调工具),其余三步是 code-controlled workflow。
## 2. 模块结构
```mermaid
flowchart TD
main[main.py CLI 入口] --> runner[app/harness/runner.py 训练循环]
main --> build[app/tree/video_builder.py 建树]
main --> qgen[app/question_gen/generator.py 新题构建]
main --> train_ret[app/retriever/train.py 检索器训练]
runner --> inf[app/harness/inference.py 推理]
runner --> diag[core/evolution/diagnose.py 诊断]
runner --> evo[core/evolution/evolve.py 进化]
runner --> ws[app/harness/workspace.py Store + Workspace]
inf --> loop[core/agent/loop.py AgentLoop]
loop --> search[app/search/ prompt + skills]
loop --> llm[adapters/llm.py GovernedLLMClient]
build --> vlm[adapters/vlm.py]
```
## 3. 模块职责
| 模块 | 职责 |
|------|------|
| `app/tree/` | 建树模块:VLM 生成三层 TreeIndex(L1段落→L2片段→L3帧),字幕注入与后增强 |
| `app/harness/` | 训练 harnessrunner 循环编排、推理 step、mini-batch、信息阶梯、workspace 版本管理 |
| `app/question_gen/` | 新题构建:题目生成、基线校准、去重 |
| `app/search/` | 搜索 Agent 装配:PromptManager + SkillRegistry |
| `app/retriever/` | 可训练检索器:RecursiveRetrieverCrossAttention+ACT)、两阶段训练 |
| `core/agent/` | AgentLoop 引擎:Thinking+JSON 推理循环,pluggy hook 驱动 |
| `core/evolution/` | 诊断+进化引擎:两阶段诊断、patch/rewrite 进化、CE-Gate e-process |
| `adapters/` | 外部实现层:GovernedLLMClient(遥测+熔断+缓存)、VLM、Embedding、ASR、OCR |
## 4. 资源与工作区
| 路径 | 含义 |
|------|------|
| `store/` | 版本化资源 = "模型权重"`skills/``prompts/``questions/``videos/` |
| `workspaces/` | 一次"训练实验"工作区,如 `video-mme-v1`。每次 run 冻结 config + Store 快照,保证可复现 |
进化产出版本化(`skills/v1`, `v2`...= 可回滚的 checkpoint;进化 validation(长度/格式约束)= grad clipping。
## 5. 可提取内核
`core/agent/``core/evolution/` 是两个独立可提取包,**只依赖 Protocol 接口**,不依赖 `app/``adapters/` 或任何框架。
| 可提取包 | 包含 | 依赖的 Protocol |
|----------|------|----------------|
| `core/agent/` | `loop.py``types.py``protocols.py` | `LLMProvider``VLMProvider``ToolDispatcher` |
| `core/evolution/` | `diagnose.py``evolve.py``gate.py``validate.py``types.py``protocols.py` | `SkillStore``PromptStore``RunLog``TelemetryRecorder` |
判据:将它们连同 `core/types.py` 复制到另一个项目,提供 Protocol 假实现即可原样运行。
## 6. 实现路线
详见 `research-wiki/designs/` 下各设计文档与 `research-wiki/index.md`