Files

229 lines
17 KiB
Markdown
Raw Permalink Normal View History

# Local evidence analysis:待做实验日志
日期:2026-09-17。状态:**设计已记录,以下 GPU 实验均未在本轮执行**。
初始记录只修改日志与手稿占位;同日已追加多窗口提取实现和 CPU 测试,见文末。
未产生新的模型性能或 GPU 效率实测结果。
当前稿件边界见 [四页稿结构决策](manuscript_local_evidence_structure_2026-09-17.md)。
## 本轮决定与篇幅
正文按 Main Comparison、Local Evidence Analysis、Streaming and Context Analysis、
Error and Qualitative Analysis 展开,不把六类实验并列成六个小节。
近期音频是核心,视觉是可选增量;Omni LoRA 暂缓,不预留独立小节。
MiniROADA stage-two continuation 不是 Omni LoRA,也不替代其适配对照。
同日追加:Qwen2.5-Omni 3B/7B 与 MiniCPM-o 4.5 的 backbone transfer 对照,
用于检验 local evidence 增量是否依赖单一骨干,不新增独立贡献或正文大节。
四页技术内容内优先保留:一张方法图、一张主表、一张 compact controls 表,
一张包含错误/失败案例的定性图。Detailed recipe、全部窗口/相位曲线和错误切片
存入实验记录;正文仅选择事先指定、能回答核心假设的摘要,不按测试涨点挑选。
结果解释文字将替换 TODO,而不是在当前四页基础上无限追加。
## 固定研究契约
- EasyCom Sessions 4--12 训练,1--3 测试;5 Hz,10 个 0.2--2.0 s horizon;
固定 background / wearer / others 顺序和原 dense labels。
- 新 recipe、窗口、干预延迟、场景规则和 case-selection rule 仅用训练侧确定。
最终沿用固定四 epoch 协议;若需改变,先记录训练侧依据与新协议版本。
- 正式矩阵 seeds 0/1/2;记录 split、parent/checkpoint hash、运行 commit、
feature/model/processor revision、优化器、有效学习参数、预算和 common valid pairs。
- Training-side development 必须重建未见该 fold 的 task parent;已经用全部训练
sessions 训练过的 parent 不能把 Session 12 宣称为 continuation 的 held-out dev。
- Sessions 1--3 已多次被查看,后续对照如实标为 exploratory;新增 seeds 不恢复
独立 confirmatory test,也不把帧或十个相关 horizon 当作独立重复。
- Dense:逐 horizon 三类 AP / mAP、wearer AP、十-horizon mean。
Raw:source wearer OFF/ON 条件下,分别以 p(wearer)/1-p(wearer) 预测未来 endpoint。
报告 AP、prevalence、分母和每个 session;GT current activity 只用于评测切片。
- 这些是 endpoint anticipation,不是 one-event-one-vote onset/offset detection。
P0 真实数据审计仍未完成;semantic opportunity-v1 AP 已 superseded,不能复用为新证据。
## 实验队列:全部 pending
| ID | 待做对照 / 审计 | 回答的问题 | 手稿位置 |
|---|---|---|---|
| E0 | 核验原始 pred/valid/target、sidecar 和 checkpoint provenance;打印代表性时间轴 | 是否比较了相同物理时间与有效样本? | Setup / 主表说明 |
| L1 | 同 recipe、seed 和 cutoff 的 A、G、G+A、G+A+V | 音频与全局 context 是否互补?V 是否提供额外收益? | 主表 + Local Evidence |
| L2 | 宽 global-only head,尽可能匹配 G+A 的有效学习参数;统一下游 hidden width 并报告 allocated/active 参数 | 收益是否仅来自更大 head? | Local Evidence TODO |
| L3 | 固定 checkpoint 的 past-delayed A / V,保留对应时间与 mask 审计 | 模型是否依赖及时局部证据? | Local Evidence TODO |
| L4 | 因果 current-activity classifier,当前预测概率重复至十个 horizon | Dense 收益是否主要是更好的当前状态识别? | Main Comparison TODO |
| T1 | 8-s cap 下 tail refresh × local A 的四组训练对照 | 两条最新证据路径互补,还是冗余? | Streaming 表上半部 |
| T2 | 同 block decomposition 从头 replay、future-only media intervention、cache reset;按十档 phase 分层 | cache 正确性与 tail-length dependence 是否成立? | Streaming TODO |
| C1 | 初始 4/8/16-s 计划已扩展为 2/4/6/8/10/12-s 共享提取、独立 tail-aware G+A 训练;16 s 暂不执行 | 历史长度是否影响主方法,8 s 是否是合理折中? | Streaming 表下半部;完整曲线留日志 |
| C2 | 仅当要声称 local 分支缓解窗口敏感性时,在各 cap 增加 G 对照 | 窗口能否替代近期证据?融合是否对 cap 更稳定? | 条件追加,不新增正文小节 |
| B0 | 审计各骨干的 causal readout、维度、刷新与实际历史范围;先短片 GPU smoke | 跨骨干样本和接口是否可比? | Setup / Backbone transfer 说明 |
| B1 | Qwen2.5-Omni 3B/7B 各跑 G 与 G+A,保持同一份 local A | 增量是否在同系列不同规模下保留? | Local Evidence + compact 表末三行 |
| B2 | MiniCPM-o 4.5 各跑 G 与 G+A;匹配 Qwen refresh 对照后报告增量 | 增量能否迁移到另一 Omni 家族? | Local Evidence + compact 表末三行 |
| H1 | 预定义 activity 场景切片、正负计数、score/AP;纯负类只报告 distribution 或 calibrated FPR | 哪些可复核的活动场景仍混淆? | Error TODO |
| Q1 | 固定规则选择 raw onset、offset、hard-negative/shared failure 的同-horizon 时间轴 | 定量差异对应什么可观察错误? | 定性图空位 |
| S1 | 同硬件完整流水线 P50/P95 latency、吞吐、峰值显存;记录阶段分项与 block-transition cost | 逻辑 5 Hz 是否可实测在线运行,代价是什么? | Streaming TODO |
L1 的 A 是近期 1 s,G 是有历史的 integrated AV state。即使 recipe 和 head family
一致,也不能把 A/G 的差异纯粹归给 Thinker、语言推理或长时记忆;L2/C1 是必要限制性
对照。闲置占位权重不能充当有效学习容量匹配。
L3 只使用过去输入,不能拿未来帧、双向平滑或 nearest-future 对齐作为合法干预。
mask-only/availability 对照在缺失率与标签明显相关时追加,不先假定模型确有此 shortcut。
局部视觉采用逐人平均,person-slot permutation 应不改变结果;不能把排列不变当成
成功的 wrong-person grounding control。
## T1 四组及解释规则
| Omni refresh | local A off | local A on,固定 1 s / 5 Hz |
|---|---|---|
| Completed-only / 2-s update-and-hold | T1-C-G | T1-C-GA |
| Observed-tail / 200-ms refresh | T1-T-G | T1-T-GA |
四组共同固定:source-aligned 2-s blocks、8-s maximum budget、readout/head family、
训练暴露、目标、seed、common startup treatment 与 valid source--horizon pairs。
各组单独训练匹配的 head,不把单纯在 test masking 的 OOD 差异写成消融收益。
分别记录 tail 在 A off/on 下的 AP delta、A 在两种 refresh 下的 AP delta;
四组差值之差仅作为描述性交互量,AP 非线性且帧间相关,不直接推出统计独立或机制定论。
completed-only 未得到首个 state 的行在全部条件中统一处理并报告,不未来回填。
因 phase 不同,历史 span 随当前块位置变化;对齐同一 cutoff/phase 并保存实际范围。
`tail_embedding` 是辅助 preserved-EgoSpeak residual 的 block-phase 编码,不是 tail
内容。其 on/off 只能是该辅助架构内的独立可选实验,不能替代 T1。
同分块 replay 的数值一致性与当前尾块带来的预测收益分开报告;continuous-prefix
编码属于不同 representation condition,不作为必然数值等价的参照。
## 窗口与运行代价
C1 中 local A/V 固定 1 s;同日按用户确认将 Omni cap 改为 2/4/6/8/10/12 s,
暂不跑初始计划中的 16 s。六个 cap 均保留,不按测试 AP 再挑选长度。各 cap 的 global state
必须从对应因果输入提取,不能通过裁剪缓存向量伪造窗口。8-s cap 行与 T1-T-GA
复用同一个确切 run,不重复训练后择优填写两处。
固定 checkpoint 改 cap 若执行,单独标成 distribution-shift sensitivity;不能混入
分别训练的主比较。C2 在没有执行前,不声称融合已降低对长 context 的依赖。
S1 计时包括视频读取/裁切、模态编码、尾块重算、cache/history rebuild、local evidence
和 head,不以缓存特征上的 head FPS 代替系统 FPS。固定硬件/dtype,预热、GPU 同步,
采样非边界与 block transition cutoff;记录是否含 I/O、并发/batching 和延迟积压。
没有完整测量前只能称 5-Hz logical output,不称已验证 real-time。
## Backbone transfer:同日追加,全部 pending
模型标识核对自官方模型卡:
[Qwen2.5-Omni-3B](https://huggingface.co/Qwen/Qwen2.5-Omni-3B)、
[Qwen2.5-Omni-7B](https://huggingface.co/Qwen/Qwen2.5-Omni-7B)、
[MiniCPM-o-4_5](https://huggingface.co/openbmb/MiniCPM-o-4_5)。
本轮没有提取新特征、训练这些配对或验证跨骨干性能。
| 骨干 | Global-only | Global + local audio | 主要解释 |
|---|---|---|---|
| Qwen2.5-Omni-3B | B1-3-G | B1-3-GA | 主体参考;协议完全一致时复用 L1/T1 的确切 run |
| Qwen2.5-Omni-7B | B1-7-G | B1-7-GA | 同家族规模对照,不等于仅改变参数量的因果实验 |
| MiniCPM-o 4.5 | B2-M-G | B2-M-GA | 跨家族迁移;先过 B0,不能与未匹配 Qwen 原分数直接排名 |
主迁移矩阵固定现有同一份 causal 1-s / 5-Hz Qwen local audio sidecar、mask 和
下游 head family,只更换 global backbone。不能同时把 A 换成该模型自己的 encoder,
否则无法区分 global backbone 与 local encoder 的贡献。若后续试 native local A,
另设第二层实验,不混入主迁移矩阵;V 在音频配对完成后再作可选扩展。
每个骨干都分别训练 G/GA,固定训练暴露与预先锁定的 recipe,记录参数与逐 seed delta。
完整记录保留绝对 M/W/On/Off、每-session/count;正文三行只摘要
`Delta(G+A - G)` 的四项 AP/mAP 百分点增量。不只呈现涨点骨干。
跨模型 head 不能直接复用权重;不同 hidden dimensions 用明确适配的投影,报告有效参数,
不能静默 padding 或截断。Qwen 当前 last-four-layer readout 与 MiniCPM 当前 final
normalized state 不同;B0 需冻结共同可实现的 readout 控制或明确标成接口差异,
不能把默认导出方式不一致解释成纯骨干效果。
B0 固定并审计相同 split/目标、physical cutoffs、模态可用性、输入采样、刷新频率、
startup/common valid pairs、history 范围、readout 和下游训练预算;保存实际范围、
source times、processor/model/code revision 与完整 latency/memory。
同样称“8 s”或“5 Hz”不代表相同可见历史或相同 state freshness。
不同预训练、编码器和 tokenization 仍有差异,因此配对增量是适配可迁移性的证据,
不是纯架构排名,也不预设 7B 更好或大模型不需要 local A。
MiniCPM 的现有状态见 [提取与验证说明](minicpmo_streaming_features.md):
`native-1hz-hold` 与 `cached-partial-5hz` 已有入口,但均缺真实 GPU smoke 证据。
原生 one-second commits 保留其 streaming-window policy;当前入口没有与 Qwen
物理 8-s budget 等价的已验证 cap。不能仅把原生缓存写成“8-s matched”。
- 先做 native 1-Hz hold G/GA pilot;必须另做 Qwen **1-Hz** update-and-hold G/GA,
对齐 one-second chunk boundaries、初始化与 source-age。T1 的 2-s hold 不能替代。
若 history 范围暂无法匹配,仅报告各自协议内增量为 scoped exploratory transfer,
不放进 matched 跨骨干摘要,不声称同预算的绝对性能排名。
- 主体采用 5-Hz observed-tail 时,MiniCPM 行仅在 boundary/同分块 clean replay、
snapshot restoration、future-only media tests 与实际 history 审计通过后准入。
`--allow-unverified-partial-tail` 产物不能进入论文训练;失败记 pending/unsupported,
不填 0 AP,也不拿 1-Hz 行顶替 5-Hz matched 行。
- Qwen 7B 也需独立 causal smoke、维度/显存检查和匹配提取;旧的不同窗口特征不能
因模型名相同就视为本矩阵已完成。每种 refresh 分层报告,不混合平均。
执行优先级:主 3B 归因矩阵先完成,再做 7B 配对;MiniCPM 先 B0/native pilot,
验证与可比性门槛通过后补正式配对。若跨骨干只验证了 local audio 的增量,
不能进一步声称同一 tail 算法或视觉收益已普遍迁移。
## Hard negative 与定性分析规则
先用 participant timing facts 冻结切片,例如同 other 的 pause/resume、other-to-other
切换、overlap;场景命名不直接赋予 semantic floor ownership。
positive/negative 仍由该 family/horizon 的原 dense endpoint 定义决定,不用 LLM verdict
强行覆盖。wearer backchannel 可以是 raw onset positive;other backchannel 是否是
raw offset negative,取决于 wearer 在未来 endpoint 是否仍在讲话。
H1 保存每种 scene × family × horizon 的 Npositive/Nnegative、duration、invalid counts、
分数分布;两类都存在时报告 AP/prevalence。纯负类 AP 记为 undefined,不记成 0;
若报告 FPR,阈值只在训练侧 calibration 选择,并同时给 matched-recall 结果与实际召回。
原 semantic-v1 ENTRY/INT AP 不再使用;v2 真实数据与人工审核后才能恢复 semantic panel。
Q1 用训练侧固定的 case-selection/horizon 规则选择病例并保留失败案例。将预测定位到
其未来 target time,同时标出实际 causal source cutoff;同一 horizon 比较 EgoSpeak、G、
G+A,V 仅在实际跑完时加入。不能将十个 horizon 的最大值包络或未来平滑曲线与当前 GT
直接拼接。转写/participant annotations 只作为分析可视化,不回流为模型输入。
## 下一步顺序与交付
1. E0 / training-side recipe freeze,然后 L1/L2;复用已提取特征,先补最小归因证据。
2. T1/T2,再执行 C1 和 S1;每个新提取路径先做单 session / 短片因果 smoke。
3. L4 与 L3;若要窗口稳定性 claim,补 C2,而不仅看 G+A 窗口曲线。
4. H1/Q1 与前述结果配套;语义审核与 v2 audit 独立保留,不因数值好坏决定是否审核。
5. B0/B1/B2:7B 配对与 MiniCPM native pilot 可在核心冻结后推进;准入后补迁移摘要。
6. LoRA 留作后续可选替代适配对照,不是本轮执行要求。
实际运行后放入 `results/<dataset>_<question>_<date>/`,至少 README、summary.json 或
metrics.csv,保留 provenance 与协议。正文替换 TODO/--,不要把 pending 改名为 measured。
阴性视觉、尾块或窗口结果均如实保留;三种子与逐 session 结果不等于足够的显著性证据。
手稿占位:[main.tex](../manuscript/main/main.tex),主表 `tab:main`、compact controls 表
`tab:ablation`、错误/定性图 `fig:qualitative_floor_events`。本轮没有启动 GPU 训练。
## 本轮文稿检查
本机 Tectonic 编译后的预览共四页(含参考文献);方法仍只有一条展示公式。
相对链接、TeX/bib 引用和 `git diff --check` 通过。四页及新表/图空位完成渲染检查,
没有 overfull 警告或可见重叠/裁切。现有 XeTeX/旧模板字体替代和 underfull 警告仍在,
这是 working preview,不是官方工具链的最终字体/篇幅验证。填入数值与分析后重新检查。
本轮没有修改 feature/label/evaluator/训练代码,没有将任何 pending 实验标为完成。
同日追加 backbone-transfer 短段和三行增量空位后重新编译、渲染检查全部四页,
仍为四页含参考文献;链接、TeX/bib keys、单展示公式与 `git diff --check` 再次通过。
未修改旧运行或宣称跨骨干提取/对照已完成。
## 同日追加:C1 多窗口提取实现,GPU 实验仍 pending
用户确认“一条提取命令得到六个 cap 的特征,再分别训练”,已实现
[extract_easycom_multiwindow.py](../extract_easycom_multiwindow.py),
底层 [streaming_turn_multiwindow.py](../streaming_turn_multiwindow.py)。
共享 session reader、各 200 ms cutoff 的 AV preprocessing/encoder embeddings,
但每个 cap 独立 Thinker KV、滚动重建和 readout;绝不裁剪长窗口高层 KV 代替短窗口。
每个 `context_Cs/Session_N.pt` 是正常 `open-stream-replay` dense bank,
可复用同一份已验证的 1 s local sidecar 和现有四 epoch 训练脚本。
CPU 合成测试覆盖 24 s(含所有 cap 的滚动重建),逐点匹配六次单窗口生产提取;
AV 生产调用从 `6T` 降为共享 `T`,Thinker 仍逐 cap 执行。验证调用不计入该生产统计。
同时检查从原输入从头 replay、可变 KV 隔离、未来输入干预不回填过去、session reset、
last4 stack/mean、单窗口 CLI 兼容、head/local 成功与失败加载、输出覆盖防护。
既有 head objective、local feature、encoder-only 和 chunk-ablation CPU 回归通过。
实际时间轴 cutoff=20.6 s:cap=2/4/6/8/10/12 s 的 global history start 分别为
20/18/16/14/12/10 s;所有状态 source time=20.6 s,local A=[19.6,20.6),
0.2 s target=20.8 s。Cap 是 native-block 最大预算而非逐行精确固定长度滑窗;
必须同时记录 phase 和 actual context span。
尚未执行真实 Qwen/媒体 GPU smoke、全量提取、六-cap head 训练或吞吐/显存测量。
先用 Session 4 的 24 s smoke 检查六 bank shape/time/valid 与 independent replay,
再按 [多窗口运行手册](easycom_multiwindow_features.md) 提取所有 sessions。
联合多-bank 耗时不是单窗口在线效率;不能据 CPU 调用计数写性能增益或实时结论。
本次不修改 manuscript 数值或将 C1/T2/S1 标为 measured。