TT Lab
博客

한국어 English 日本語 中文

开始
博客

博客

视频-语言模型与流式传输:如何训练,以及为什么在体育基准测试中表现薄弱

状态:草稿(2026-10-13),未经验证。 论文和技术报告中的数值是在打开原文并结合条件后确认的。亲自动手做的仅有计算 Token 数量的运算(code/12_video_tokens.py),从未将视频-语言模型运行在我们的乒乓球视频上(未经验证)。实际服务(Gemini)的视频输入条件和慢速确认层设计将在 TT Score 模型解剖第 8 篇中讨论。本篇专注于「训练方式与基准测试」。 系列「阅读视觉模型 2」第 12 篇(最后一篇)。第 1 篇的 CLIP图像编码器在这里再次出现。

目录

1. 直觉:为语言模型安上眼睛

视频-语言模型通常连接现有的两个组件: 查看图像的编码器(第 1 篇的 CLIP 系列)和 处理文字的语言模型。在它们之间放置一个小的 连接层,将图像编码器输出的向量转换为语言模型可以像阅读单词一样读取的向量(「图像 Token」)。视频是通过抽取若干帧,分别转换为图像 Token 后连接起来的。

프레임을 토큰으로 바꿔 언어 모델에 넣는다 1–2fps 프레임 그림 인코더 CLIP 계열 연결 층 토큰 합치기 언어 모델 다음 낱말 학습 순서(LLaVA 형) 1) 그림-설명 짝으로 연결 층만 학습 인코더·언어 모델은 얼림 — 그림 토큰을 낱말처럼 2) 질문-답 데이터로 연결 층 + 언어 모델 학습 손실 = 답 부분의 다음 낱말 예측 영상판: 프레임 토큰을 잇고 시각 정보를 덧붙인다 스트리밍으로 바꾸는 장치 · 프레임마다 「지금 말할까」 를 맞히는 손실 VideoLLM-online · 1초마다 프레임과 자막 낱말을 번갈아 학습 LiveCC · 맨 앞 토큰 일부 + 최근 16초만 남기는 창 StreamingVLM 어느 쪽도 16.7ms 안의 순서를 정답으로 배우지 않는다
图:帧 → 图像编码器 → 连接层 → 语言模型,以及流式传输装置

训练的损失与语言模型相同,即 预测下一个词。输入「这个视频里运动员击球了多少次?」这个问题和图像 Token,让模型逐个预测正确答案句子的词。在这个简单的框架内,展示什么、展示得多么密集、以及给出什么样的句子作为正确答案,决定了模型的能力。

2. 如何训练

LLaVA:两阶段

LLaVA(NeurIPS 2023)确立了该系列的基本顺序(论文)。

  1. 仅训练连接层。 使用 59.5 万个图文对,冻结图像编码器(CLIP ViT-L/14)和语言模型,仅训练一个线性连接层。1 个 Epoch,约 4 小时。这一阶段使图像 Token「适配」语言模型的词汇空间。
  2. 指令跟随训练。 使用 15.8 万个问答格式的数据,共同训练连接层和语言模型。3 个 Epoch,约 10 小时。损失 仅施加在答案部分的词上 。

两个阶段均使用 8 张数据中心级 GPU 完成。有趣的是第 2 阶段数据的来源。它不是由人类编写的,而是 让无法看到图像的纯文本模型(GPT-4)根据图像的标题和物体边界框坐标的文本 来编写对话、详细说明和推理问答。这意味着正确答案的句子不是来自图像,而是来自「关于图像的文字」。

扩展到视频

Video-LLaVA(2023)从视频中均匀抽取 8 帧并以 224px 输入。第 1 阶段使用了 55.8 万个图文和 70.2 万个视频-文本,第 2 阶段使用了 66.5 万个图像指令和 10 万个视频指令(论文)。视频的几秒钟被概括为 8 帧。

Qwen2.5-VL:减少 Token 并引入视觉

为了输入长视频,必须节省 Token。Qwen2.5-VL(2025 年技术报告)是这样做的:

在视频中寻找事件区间的任务(Charades-STA)中,72B 模型的 mIoU 为 50.9(报告)。「几秒钟的区间」虽然能做一些,但其单位是秒。

流式传输:学习何时开口说话

实时解说不同于问题结束才回答的对话。视频源源不断地输入,模型必须 自行决定何时开口说话 。

这三者的正确答案都是 人类的话语(描述、字幕、解说) 。解说员可能会说「漂亮的正手!」,但不会说「接球方的弹跳在第 41 帧」。模型能够学习的时间分辨率很难超过正确答案文本的时间分辨率。

3. 亲自动手:10 秒多拍的 Token 价值

code/12_video_tokens.py 按照 Qwen2.5-VL 的方式(28×28 像素为一个 Token,两帧为一个批次)计算了 10 秒多拍所需的视觉 Token 数量(code/12_video_tokens.out.txt)。评估上限是每个视频 24,576 个 Token。

