这是「流式视频理解 VLM 精读」系列第 1 篇。上一篇是领域地图,这篇扎进最核心也最微妙的问题:流式视频模型凭什么决定自己"该不该开口、什么时候开口"?
一个看似简单、实则很难的问题
人陪你看球赛,进球时会喊"进了!",但不会每分钟都喊。这份"何时说话"的直觉,对 VLM 而言是巨大的挑战——它不是一个"会与不会"的问题,而是"恰到好处"的问题:
- 说得太勤:噪音,讨人嫌,浪费算力;
- 说得太晚:事件已经过去,成了"马后炮";
- 说错时机:人家正安静看的时候你插嘴,打断体验。
我在 第 0 篇 提到过,这个挑战是从 VideoLLM-online 开始被系统性攻克的。本仓库把"主动开口"的技术方案分成了 6 条路线,从"加个头"到"用强化学习",我逐一拆解。
路线一:辅助回应头(Auxiliary Response Head)
思路:不动主模型,额外训练一个小分类器,在模型解码的中途(或某个 token 的 embedding 上)判断"该回应 / 继续沉默"。
- StreamBridge(Apple,2025.05):引入
<ACT>token + 一个二分类得分头——模型生成了<ACT>就表示"激活开口"。关键设计是把它放在解码早期预测,避免算出完整回答才能决定要不要开口。 - StreamMind(2025.03):叫 Cognition Gate Network——从 LLM 的浅层转移出的一个小网络,直接做
</response>/</silence>二分类,用低级语义快速判断。 - Dispider(2025.01):解耦为感知、决策、反应三阶段,用
<TODO>token 的 embedding 做二分类(BCE loss),配合<ANS>标记历史、<SILENT>在反应阶段做过滤。 - ViSpeak(2025.03):对
<seg>token 接一个 informative head,专用于"视觉指令反馈"。
优点:改动小、可复用现成模型、训练廉价、决策快(早期就能判)。 缺点:分类头是"额外监督",和主模型的语义不一定完全对齐;边界情况(模棱两可的时机)容易误判;需要额外拿解码层做归约,工程上略绕。
路线二:生成式触发 Token(Generative Token-based Trigger)
思路:让主模型自己在输出序列里生成一个特殊开口/沉默 token,看到它就触发开口。核心是"把开口变成一个生成目标"。
- VideoLLM-online(2024.06):流式 EOS token 预测。模型在生成过程中学会在哪输出结束符——结束即"开完口",自然实现了边看边回答问题。这是整条路线的开山鼻祖。
- Streaming Video Instruction Tuning / Streamo(2025.12):把沉默/待命/回应做成三态 token(
</Silence>、</Standby>、</Response>),用统一 next-token prediction 训练,并用 Focal Loss 处理"沉默占绝大多数、回应稀少"的正负样本极端失衡。 - AURA(2026.04):统一的
<|silent|>token 表示"静静观察",支持实时QA / 主动QA / 多轮QA,配 Silent-Speech Balanced Loss 平衡静默与开口。 - STRIDE(2026.03):把"何时开口"建模成序列去噪——激活 token 上做 0/1/[M] 去噪,加序列复制与选择性重掩码,缓解训练时开口信号稀疏的问题。
- 还有针对场景的:FitCoach(2024.07,健身教练,
<next>/<feedback>动作token)、AssistPDA(2025.03,监控告警,带任务自适应阈值的 EOS 预测)、ProAssist(2025.06,第一视角,逐帧[EOS]沉默预测)、LION-FS(2025.03,快慢双路)。
优点:和主模型完全对齐、无需额外头、能力可随模型一起扩展。 缺点:类别极端不平衡(沉默远超开口)是个顽疾;开口决策与内容生成耦合,可能为了"说点什么"而牺牲了"不说"的能力。
路线三:RL 优化主动响应(RL-optimized Proactive Response)
思路:不靠人工设计触发信号,直接用强化学习把"何时开口"作为优化目标——说得准、说得及时、说得对就是奖励。
- StreamPro(2026.05):两阶段训练——SFT 阶段用 CB-Stream loss 学开口偏好,再用 GRPO 结合 turn-level 和 trajectory-level 奖励调优。
- Thinking in Streaming Video / ThinkStream(2026.03):流式 RLVR——reward 同时考虑格式(用了
<silent>/<response>动作token)、时机(是不是对的时间)、准确性三方面。 - MMDuet2(2025.12):多目标 GRPO,其中包含 PAUC(precise action under cost)、Replication、In-Span、Prefix 等多项 reward,学会"该不该回"这种文本到文本的"NO REPLY"决策。
优点:决策不再靠手工启发式,能真正学到"恰到好处"的边界;与"推理+RL"的大趋势一致。 缺点:RL 训练成本高、调奖励权重脆弱、冷启动要依赖 SFT 先教会基本行为。
路线四:免训练 / 特征触发(Training-free / Feature-based)
思路:不训练,用相似度、场景图、验证解码等启发式在推理时决定触发。
- Foresight(2026.10):训练无关的 Siamese 冻结 Qwen3-VL-8B,两个共享 KV-cache 的实例一个"看"一个"规划"——决定何时推理、检查什么、按什么 FPS 采样。免训练 + 共享 KV-cache 极具工程吸引力。
- LiveStarPro(2026.06):推理时 Streaming Verification Decoding(SVeD)——边解码边验证,用验证结果决定回应还是继续沉默。
- Response-G1(2026.05):显式建模场景图,用查询引导的场景图证据做检索增强触发,免微调。
优点:零训练成本、即插即用、可作用于任何现成模型。 缺点:启发式上限有限,复杂时序事件下不如学习式方法准;需要精心设计特征或检索。
路线五:混合触发框架(Hybrid Trigger)
思路:把"免训练"和"训练式"结合,取长补短。
- StreamingClaw(2026.03):免训练的 Reminder 节点负责低成本的持续监控,训练式的场景相关触发 token 负责高置信度开口——一个"快通道 + 准通道"的混合。
优点:兼顾速度与准确度。 缺点:系统复杂度上升,两个通道的协同阈值要调。
路线六:学习回应时机(Learned Response Timing,Agent 化)
思路:更进一步——用 Agent 式的"就绪头" 主动决定推迟/立即响应,等到证据足够再开口。
- R3-Streaming Readiness Head(2026.05):产出
<Routine>把响应推迟,直到足够证据到达再回复。 - Progressive Online Video Understanding(2026.04):Active Thinking Decision Maker 基于 progress/confidence 决定"继续看 / 现在答",回答附带置信度,透明可解释。
- EgoSpeak(2025.02):第一视角独立的三分类器(背景/自己/别人)逐帧预测"是否轮到我说话",还能做前瞻性预测。
优点:从"要不要开口"升级到"要不要再等等"——更接近人类的交谈节奏,可解释性强。 缺点:决策链更长,延迟更高,需要权衡"等太久"的风险。
六条路线怎么选?(对比与建议)
| 路线 | 新增训练 | 决策速度 | 复杂度 | 适合场景 |
|---|---|---|---|---|
| 辅助回应头 | 小头 | 快(早期预测) | 低 | 复用一个训练好的大模型快速联动 |
| 生成式触发token | 全模型 | 中 | 中 | 从零训练一个"会自发言"的模型 |
| RL 优化 | 全模型+RL | 中 | 高 | 追求"恰到好处"、能负担训练成本 |
| 免训练触发 | 无 | 快 | 低 | 预算有限、快速搭原型 |
| 混合触发 | 部分 | 快+准 | 高 | 生产系统,求稳 |
| 学习时机(Agent化) | 小头 | 较慢 | 中 | 高价值场景(指挥、导师、教练) |
关键权衡:核心是 "决策质量和发声成本" 之间的平衡。能负担全量训练就选 token/RL 路线;要快速联动现成模型就选辅助头或免训练。
待办 / 观察
- 主动交互的下一步是与"边看边想"(本系列第 4 篇)结合——不是"决定开口就立刻说",而是"决定开口后先想一下再说"。
- 开口质量目前仍主要靠 benchmark 里的 Timeliness 指标衡度,但"何时该保持沉默"的反面评价仍偏弱(见第 5 篇评测篇)。
- 未来方向:多智能体回合(多个 dot 式的 agent 协同决定谁开口)。
资源索引(Paper / Code / Demo)
| 工作 | Paper | Code | Demo |
|---|---|---|---|
| StreamBridge | 2505.05467 | apple/ml-streambridge | — |
| StreamMind | 2503.06220 | xinding-sys/StreamMind | — |
| Dispider | 2501.03218 | Mark12Ding/Dispider | — |
| ViSpeak | 2503.12769 | HumanMLLM/ViSpeak | — |
| MMDuet(When to Speak) | 2411.17991 | yellow-binary-tree/mmduet | — |
| VideoLLM-online | 2406.11816 | showlab/videollm-online | — |
| Streamo(Streaming Video Instruction Tuning) | 2512.21334 | maifoundations/Streamo | — |
| AURA | 2604.04184 | aurateam2026/AURA | — |
| STRIDE | 2603.27593 | interlive-team/STRIDE | — |
| FitCoach | 2407.08101 | Qualcomm-AI-research/FitCoach | — |
| AssistPDA | 2503.21904 | — | — |
| ProAssist | 2506.05904 | pro-assist/ProAssist | — |
| LION-FS | 2503.03663 | JiuTian-VL/LION-FS | — |
| StreamPro | 2605.16381 | — | — |
| ThinkStream | 2603.12938 | johncaged/ThinkStream | — |
| MMDuet2 | 2512.06810 | yellow-binary-tree/MMDuet2 | — |
| Foresight | 2610.03123 | thenaivekid/foresight | — |
| LiveStarPro | 2606.17798 | sotayang/LiveStar | — |
| Response-G1 | 2605.07575 | — | — |
| StreamingClaw | 2603.22120 | — | — |
| Agentic Control(R3) | 2605.17921 | — | — |
| Progressive Online | 2604.18459 | — | — |
| EgoSpeak | 2502.14892 | jun297/EgoSpeak | — |
下一篇进入长时记忆:视频无限流,模型怎么做到"几个小时前的事还记得"?