Record speaker-aware AV research and literature
This commit is contained in:
284
docs/speaker_aware_thinker_plan_2026-08-28.md
Normal file
284
docs/speaker_aware_thinker_plan_2026-08-28.md
Normal file
@@ -0,0 +1,284 @@
|
||||
# 多人交互感知 Thinker:视觉证据、train-free 干预与 wearer 切换评测
|
||||
|
||||
日期:2026-08-28。状态:研究与实验计划,**尚未实现或验证下述新方法**。
|
||||
本轮仅核查代码、官方论文和公开实现,没有启动远程提取、训练或人工/LLM 标注。
|
||||
|
||||
同日后续:[可训练多人 AV 融合调研与 8×L20 实验矩阵](trainable_speaker_fusion_survey_2026-08-28.md)
|
||||
扩展了逐人时序旁路、局部 memory adapter、末层 LoRA,以及 matched-recall 评测。
|
||||
新增 MuVAP、SICNet、AV-Dialog 等相关工作约束;本文保留此前 train-free 路线,不代表仍只推荐 train-free。
|
||||
|
||||
## 1. 主线与当前证据
|
||||
|
||||
建议将研究问题收敛为:**因果地利用逐人 AV 证据,预测 wearer 何时进入、保持或退出发言。**
|
||||
“谁在说话”“在对谁说话”“wearer 接下来是否开口”是不同问题,需要分别验证。
|
||||
观测到 wearer 未开口,不等于证明其主动决定不打断;离线人类行为预测也不等于闭环 agent 策略。
|
||||
|
||||
当前 [EasyCom 完整结果记录](../results/easycom_encoder_only_1s_4ep_2026-08-28/README.md)
|
||||
显示,标称 0.2s、`causal_valid_only`、seed 0 下:
|
||||
|
||||
| 输入 | mAP | wearer AP | 十 horizon 平均 mAP |
|
||||
|---|---:|---:|---:|
|
||||
| G | 73.44637 | 77.86650 | 60.84861 |
|
||||
| A | 79.69221 | 84.09982 | 60.50771 |
|
||||
| A+V | 79.00727 | 82.69832 | 60.76303 |
|
||||
| G+A | 81.72257 | 85.06554 | 65.10895 |
|
||||
| G+A+V | 82.02661 | 85.08583 | 65.39978 |
|
||||
|
||||
G 为全局 Thinker,A 为最近 1s 混合音频编码器池化,V 为局部人物视觉池化。
|
||||
G+A+V 相对 G+A 的 wearer AP 仅增加 0.02029 个百分点;不能据此声称已获得社会交互理解。
|
||||
但这也不能证明视觉无用:当前 V 丢掉了大量逐人、空间和时间结构。
|
||||
这些是单 seed、不同 head 容量/上下文条件的初步比较,不是已控制变量的显著性结论。
|
||||
|
||||
## 2. 已核查的代码与可用标注
|
||||
|
||||
- [局部提取器](../extract_turn_local_features.py):视觉为每张 crop 的空间 token mean,随后同帧逐人 mean、最近 1s 帧 mean;音频为有效 token mean。`persons` 仍保存逐人的池化向量、frame offsets、时间和框记录,但**没有保留完整空间/音频 token 序列**。
|
||||
- [Thinker 输入与读出](../streaming_turn_model.py):`_multimodal_embeddings` 已通过原生 encoder/merger 构造媒体 embedding;`_read_open_state` 复制 cache、临时闭合、读出并丢弃分支,是候选干预入口。
|
||||
- 同文件 `_open_media_pieces` 当前仅识别连续的 audio/video payload;直接插入独立 image token、人物 ID 文本或多路视频,不能假设无需改 parser/position IDs 就可运行。
|
||||
- [现有 transition 定义](../easycom_head.py) `transition_targets_from_activity` 是三路活动中任意一项变化。R1/R2 的 transition AP **不是 wearer onset/offset AP**;others 改变而 wearer 不变也会产生正例。
|
||||
- [已有交互事件工具](../derive_easycom_interaction_events.py) 读取逐人转写、帧区间和 `Target_of_Speech`,生成时序事件及 backchannel/interruption **proxy**;不能把 proxy 或 LLM 共识升级为人工语义真值。
|
||||
|
||||
[EasyCom 官方说明](https://github.com/facebookresearch/EasyComDataset#speech-transcriptions-and-voice-activity)
|
||||
确认转写包含说话人、活动帧区间和估计的讲话对象:参与者 ID、`Group`、`None`。
|
||||
因此 EasyCom 是“第三方交谈 / 对 wearer 讲话”诊断的优先数据集。
|
||||
先统计每 session 的 ID 覆盖、Group/None、缺失和多目标情况,再冻结子集规则。
|
||||
`Group` 不能当成“不对 wearer 说话”;官方 `None` 与字段缺失/无法确定必须分开。
|
||||
|
||||
Ego4D 先验证逐人活动、可见/画外和 wearer 状态泛化;本轮没有确认其具有与 EasyCom
|
||||
等价的 addressee 标签,不能直接复制“谁在对谁说”的真值定义。
|
||||
|
||||
同日补充核查:[Ego4D Social 官方文档](https://ego4d-data.org/docs/benchmarks/social/)实际定义了
|
||||
TTM/LAM,并列出 `social_segments_talking`、`social_segments_looking` 和 `is_at_me`。
|
||||
这提供了监督线索,但尚未核对远程 433 个 clip 的覆盖;不等于已具有完整的逐人 A→B 对象标签。
|
||||
需要核对 clip/source video、时间及训练测试划分,缺失标注不能填为负例,GT speaker status 不能作为主模型测试输入。
|
||||
|
||||
输入权限统一:继续使用现有视频混合音频;不把其他参与者独立头戴麦克风、真值 VAD、
|
||||
转写、讲话对象或未来帧作为主实验输入。提供的框属于 `provided-boxes` 条件,
|
||||
与在线 detector/tracker 条件分列;时间戳正确不代表已验证整个检测链是在线因果系统。
|
||||
|
||||
## 3. 路线 V:让逐人视觉成为 Thinker 的结构化证据
|
||||
|
||||
### V0:先建立同输入预算的视觉诊断
|
||||
|
||||
固定 3B、8s 历史、2FPS、5Hz 读出、同音频、同层融合与 head,比较:
|
||||
|
||||
1. 全图 + 音频(现有 Thinker 参考)。
|
||||
2. 逐人 crops + 音频。
|
||||
3. 全图 + 逐人 crops + 音频。
|
||||
4. 同像素/token 预算的普通全图增强或重复视图控制。
|
||||
|
||||
保留全图是为了提供人物相对位置、头朝向和交互上下文。不要只留下嘴部或把“看向”
|
||||
直接标成“正在对某人讲话”。2FPS 可先研究粗粒度朝向和交互组织,不能保证足够刻画唇动;
|
||||
后续若加入 5/10FPS 局部窗口,应独立消融采样率、分辨率与 token 数,不把三者同时改变。
|
||||
|
||||
### V1:第一个可实现版本——固定人物槽位的视频拼图
|
||||
|
||||
每个真实采样时刻生成“全图 + P1/P2/... 的扩展头肩 crops”的确定性拼图,作为一帧
|
||||
送入原生视频处理器;一个 chunk 仍只有一份同时间段音频。
|
||||
这是代码生成的输入布局,不是 AI 生成/修改人物内容。
|
||||
|
||||
- slot 在同一连续片段内保持身份稳定;只按当前及过去可见信息分配,不按真值说话状态排序。
|
||||
- 槽位数设上限,选择规则预先固定,报告被截掉的人数和遮挡率;无效槽位使用明确空白/mask。
|
||||
- 不把“P1 在 t 的 crop、P2 在 t 的 crop”串成两个不同时间点;拼图坐标也不等于真实场景坐标。
|
||||
- 总像素预算与普通全图相匹配,并另做“允许增加预算”的工程上限;比较中记录每步实际 token 数。
|
||||
- 沿用项目的 2s 完整块提交与不足块重算读出协议,每次只读取截至 t 可获得的 AV。
|
||||
不等待块结束后才回填更早的状态,不把本项目的 bounded replay 说成官方完整在线 API。
|
||||
|
||||
优点是先验证逐人证据是否有用,不立即重写多路媒体的 TMRoPE。
|
||||
限制是拼图改变了自然图像布局且缩小全图;正负结果都需要上述预算和分辨率控制解释。
|
||||
|
||||
### V2:有效后才实现原生多视图 token 序列
|
||||
|
||||
按 `time × local_track` 保留各 crop 的原生视觉 token 和 grid 元数据,再与音频时间块组织。
|
||||
同为 2048D 不代表当前 mean-pooled sidecar 是可直接替换的原生媒体 token;
|
||||
需从原始 crop 重新编码,或新存未池化的 encoder/merger 输出。
|
||||
必须测试 placeholder 数目、位置编码、缺失人物、跨块身份、尾块和 replay 一致性。
|
||||
不能用新随机 connector 却声称 train-free,也不能从单个 mean 向量还原唇动/空间细节。
|
||||
|
||||
### 证明视觉意义的证据链
|
||||
|
||||
先分层回答三个问题,而不是只展示漂亮 attention 图:
|
||||
|
||||
| 层级 | 问题 | 推荐验证 |
|
||||
|---|---|---|
|
||||
| 感知 | 当前可见人物中谁在发声? | 逐人活动 AP/宏平均、可见覆盖率;允许多人同时发声和画外来源 |
|
||||
| 交互 | 说话对象是 wearer、另一人、Group 还是未知? | 目标对象识别/置信度及人工核查;真值仅用于离线评测 |
|
||||
| 行为预测 | wearer 下一段时间进入还是保持未发言? | onset 指标、第三方交谈子集的错误开口预测与召回权衡 |
|
||||
|
||||
“A 与 B 互相交谈”严格子集可要求:过去观察窗口出现 A→B 和 B→A 的标注话语,
|
||||
A/B 都非 wearer,且两人的视觉证据有覆盖。单向 A→B、Group、未知目标另列。
|
||||
评测使用离线标注划分场景不等于模型获得这些标签;已开始但尚未结束话语的完整转写/目标
|
||||
也不进入测试 prompt。涉及未来话语的关系定义必须另标为事后分析,不能伪装成在线条件。
|
||||
|
||||
主要对照包括同一段音频下去掉人物视图、同一已观测窗口内错配人物/时间、非人物 crop 等。
|
||||
扰动只作敏感性诊断,不等于真实世界因果干预;单个 attention 热图或流畅解释不是模型
|
||||
真正利用社会关系的充分证据。成功需体现正确视觉相对这些控制的稳定优势。
|
||||
|
||||
## 4. 路线 F:冻结 Thinker,在内部重新利用局部证据
|
||||
|
||||
“train-free”在此特指 **Qwen 参数冻结、无新学习的 connector**;若仍训练预测 head,
|
||||
整条 pipeline 不能称为完全零训练。超参数搜索/校准也需要公开数据来源。
|
||||
|
||||
### F0:近期证据重读分支,先不改 attention
|
||||
|
||||
从持久 cache 复制临时分支,使用原生 processor 把截至 t 的最近 1s 音频及人物视图
|
||||
作为明确的“近期片段重读”输入,再读出预测特征,随后丢弃分支。
|
||||
使用未池化、已投影到 Thinker 输入空间的媒体序列,不把侧路 2048D 均值直接加到 hidden state。
|
||||
|
||||
这是一项待实现的输入/读出改造,不是现有 `_read_open_state` 已支持的功能。
|
||||
它会重复观察近期内容,必须记录原始时间段、正确生成模板和位置编码,且不把重读内容
|
||||
作为新发生的事件写回永久时间线。增加“重复同一原始片段、但无局部组织”的等预算控制,
|
||||
区分重读收益与局部结构收益;若无收益,及时停止这条分支。
|
||||
|
||||
### F1:最小的内部干预——只调整临时读出 query 的近期证据注意力
|
||||
|
||||
先在原有媒体序列上试,再与 F0 组合。记录 key 对应的模态、真实时间、人物区域;
|
||||
只对临时读出 query 的部分 head 加有界的注意力偏置,指向近期音频或当前有效人物区域。
|
||||
概念上为 `softmax(QKᵀ/√d + causal_mask + b_recent + b_person)`,不是给所有 head 无差别放大。
|
||||
|
||||
- 先做固定近期偏置与随机 head 控制,再研究内容相关 head 选择,避免复杂方法没有朴素对照。
|
||||
- “偏向人物”不等于“识别谁发声”。声源—人物对应须来自可用 AV 的因果估计;
|
||||
如用真值说话人关联,标为 oracle 上限。不能把 raw A/V 向量余弦直接假定为已校准的对应概率。
|
||||
- 只改分支 query,可保持已提交媒体 KV 不变;若改媒体 token 的历史注意力,受影响 KV 和后续状态必须重算。
|
||||
- 因果 mask 仍有效,不能为了 AV 对齐让 token 读取在当前 cutoff 之后的观测。
|
||||
- 优先测试“零偏置严格复现基线”、cache 未被分支污染、额外时间/显存开销。
|
||||
- FlashAttention-2 不一定支持所需 attention 输出/自定义 bias;小试可用 eager/兼容实现,
|
||||
但性能比较必须同后端,另报原 FA2 基线,不能混淆算法开销与实现开销。
|
||||
|
||||
F0/F1 改变特征分布,应分开报告“沿用旧 head 的无适配迁移”和“同配置重训 head”。
|
||||
后者仍是 frozen-backbone 比较,不是纯 inference-only 的整个系统。
|
||||
|
||||
### F2:对比解码作为诊断候选,不直接套到当前 head
|
||||
|
||||
TCD 用原音频与平滑音频的词表 logits 对比;ThinkOmni 用额外文本推理模型指导词表解码。
|
||||
两者可作为局部证据问答诊断的参考,但当前项目主要读取 hidden state,不生成长回答。
|
||||
不能将词表 logit 公式直接改成 `q_full + α(q_local − q_smooth)` 就声称复现论文。
|
||||
如研究 hidden-state 干预,必须作为新假设单独消融,并计入额外前向开销。
|
||||
|
||||
HeadRouter 可借鉴“不同 head 对语义/声学信号作用不同”的机制及 Qwen 代码;
|
||||
当前先不剪掉近期音频 token。压缩基准成绩不证明 pruning 会提高 onset/offset 预测。
|
||||
|
||||
## 5. 路线 E:wearer onset/offset 与第三方交谈期间的未进入
|
||||
|
||||
### E0:先统一物理时间,再谈预测提前量
|
||||
|
||||
保留历史 `EgoSpeak-compatible` 标称 horizon,不改写旧成绩。
|
||||
新增记录每个预测的 `input_cutoff`、`target_timestamp`、`available_timestamp`,报告:
|
||||
|
||||
- 物理提前量 `target_timestamp − input_cutoff`。
|
||||
- 在线可用提前量 `target_timestamp − available_timestamp`,后者需实测推理延迟。
|
||||
- 实际事件时间差与 5Hz 栅格量化误差。
|
||||
|
||||
目前特征 row i 的 cutoff 为 `(i+1)/5`,预测映射到 `j=i+h`。
|
||||
若该数据集的标签时间审计确认 `timestamp(j)=j/5`,真实提前量就是 `(h−1)/5`,
|
||||
标称 0.2s 对应 0s;若标签使用其他约定,应使用审计后的映射而非猜测。
|
||||
此前 EasyCom 首段匹配是重要证据,但不自动证明所有 session 或 Ego4D 的完整协议。
|
||||
零/负提前量结果只作检测或延迟结果,不称为提前预测。
|
||||
|
||||
### E1:把 wearer 事件和全活动 transition 分开
|
||||
|
||||
令 `w[j]` 为 wearer 活动:
|
||||
|
||||
```text
|
||||
onset[j] = (w[j-1] == 0) and (w[j] == 1)
|
||||
offset[j] = (w[j-1] == 1) and (w[j] == 0)
|
||||
```
|
||||
|
||||
先评 G、A、G+A、G+A+V 的已有预测,不为测量效果立即增加 transition loss。
|
||||
可对固定 horizon 的流式 wearer 分数构造明确标名的上升/下降启发式和过阈值事件;
|
||||
它们不是模型直接输出的事件概率。若比较同一 cutoff 的相邻未来步,必须先从保存的
|
||||
`[target_time, class, horizon]` 数组还原共同预测起点,不能错用不同起点当同一次预测。
|
||||
缺少当前步分数时,不能把真值当前状态偷偷填入模型输出;oracle-current-VAD 需单列。
|
||||
|
||||
若需要校准的“未来 H 内首次 onset”或 offset 概率,再增加 wearer 专属事件/hazard readout;
|
||||
这是后续有监督消融,与原 R1/R2 all-label transition 不同。
|
||||
未来某时刻的活动概率不等于期间至少发生一次 onset 的概率,尤其存在短 backchannel 时。
|
||||
|
||||
主要报告:
|
||||
|
||||
1. wearer-onset、wearer-offset 分别的 AP(明确 score 来源)、正例率和 AP/random。
|
||||
2. 事件级 precision/recall/F1:分别用 ±0.2s、±0.4s 作为预注册容差,一对一匹配,重复报警不能重复计对。
|
||||
3. 按真实提前量分层的 recall、错误报警次数/分钟、报警提前/滞后分布;允许迟到命中的 detection F1 与严格提前报警分开。
|
||||
4. 在固定 wearer-onset recall 下比较 false-entry rate,以及 onset recall–false alarms/min 曲线。
|
||||
5. 同时保留十 horizon 活动 AP/mAP,观察局部事件收益是否牺牲整体表现。
|
||||
|
||||
AP 采用项目一致的计算方式,不把梯形积分 PR-AUC 和 AP 混报。
|
||||
阈值扫描可完整报告为描述性曲线;从测试曲线上读出的固定 recall 点不是已部署阈值。
|
||||
操作阈值、平滑和去抖规则必须预注册,或仅在训练侧校准;不在 Session 1–3 选择最优。
|
||||
保持既有 4 epochs、无 dev 的主协议时,预声明参数组合并完整报告,不能暗中 test-tune。
|
||||
|
||||
session 起点、未观测上下文、原始被删片段形成的断点均需 mask;不能把拼接边界当成真实交接。
|
||||
先报告原始逐帧事件;若合并极短 VAD 间隙,另列敏感性分析,不能为了更高 F1 改真值。
|
||||
原始 20FPS 标注可用于更精细时间审计,但 5Hz 输出不能宣称已获得低于 200ms 的时间分辨率。
|
||||
|
||||
### E2:对应用户想要的“别人互聊,wearer 没插话”
|
||||
|
||||
用讲话对象与参与者活动建立分层:
|
||||
|
||||
- 两位非 wearer 的定向交谈;
|
||||
- 其他人对 wearer 讲话;
|
||||
- Group / 未知对象;
|
||||
- 可见说话人 / 画外说话人;
|
||||
- 单人活动 / 多人重叠。
|
||||
|
||||
在每个场景内同时保留 wearer 开口与未开口样本,避免构造全为负例的漂亮子集。
|
||||
“未来 H 内 wearer 没有 onset”可以作观察标签,不能直接命名为“合理不插话”。
|
||||
场景条件尽量只用过去窗口定义,未来只用于行为结果标注;若只分析事后未进入负例,明确注明。
|
||||
|
||||
关键指标是:**在保持相同真实开口召回率时,第三方交谈子集的错误开口预测是否减少**。
|
||||
同时报告对 wearer 讲话子集的开口召回、延迟和每组样本/事件数,防止模型只学会普遍压低 wearer。
|
||||
控制/分层近期 wearer 活动、others 活动、语音能量和上下文长度,减轻普通 VAD/持续性差异混淆。
|
||||
|
||||
若语义上要区分 backchannel、抢话、顺畅交接,利用现有 proxy 工具筛选候选,再人工复核。
|
||||
至少两名标注者、报告一致性与无法判断比例;不要求强行判定意图。
|
||||
示例预先固定抽样规则,展示成功、失败和模态冲突,附过去输入截止线、逐人活动、讲话对象、
|
||||
wearer 真值及预测曲线;不挑单个回答作为整体有效的证据。
|
||||
|
||||
## 6. 近期文献与我们的差别
|
||||
|
||||
| 工作 / 已核查发表状态 | 可借鉴点 | 不能直接推导的结论 |
|
||||
|---|---|---|
|
||||
| [MSA,CVPR 2026](../literature_notes/23_multi_speaker_attention_alignment.md) | 选择跨模态 head,并对同人区域/话语加偏置 | 原设定有身份话语转录;不是混合音频到逐人的在线对齐 |
|
||||
| [EgoAVU,CVPR 2026](../literature_notes/24_egoavu.md) | 需要验证声音—视觉的对应,而非仅输入两种模态 | 官方是数据与 SFT 路线,不证明必须新增 connector |
|
||||
| [AV-SpeakerBench,CVPR Findings 2026](../literature_notes/28_av_speakerbench.md) | 以说话人为单位,检查真正需要 AV 的问题 | 视频理解问答并非 200ms 轮次预测 |
|
||||
| [TCD,ACL Findings 2026](../literature_notes/29_temporal_contrastive_decoding.md) | 在冻结音频语言模型上增强瞬态声学证据 | 词表解码干预不等于 hidden-state/head 的直接替代 |
|
||||
| [ThinkOmni,ICLR 2026](../literature_notes/30_thinkomni.md) | Qwen2.5-Omni 的 train-free 推理增强确有实现思路 | 需要额外文本模型/解码;并非低延迟局部特征融合 |
|
||||
| [Address levels,SIGDIAL 2026](../literature_notes/31_continuous_address_levels.md) | 讲话对象及其不确定性与接话/注视/反馈有关 | 关系分析不证明因果决策,不把 uncertain 当 not-addressed |
|
||||
| [HeadRouter,作者宣布 ACM MM 2026 接收](../literature_notes/32_headrouter_audio.md) | 声学/语义 head 分工,有 Qwen 集成代码 | 用了校准数据;压缩效果不能当作本任务提升证据 |
|
||||
| [多模态 turn/backchannel,ACL 2025](../literature_notes/16_multimodal_turn_taking_backchannel.md) | 分别观察 keep、turn、backchannel | 双人、词级协议与第一视角多人预测不同 |
|
||||
|
||||
截至本次核查,MSA 官方仓库的 zero-shot/LoRA 实现仍列为待发布;不能承诺直接运行原代码。
|
||||
HeadRouter 有公开核心代码及 Qwen 集成,但没有在本项目环境安装/验证。
|
||||
|
||||
## 7. 实施次序、资源与停止条件
|
||||
|
||||
| 优先级 | 待做交付物(名称为提案,不是已有命令) | 进入下一阶段的条件 |
|
||||
|---|---|---|
|
||||
| P0 | `eval_wearer_events.py`、目标对象覆盖审计、事件报告 | 时间映射、valid mask、事件计数可人工复核;获得已有基线的事件表现 |
|
||||
| P1 | `streaming_turn_model_people.py`,先 V1 拼图与预览 | 因果/尾块/缓存测试通过;同预算下有稳定感知或事件收益 |
|
||||
| P2 | 临时读出干预模块,F0/F1 分开消融 | 零干预复现;不污染 KV;超出普通重读/随机 head 控制 |
|
||||
| P3 | EasyCom 多 seed + Ego4D wearer/可见性复核 | 参数协议冻结后测试;不按测试表现反复改变子集 |
|
||||
|
||||
8×L20 优先按不同 clip/session 或固定消融分配独立 worker,而不是一开始做大规模微调。
|
||||
先在训练 session 的少量有事件片段上做开发及边界检查,再运行完整 split。
|
||||
分片不能丢历史:同一连续流不能任意切段后把冷启动结果当完整上下文结果。
|
||||
正式复现保持 4 epochs、seed 0/1/2、同 split/head,并报告 token 数、参数量、显存和每步 p50/p95 延迟。
|
||||
多卡吞吐提升不等于单流 200ms 实时性。统计采用 session/clip 层级的配对汇总或 block bootstrap,
|
||||
不能把强相关帧当独立重复;EasyCom 仅三个测试 session,应展示逐 session 结果并谨慎解释区间。
|
||||
|
||||
停止/转向规则:
|
||||
|
||||
- V1 只在增加 token 后变好:先解释为输入预算收益,不声称人物组织创新。
|
||||
- AV 关联指标改善但 wearer 事件不改善:研究定位为感知/grounding,不宣称 agent 时机控制提升。
|
||||
- 所谓“不插话”收益来自 onset recall 降低:不支持社会选择性结论。
|
||||
- F1 不能胜过简单近期偏置/重读,或延迟明显不合目标:保留为负结果,不强行堆复杂干预。
|
||||
- 只有个例而无稳定分层指标/多 seed 证据:不能作为主贡献。
|
||||
|
||||
## 8. 可主张的论文贡献与暂不能主张的内容
|
||||
|
||||
值得争取的组合是:逐人 AV 证据的因果组织、冻结 Thinker 的可审计局部读出机制、
|
||||
以及 wearer 进入/退出与 third-party-exchange 分层评测。
|
||||
单独“加 crop”“加 attention bias”已有强相关先例,不能当作充分新颖性。
|
||||
|
||||
若证据成立,可表述为“在其他参与者交谈的情境中降低错误 wearer-entry 预测,同时保持
|
||||
真实 entry 召回”。若要进一步表述为“agent 学会不打断”,还需真实动作、闭环交互及
|
||||
用户体验/打断代价评测;现有 EasyCom/Ego4D 离线数据不能独立完成这项证明。
|
||||
253
docs/trainable_speaker_fusion_survey_2026-08-28.md
Normal file
253
docs/trainable_speaker_fusion_survey_2026-08-28.md
Normal file
@@ -0,0 +1,253 @@
|
||||
# 可训练的多人 AV 融合:从视觉证据到 wearer 开口预测
|
||||
|
||||
日期:2026-08-28。状态:研究方案,尚未实现、训练或验证。
|
||||
本文扩展[逐人 Thinker 与事件评测计划](speaker_aware_thinker_plan_2026-08-28.md),不再限定 train-free。
|
||||
本轮只检查本地代码及公开一手文献,没有访问远程 GPU、下载模型、改变训练配置或提交 Git。
|
||||
|
||||
## 1. 研究目标与需要区分的变量
|
||||
|
||||
目标:在相同 wearer 开口事件召回率下,正确视觉降低第三方交谈期间的错误开口预测;同时,对 wearer 讲话的片段中,接话召回及提前量不退化。
|
||||
这是离线行为预测目标,不等于已经证明 agent 会礼貌地选择不插话。
|
||||
|
||||
不要把以下四个轴混为一次实验:
|
||||
|
||||
1. 信息结构:人物平均,还是保留逐人身份、空间位置和时间。
|
||||
2. 时序模型:单帧 MLP,还是有限历史 GRU/TCN/因果 attention。
|
||||
3. 融合位置:最终 head,还是 Thinker 内部。
|
||||
4. 监督:三路未来活动,还是额外的逐人活动、讲话对象及 wearer onset。
|
||||
|
||||
“换成 RNN”不自动找回已经被人物平均抹掉的信息;“放入 Thinker”也不自动获得 AV 对齐。
|
||||
主要问题应是 **speaker/addressee-conditioned forecasting**,而不是预先指定必须由大模型胜出。
|
||||
|
||||
## 2. 已有实现与资产
|
||||
|
||||
- `extract_turn_local_features.py::extract_local`:`persons.features` 保存逐张 crop 的 2048D 空间池化向量;另有 `frame_times/frame_offsets/records`。可以先复用,不必重新提取全部局部特征。
|
||||
- 现有 `visual` 又经过人物平均与最近 1s 时间平均;当前 `TurnPredictionHead` 是投影、拼接、MLP,没有逐人 RNN。
|
||||
- `audio` 是最近 1s **混合音频**的编码器池化,每 200ms 更新;不是每人独立麦克风或分离音源。
|
||||
- G 已经包含全局音视频。G+A 不是 audio-only;G+A+V 对 G+A 只能证明额外局部视觉的价值。
|
||||
- `train_omni_turn_lora.py` 已有 PEFT、末 N 层 LoRA、gradient checkpointing、torchrun/DDP、冻结 Thinker 对照;`omni_cached_av.py` 可重建 pre-Thinker AV 序列。
|
||||
- 该入口尚不包含本文提出的逐人 memory adapter、addressee loss 或事件评测。代码存在不代表已完成 L20 验证。
|
||||
- 最终 G 状态 `.pt` 不能用来反向训练生成它的 Thinker。需要 pre-Thinker AV 缓存或在线编码;缓存的 encoder 若要训练,就必须重新在线计算。
|
||||
|
||||
现有单 seed 结果:G+A wearer AP 85.06554,G+A+V 85.08583,仅差 0.02029 个百分点;不能据此证明视觉社会理解。详见[完整记录](../results/easycom_encoder_only_1s_4ep_2026-08-28/README.md)。
|
||||
|
||||
## 3. 直接相关文献及其适用边界
|
||||
|
||||
各独立笔记在[文献目录](../literature_notes/README.md),均标明阅读深度。以下是研究设计所用的证据,不是对我们数据集效果的承诺。
|
||||
|
||||
| 方法 / 发表信息 | 借鉴点 | 不应直接搬用的条件 |
|
||||
|---|---|---|
|
||||
| [MuVAP](https://arxiv.org/html/2606.16731),作者仓库标注 Interspeech 2026 | 单路混合音频、逐人视觉、因果多人预测;最接近的结构性相关工作 | 官方仓库仍为 code coming soon;外部 ASD/VAP 预训练;第三人称可见人物设定,不直接覆盖不可见 wearer |
|
||||
| [SICNet](https://www.amazon.science/publications/long-term-social-interaction-context-the-key-to-egocentric-addressee-detection),ICASSP 2024 | 第一视角 talking-to-me 与较长社会上下文 | 使用转写、提供的 diarization/框;在话语结束处分类,不是连续提前预测 |
|
||||
| [AV-Dialog](https://aclanthology.org/2026.acl-long.1954/),ACL 2026 主会 | 将视觉目标人跟踪、流式理解和轮次事件共同训练 | 指定目标人的干扰对话不等同于自由多人分配;大规模预训练不适合作为本项目起点 |
|
||||
| [FLoRA](https://www.isca-archive.org/interspeech_2024/palaskar24_interspeech.html),Interspeech 2024 | 模态适配器、缺失模态处理;固定拒绝率报告误接受率 | BART/T5 和私有 device-directed 数据;不是 Qwen 插件或 wearer 事件预测 |
|
||||
| [Whisper-Flamingo](https://www.isca-archive.org/interspeech_2024/rouditchenko24_interspeech.html),Interspeech 2024 | 在强音频模型内部通过零初始化门控 cross-attention 学习视觉增量 | 原任务是 AVSR/翻译;不是已验证的在线接话模型 |
|
||||
| [LoCoNet](https://arxiv.org/html/2301.08237),CVPR 2024 | 逐人时间结构与跨人互动;可用作专门 ASD 编码路线 | 原模型整段预测不等于流式因果;需要审计/修改 temporal conv 和 attention |
|
||||
| [MBT](https://proceedings.neurips.cc/paper/2021/hash/76ba9f564ebbc35b1014ac498fafadd0-Abstract.html),NeurIPS 2021;[LAVISH](https://openaccess.thecvf.com/content/CVPR2023/html/Lin_Vision_Transformers_Are_Parameter-Efficient_Audio-Visual_Learners_CVPR_2023_paper.html),CVPR 2023 | 少量 latent token 限制融合成本、保留各模态支路 | 分类任务结构启发,不是接话预测证据 |
|
||||
| [InfoReg](https://openaccess.thecvf.com/content/CVPR2025/html/Huang_Adaptive_Unimodal_Regulation_for_Balanced_Multimodal_Information_Acquisition_CVPR_2025_paper.html),CVPR 2025;[InfoBridge](https://openaccess.thecvf.com/content/ICCV2025/html/Li_InfoBridge_Balanced_Multimodal_Integration_through_Conditional_Dependency_Modeling_ICCV_2025_paper.html),ICCV 2025 | 模态竞争、过度对齐及互补信息保护 | 不能因我们 A 强就断言发生了优化失衡;冻结特征头与端到端 encoder 调节不同 |
|
||||
|
||||
另外筛选了 triadic VAP、gaze-enhanced turn-taking、噪声下视觉接话、3M-Transformer 和 LoRA-adapted MM-VAP。逐人麦克风、眼动仪、多视角以及非因果窗口均必须作为额外条件列明,而不能冒充单路 AV 基线。
|
||||
|
||||
### 最重要的新颖性限制
|
||||
|
||||
MuVAP 已经涉及单路音频、逐人视觉和多人未来活动;MSA 已有 speaker-aware attention。
|
||||
因此“局部 crop + cross-attention/LoRA”本身不足以成为完整贡献。
|
||||
我们的待验证差异是:不可见 wearer 的第一视角、对 wearer / 对第三方的关系、真实提前量,以及召回受约束的误开口评测。
|
||||
是否达到某会议发表标准仍取决于实验质量、泛化和新颖性复核。
|
||||
|
||||
## 4. 路线 A:逐人因果时序旁路,优先实施
|
||||
|
||||
### 输入和结构
|
||||
|
||||
对每个时刻 t,读取截至 t 的 `persons`,按连续片段内的 local track 整理为人物序列,保留缺失 mask、框坐标和观测年龄。
|
||||
使用同一组权重编码各人物,避免把 Session_4 的某个身份编号学成固定说话倾向。
|
||||
|
||||
```text
|
||||
逐人 crop 向量 + bbox + 有效性/观测年龄
|
||||
→ 共享的有限历史 GRU / causal TCN
|
||||
→ 当前及历史人物 token
|
||||
|
||||
近期混合音频 + 全局 G
|
||||
→ query → 对人物 token 的 cross-attention
|
||||
→ 逐人发声 / 对 wearer 讲话的辅助预测
|
||||
→ gated residual → 未来活动与 wearer onset/offset
|
||||
```
|
||||
|
||||
建议第一版 d=256、1 层 GRU 或 2 层小型 attention、8s 有限历史。它们是工程初值,不是已调优配置。
|
||||
GRU 必须从每个有限窗口起点重建状态,或另行标注持续记忆条件;仅 detach 梯度并不会把推理记忆限制在 8s。
|
||||
第一轮仅把当前 G(t) 作为全局 query,不再对过去一串 G 做 RNN,否则每个 G 自带的历史会扩大有效上下文。
|
||||
局部音频向量本身含 1s 历史;选择过去向量时要检查其原始波形起点,而非只看向量的结束时间。
|
||||
必须另做相同有效历史的 G+A temporal 基线,防止把额外音频历史收益误归因于视觉。
|
||||
2Hz 视觉在 5Hz 输出间使用最近可用观测及 age/mask,不能将重复的画面称为新的 200ms 视觉信息。
|
||||
音频每人分支可以共享同一混合表示,但不能把它说成多个分离音源。
|
||||
|
||||
保持 G+A 基线作为残差起点:
|
||||
|
||||
`logits(t) = logits_GA(t) + gate(t) * delta_relation(t)`
|
||||
|
||||
gate 由输入预测,不由测试真值决定;增量可正可负。不能写成“别人讲话则禁止 wearer 开口”,因为真实对话有 overlap 和 backchannel。
|
||||
先固定 G+A 分支训练增量,随后将联合训练作为单独消融。零初始化增量能保持初始基线,但不保证训练后的不退化。
|
||||
|
||||
### 训练目标
|
||||
|
||||
第一阶段只改变表示/结构,保持现有活动 loss。
|
||||
第二阶段按顺序加入监督,而不是一次叠加多个新项:
|
||||
|
||||
1. 逐人当前活动 BCE:教会视觉与混合音频关联;overlap 是多标签。
|
||||
2. 讲话对象监督:wearer / another participant / group / none,未知标注 mask;不要把 group 或缺失合并为负例。
|
||||
3. wearer 专属 onset/offset:只针对 wearer 变化,区别于 R1/R2 的任意三路标签变化。
|
||||
|
||||
可用 `L_activity + λ_asd L_asd + λ_addr L_addr + λ_event L_event`,逐项 ablate、在训练侧确定系数。
|
||||
不沿用“pos_weight=3 一定合适”的假设,先统计各监督的正例率与有效覆盖。
|
||||
|
||||
事件 head 可预测未来 K 个 200ms bin 内“第一次 onset”的 K+1 分类(含窗口内不开口),或离散 hazard。
|
||||
“未来某点正在说话”和“未来发生开口”不是同一标签。onset 在当前静默的风险集训练/评测,offset 则相反。
|
||||
这些真值风险集只用于监督/分析;实际系统不能查询未来/当前标注来触发决策。部署时需要预测状态或已知的 agent 自身发声状态。
|
||||
|
||||
### 何时放弃复杂化
|
||||
|
||||
若逐人分支对 ASD/讲话对象都没有可用预测能力,先查身份/时刻对齐、裁剪范围和视觉表示。
|
||||
若辅助任务可行但 wearer 不改善,则应检查这些关系是否真正提供额外预测信息,而不是继续增加模型参数。
|
||||
|
||||
## 5. 路线 B:把局部证据放进 Thinker,作为主方法候选
|
||||
|
||||
### B1:有限 local memory + 门控 cross-attention
|
||||
|
||||
保留全局 AV 输入,把最近逐人向量组成独立 local memory,经共享投影与小型 resampler 压缩成有限 token。
|
||||
保持人物身份边界;例如每人 4 个 latent,4 人约 16 个,加一组近期音频 token。
|
||||
最初可用已有 pooled 向量;更细版本才重新缓存空间 token。可训练投影能适配 pooled 特征,但无法还原被池化丢失的信息。
|
||||
|
||||
在 Thinker 最后若干层加入:
|
||||
|
||||
`h' = h + tanh(alpha) * CrossAttention(LN(h), local_memory)`
|
||||
|
||||
alpha 初值为 0,先只训练 local adapter 和输出 head。
|
||||
优先尝试仅作用于临时 readout query 的版本,让局部记忆影响本次读出,不回写历史 media KV;与“所有 token 都融合”分列实验。
|
||||
memory 使用独立时间/track 编码及可用性 mask,不伪装成原视频网格位置。借鉴 Flamingo/Whisper-Flamingo 的结构,不声称这是原生 Qwen 功能。
|
||||
|
||||
### B2:adapter + 末层 LoRA
|
||||
|
||||
B1 有效后,再对最后 4 层 q/v 投影做 rank=8 LoRA;rank=16、最后 8 层为预算允许时的扩展。
|
||||
额外必要基线:相同 LoRA、不输入局部人物特征。否则无法判断收益来自普通任务微调还是局部 AV。
|
||||
训练只使用同一时刻的历史前缀,不在权重更新后复用旧权重产生的 Thinker KV。
|
||||
冻结 AV encoder 可用现有 pre-Thinker cache;最终状态 cache 不可替代。
|
||||
|
||||
另可试输入端局部 prefix/mosaic + LoRA,作为较少改 transformer 的对照。
|
||||
它需要更新媒体 token 组织、parser、TMRoPE 和预算审计;不应将多个同时刻人物串成不同视频时刻。
|
||||
|
||||
### 必须与路线 A 公平比较
|
||||
|
||||
固定原始输入、8s 历史、人物数、2FPS 起始采样、活动监督以及事件标签。
|
||||
比较三条:G+A+person temporal branch;同输入的 Thinker adapter;adapter+LoRA。
|
||||
报告参数、token 数、训练 GPU-hours、峰值显存、端到端每步 P50/P95 延迟及实际可用提前量。
|
||||
仅最终 AP 更高但无法及时输出,不能称为更好的实时接话系统。
|
||||
|
||||
## 6. 路线 C:专门 AV 编码器 / 蒸馏,独立实验家族
|
||||
|
||||
Qwen 图像 encoder 的单帧语义并非为唇动、gaze 或 ASD 专门训练。
|
||||
若路线 A 的表示诊断不理想,可引入 causalized TalkNet/LoCoNet 风格 AV 分支,保留逐人唇动时间结构,再与 G 融合。
|
||||
首先用原始视频小规模对照 2、5/10、原模型所需高帧率;低帧率不应插值成所谓真实高帧率。
|
||||
专门模型的 temporal conv、双向网络、全片归一化、未来 tracking 都须审计,不能直接把离线 ASD 特征作为因果特征。
|
||||
|
||||
这条路线改变了编码器/预训练数据,应与“只用 Qwen 编码器”分表;全局语义/长期历史与近期声学视觉运动可能互补,但需要验证。
|
||||
不要一开始就声源分离:分离引入额外模型、时延、伪影和信号权限;在混合表示上先做人物归属更容易控制变量。
|
||||
|
||||
蒸馏属于后续加速:在相同过去前缀下由有效的 Thinker+local 教师给时序小模型软目标;额外完整未来教师只能作为 privileged teacher 协议。
|
||||
未经验证的教师推断不能变成“真实社交意图”标签。
|
||||
|
||||
## 7. 把“不退化”落实为评测,而非口头保证
|
||||
|
||||
### 时间与事件
|
||||
|
||||
- 保存 input cutoff、源帧/音频最大时间、输出可用时刻、目标物理时间、segment ID。
|
||||
- 旧特征 row i 的 cutoff=(i+1)/5;若标签 row j 的时间为 j/5,旧 i+1 对齐的真实 lead=0,不是 0.2s。须逐数据集审计,原标称指标保留,不混成新提前量。
|
||||
- 事件预测提前窗口使用严格正 lead,例如预先指定 0.2/0.6/1.0s;合并连续告警并一对一匹配真值 onset。提前量按可用时刻计算,另报只按输入 cutoff 的理想值。
|
||||
- 训练和评测窗口都不能跨原始缺片拼接断点。仅重置新分支还不足以保证已有 G 未跨断点;需要审计全局 cache 或排除受影响窗口。
|
||||
|
||||
### 分层定义
|
||||
|
||||
1. 第三方交谈:可见他人 A/B 有交替发言,讲话对象明确为对方或其他非 wearer,wearer 当前静默;如果预测窗口内真实开口,不算误报。
|
||||
2. Addressed-to-wearer:当前/最近他人话语明确对 wearer,单独统计有真实 wearer onset 的事件召回、提前量,以及没有回应时的误报。
|
||||
3. Group / Unknown:单列;不要挑掉难例后只汇报容易的子集。
|
||||
|
||||
两个人可见、others=1 或两个人同时发声,都不足以证明 A↔B 交谈。切片规则先根据训练侧冻结,测试侧不按预测效果挑选。
|
||||
|
||||
### 主要指标
|
||||
|
||||
- wearer onset 事件 AP、offset 事件 AP;保留原 10-horizon 活动 AP。
|
||||
- `third_party_false_entries_per_minute @ wearer_onset_recall=r`,r 如 0.7/0.8/0.9 预先指定;达不到的目标召回应报告不可达。
|
||||
- 同一阈值下 addressed-to-wearer 子集的 onset recall、提前量/延迟。
|
||||
- 预设不退化容限 epsilon,报告配对差及区间;不能仅因 p>0.05 就宣称不退化。
|
||||
- 按 session/连续对话块聚类 bootstrap,另报逐 session 结果。EasyCom 仅 3 个测试 session,区间稳定性有限,不能把相邻 5Hz 样本当独立重复。
|
||||
|
||||
固定全局召回仍可能牺牲 addressed 子集,所以两条约束必须同时报告。
|
||||
测试集上完整预定义曲线的插值可用于描述匹配召回比较,但不能选出部署阈值再称独立验证。
|
||||
继续保留原 4 epoch、无 dev 的对照;要确定实际阈值,用训练集内部交叉拟合/校准并明确协议,不能使用 Session_1–3 挑阈值、epoch 或 loss 权重。
|
||||
|
||||
可以后续研究训练侧约束优化:最小化第三方负例风险,同时约束 onset 总召回与 addressed 召回。
|
||||
但权重/拉格朗日训练并不保证测试集满足约束;先验证表示与指标,不把它包装成已有有效 RL。
|
||||
|
||||
### 视觉对照与因果表述
|
||||
|
||||
- 同模型正确局部视觉、缺失局部视觉、仅使用更早的局部视觉、破坏跨时刻身份对应的局部视觉。
|
||||
- 缺失/错配可能是分布外扰动,因此还要有从头训练的无局部视觉与匹配预算控制。
|
||||
- 同步重排人物槽位应不影响 permutation-equivariant 模型;这种重排不是错误视觉。应破坏时间—身份或 AV 对应,并记录具体扰动。
|
||||
- 若 G 固定,仅检验新增局部 V;要检验全部视觉,必须同步重算 G 的视觉输入,不能只删除旁路。
|
||||
- 不从测试集选择最有利案例;案例按预定分层抽样,同时显示成功/失败与完整时间线。
|
||||
- 上述输入干预支持模型是否利用视觉的证据,不证明人类未开口的心理因果动机。
|
||||
|
||||
## 8. 标注供给:先 EasyCom,再审计 Ego4D
|
||||
|
||||
[EasyCom 官方](https://github.com/facebookresearch/EasyComDataset#speech-transcriptions-and-voice-activity)提供逐人发声和 `Target_of_Speech`。可以作为训练辅助监督及评测分层;禁止作为测试模型输入。
|
||||
Optitrack、独立参与者麦克风或人工转写作为输入,均须另列 privileged 条件。
|
||||
|
||||
本轮新确认:[Ego4D Social](https://ego4d-data.org/docs/benchmarks/social/)包含 LAM/TTM,并在 AV schema 中定义 `social_segments_talking` / `social_segments_looking` 和 `is_at_me`。
|
||||
这修正了此前“尚未确认可用 addressee”的信息状态,但**没有确认远程 433 个 clip 的字段覆盖**。
|
||||
下一步需按 clip_uid/source_clip_uid、时间和 split 对齐,统计已标注/缺失范围;字段缺失不能填作 negative,TTM=false 也不自动指出具体在对哪位第三方说话。
|
||||
官方 TTM benchmark 包含 speaker-status 条件;本研究主模型只能用预测的逐人活动,不可直接拿 GT VAD 作输入。
|
||||
本项目 346/87 EgoSpeak split 与官方 TTM split 不等价,监督预训练时检查 video/session/participant 重叠,避免把本项目测试 clip 用作辅助任务训练。
|
||||
|
||||
## 9. 8×L20 实施顺序与资源边界
|
||||
|
||||
以下是工程预算判断,不是实测吞吐。按每卡约 48GB 规划,执行前以 nvidia-smi 核实;DDP 复制模型,不将 8 张显存自动合并成一块。
|
||||
|
||||
| 实验 | 起步资源 | 可复用资产 | 优先级 |
|
||||
|---|---|---|---|
|
||||
| matched-recall 事件评测、字段覆盖审计 | CPU | 原预测、原始标注 | P0 |
|
||||
| pooled-GRU vs person-GRU/cross-attention | 预期单卡可训;多卡分配独立 seed/消融 | 已有 G、A、persons | P1 |
|
||||
| 加逐人活动、addressee、onset 监督 | 同上 | 同一输入;新增训练标签 | P1 |
|
||||
| local memory adapter | 先单卡 microbatch=1 profiling,再 DDP | 冻结 AV 编码缓存;必要时重存局部 token | P2 |
|
||||
| adapter + 最后 4 层 rank-8 LoRA | 同上;梯度累积/checkpointing | 现有 LoRA trainer 的基础设施 | P2 |
|
||||
| 专门高帧率 ASD / AV encoder 适配 | 先 1 卡小样本,合适后分布式 | 原视频/框、外部预训练 | P3 |
|
||||
| 从头复现 AV-Dialog 全流程、Omni 全参大规模预训练 | 不列为当前主线 | 数据/训练规模超出低成本验证 | 暂缓 |
|
||||
|
||||
[AV-Dialog 附录](https://arxiv.org/html/2511.11124)报告 stage 1 用 128×A100、stage 2 用 32×A100;这不是说 8 卡数学上无法训练,而是完整重现所需成本不适合本项目当前优先级。
|
||||
先用现成 Qwen3B 做任务适配,不能把“训练参数少”当作“激活显存一定少”。
|
||||
|
||||
第一轮建议矩阵:
|
||||
|
||||
| ID | 设置 | 回答的问题 |
|
||||
|---|---|---|
|
||||
| A0 | G+A,原 MLP | 已有参考 |
|
||||
| A0t | G+A temporal,无局部视觉、匹配有效历史及容量 | 音频时序增强能解释多少收益? |
|
||||
| A1 | G+A+pooled V,有限历史 GRU | 时序建模本身是否足够? |
|
||||
| A2 | G+A+person GRU/cross-attention,相同历史/容量 | 人物身份结构是否有价值? |
|
||||
| A3 | A2 + 逐人活动监督 | 是否学到 AV 人物对应? |
|
||||
| A4 | A3 + 讲话对象监督 | 交互关系是否降低第三方误报? |
|
||||
| A5 | A4 + wearer 事件监督 | 是否改善事件而非仅活动 AP? |
|
||||
| B0 | 无局部 memory 的相同 Thinker LoRA | 普通任务微调收益 |
|
||||
| B1/B2 | local adapter / adapter+LoRA,同监督 | 内部融合是否优于强旁路? |
|
||||
|
||||
每项先 seed0 做数据/接口 smoke test;正式主比较至少相同 seeds 0/1/2,不按 seed0 测试提升挑方法。
|
||||
8 卡优先分配独立消融与 seed;只有实测单次训练需要时再用全部 DDP。记录失败实验和计算成本。
|
||||
|
||||
## 10. 后续代码落点(尚未创建)
|
||||
|
||||
- 先扩展 `local_turn_features.py` 的读取契约,整理 track-level 序列;保留旧 pooled 接口不变。
|
||||
- 拟新增 person temporal head;训练/推理配置显式保存 history、缺失处理、track 策略和监督覆盖。
|
||||
- 复用 `derive_easycom_interaction_events.py` 的时刻/人物映射,新增讲话对象与 wearer 专属评测;不要复用 generic transition 指标名称。
|
||||
- Ego4D 先新增 social coverage 审计,再决定是否共用 addressee loss。
|
||||
- 内部融合在 `train_omni_turn_lora.py` / `omni_cached_av.py` 的基础上单独实现和测试;不先改全局提取结果的含义。
|
||||
- 必测:未来媒体扰动不改变过去输出;有限历史/断点重置;人物排列等变;缺失与全空;overlap;时间匹配;阈值只用训练侧;adapter=0 与基线一致;更新权重后旧 KV 不复用。
|
||||
|
||||
推荐决策:先完成 A 路线和评测,确认视觉对应/讲话对象信号存在,再投入 B。若 A 的强基线已经实现目标,论文也不必强行要求 Thinker 内部融合。
|
||||
Reference in New Issue
Block a user