分辨率(每批次 Token) 1fps 2fps 8fps 30fps 60fps
448×252(144) 720 1,440 5,760 21,600 43,200(超出)
896×504(576) 2,880 5,760 23,040 86,400(超出) 172,800(超出)
1792×1008(2,304) 11,520 23,040 92,160(超出) 345,600(超出) 691,200(超出)

并且在该分辨率下将球的大小与单个 Token 进行了比较。我们将侧面拍摄的 1080p 视频中的球直径中位数 11 像素(TT Score 模型解剖第 2 篇的实测值)按比例缩小。

448×252: 공 지름 2.6px = 토큰 한 칸 폭의 9%
896×504: 공 지름 5.1px = 토큰 한 칸 폭의 18%
1792×1008: 공 지름 10.3px = 토큰 한 칸 폭의 37%

权衡显而易见。 如果要以 60fps 输入所有帧,即使将分辨率降低到 448×252 也会超出上限,此时球仅占单个 Token 区域的 9%。为了让球清晰可见而提高分辨率,则只能输入 1-2fps。单次弹跳的接触发生在 1 到 2 帧(60fps 下为 17-33ms),因此 Token 预算中没有空间同时容纳「密集的时间」和「小的物体」。顺便一提,VideoLLM-online 开源模型极端地将其缩减为每帧 10 个 Token(3×3 格 + 1)。虽然 10 秒 2fps 只有 200 个 Token,但它将整个画面仅视为 3×3 的格子。

4. 基准测试展示了什么

TennisTV:理解网球多拍

TennisTV 使用 F3Set 的 1,298 个网球视频构建了 8 个任务的 2,527 个问题(当前基于 v5,论文)。

对象 平均准确率
人类 89.2
随机 27.9
表现最好的模型(GPT-4.1) 45.1
GPT-4o / Gemini 2.5 Pro 44.5 / 43.9
Qwen2.5-VL-7B 38.8

表现最好的模型也仅达到人类的一半水平,只比随机高出 17 分。 多拍的击球次数统计中,人类为 92.5,表现最好的模型为 39.8。这与第 1 篇中自述 CLIP 不擅长「计数」的结论属于同一性质。

更有趣的是 增加帧数的实验(Qwen2.5-VL-7B,论文)。

输入 整体 多拍单位任务 击球单位任务
1fps 38.1 — —
16 帧 38.6 39.3 38.0
32 帧 38.8 38.8 38.9
64 帧 38.4 37.7 39.1

即使将帧数增加 4 倍,整体结果也几乎没有变化,多拍单位任务甚至有所下降。 展示更多帧并不意味着模型知道如何使用它们。 这可以解释为(推测)在训练时几乎没有见过这样的正确答案(关于密集时间的问答)。

F3Set:直接从比较中缺席

快节奏且密集的细粒度事件基准 F3Set(ICLR 2025)对 GPT-4V 进行了预备测试,向其展示了网球多拍的连续 12 帧。虽然识别出了项目、记分牌和比赛,但由于无法捕捉细粒度事件和 帧之间的顺序(击球方向等),因此将其从正式实验的比较对象中排除了(论文附录)。这意味着它没有达到与第 10 篇的帧级模型放在同一表格中的水平。

SportR:通过强化学习推导规则

SportR(2025)使用包含乒乓球在内的 5 个项目的 4,789 张图像和 4 个项目的 2,052 个视频来询问规则和犯规推导。结果分为两个方向(论文)。

对规则的 推导可以通过训练来增强,但作为推导素材的 密集感知(球在何时何地触碰)依然薄弱,这就是现状。

SCBench: 乒乓球解说

在 SCBench(2024) 中包含 719 个乒乓球视频片段(平均 9.96 秒)。乒乓球领域表现最好的模型(InternVL-Chat-2,410 亿参数)的解说得分为 5.92 分(满分 10 分)。评分是由其他语言模型从六个维度进行的(论文)。

5. 为什么薄弱:从训练方式来看的三个原因

  1. 标准答案是文字。 训练数据的标准答案是字幕、台词、解说以及语言模型编写的问答。人类在说话时并不会说出弹击的帧编号。因此很难从标准答案中学习到时间分辨率。
  2. Token 预算迫使时间和空间相互妥协。 如同上面的计算,如果输入所有帧,球就会变得比单个 Token 还小;而如果为了让球可见,帧率就会变得稀疏。
  3. 视觉在“计数”和“细节”上比较薄弱。 许多模型都会冻结 CLIP 系列的图像编码器来使用。我们在第 1 篇中已经看到,该编码器在计数和细粒度区分上比较薄弱。

6. 局限性(针对本篇的观点)

7. 与我们项目的关联

TT 的一句话总结。 视频-语言模型是通过解说员的话来学习的。然而,解说员并不会说“在第 41 帧弹击!”。正因如此,它们虽然很会说话,却并不清楚球究竟是什么时候落地的。所以,把判罚交给擅长数球的引擎,把说明交给擅长语言的模型,这才是正确的选择。

参考文献

登录后即可点赞

评论

还没有评论。

登录后即可发表评论