StreamingVLM: Real-Time Understanding for Infinite Video Streams
核心思想
如何让视觉语言模型(VLM)理解无限长的视频流,同时保持低延迟和固定内存?本文提出 StreamingVLM:
- 流式 KV cache 管理:固定大小的缓存包含 attention sink + 文本窗口 + 视觉窗口
- 连续 RoPE:token 被驱逐后重新编号,防止位置编码越界
- 重叠块全注意力训练:近似推理时的注意力模式
方法详解
1. 推理方案:流式 KV Cache
维护紧凑的 KV cache,包含三种保留机制:
| 组件 | 长度 | 作用 |
|---|---|---|
| Attention Sink | $T_\text{sink} = 512$ | 系统提示 + 之前的输出 |
| 文本窗口 | $T_\text{window} = 512$ | 最近文本 token(长期记忆) |
| 视觉窗口 | $V_\text{window} = 16\text{s}$ | 最近视频 token(跟踪当前动作) |
非对称保留策略:视觉 token 先被驱逐,文本 token 保留更久——反映了视频理解中信息不对称的特点(文本承载更多语义信息)。
2. 连续 RoPE
问题:当 token 被驱逐时,后续 token 的位置编号不变 → 位置值可能超出训练范围 → 模型崩溃。
解决方案:token 被驱逐后,后续 token 索引左移以保持与保留 token 的数值连续性。
\[\text{驱逐后位置} = \text{连续重编号}(\text{保留 token 集合})\]对于 3D 视觉嵌入(时间、高度、宽度),索引按交错的视觉-文本布局组装。
效果验证:
| RoPE 方案 | Win Rate vs GPT-4o |
|---|---|
| Native RoPE | 60.32% |
| Contiguous RoPE | 99.12% |
差距巨大:连续 RoPE 使 win rate 从 60% 跃升至 99%。
3. 训练策略:重叠块全注意力
直接在超长序列上训练不可行($O(n^2)$ 成本)。解决方案:
- 长视频切分为连续块 ${C_1, C_2, \ldots}$,每块 $W$ 帧
- 相邻块有 $O$ 帧时间重叠
- 每块内部使用全注意力
- 配置:$W = 24\text{s}$,$O = 12\text{s}$ 重叠
为什么有效? 全注意力训练近似于推理时的流式注意力模式,且重叠保证了时间连续性。
视觉和文本 token 以 1 秒间隔交错排列。损失仅在与逐秒解说对齐的文本位置计算;静默秒使用占位符 “…“。
4. 数据整理流程
| 步骤 | 内容 |
|---|---|
| 原始数据 | 2,449 场完整比赛,5 种运动,6000+ 小时 |
| ASR 提取 | WhisperX 提取语音转文字 |
| GPT-5 清洗 | 保留 46.32%,编辑 37.89%,删除 15.79% |
| 最终数据 | 525K 重叠 SFT + 526K Live-WhisperX + 14K 高质量退火 |
5. 评估基准:Inf-Streams-Eval
- 20 场完整比赛(平均 2.12 小时)
- 分割为 100 秒块,每块 200+ 词
- GPT-5 评判模型输出的 win-rate
实验结果
解说性能
| 对比 | StreamingVLM Win Rate |
|---|---|
| vs GPT-4o mini | 66.18% |
| vs LiveCC-7B (infinite) | 99.12% |
VQA 结果(无 VQA 微调)
| 基准 | Qwen-2.5-VL-7B | StreamingVLM | 提升 |
|---|---|---|---|
| MVBench | 67.34% | 69.16% | +1.8 |
| LongVideoBench | 54.70% | 59.00% | +4.3 |
| OVOBench Realtime | 56.00% | 61.96% | +6.0 |
效率
- 延迟保持在 < 0.1s/token,跨无限序列稳定
- 支持 8 FPS 实时解说(单块 H100)
- 全注意力方案会超出内存;滑动窗口方案延迟会超过实时阈值
消融实验
视觉窗口大小
| $V_\text{window}$ | Win Rate |
|---|---|
| 0s | 52.90% |
| 8s | 62.60% |
| 16s | 66.18% |
训练策略影响
| 配置 | Win Rate |
|---|---|
| Qwen base + Live-WhisperX | 32.17% |
| + Inf-Streams-Train | 63.46% (+31.3) |
| + 高质量退火 | 66.18% |
个人思考
- 三组件 KV cache(sink + 文本窗口 + 视觉窗口)简洁优雅:分别保留全局上下文、语义记忆和感知信息。
- 连续 RoPE 的巨大影响(60% → 99%)说明位置编码对流式理解至关重要——位置越界会导致灾难性失败。
- 非对称保留(文本保留更久)符合直觉:视频帧高度冗余,而文本承载关键语义。
- 重叠块训练是优雅的折中:避免超长序列的 $O(n^2)$ 成本,同时近似流式推理模式。
- 实用场景明确:体育赛事实时解说,这是一个真实且有商业价值的应用。