跳转到内容

Video-ChatGPT — 让大语言模型看懂视频并聊起来

是什么

Video-ChatGPT 是 MBZUAI 团队在 2023 年 6 月发布的视频对话大模型:把 CLIP 视觉编码器改成能读「时间维度」的版本,再接 Vicuna 大语言模型,让 AI 能对着一段视频回答开放式问题。

日常类比:以前的视频模型像只会做选择题的监考老师——给你几个选项让你选「跑步 / 吃饭 / 开车」。Video-ChatGPT 像陪你看片的解说员——你随时问「刚才那个人为什么回头?」「镜头切了几次?」它用自然语言回答。

架构极简:在 LLaVA 图像对话模型基础上,对视频帧做时空平均池化得到视频 token,过一个线性层投影进 LLM 词嵌入空间,再用 10 万条「视频 + 问答指令」微调。论文还贡献了首个视频对话定量评测框架,从信息正确性、细节、时序、一致性等维度打分。

为什么重要

不理解 Video-ChatGPT,下面这些事说不清:

  • 为什么 2023 年下半年 Video LLM 论文井喷——它把 LLaVA 的图像指令微调范式第一次系统搬到视频,并公开了大规模视频指令数据管线
  • 为什么后来的 MVBench、VideoMME 都要测「时序理解」——Video-ChatGPT 的评测框架把 temporal understanding 单独列为维度,推动了行业共识
  • 为什么「均匀采帧 + CLIP + 线性投影」这种朴素方案能跑通——它证明视频对话不必先造巨型视频基础模型,改编图像 LMM 就够起步
  • 为什么 VideoChat、Video-LLaVA 会把它当 baseline——它在 MSVD-QA、ActivityNet-QA 等早期视频 QA 上建立了可复现对照线

核心要点

  1. 时空特征怎么从 CLIP 里挤出来:对 T 帧视频,CLIP ViT-L/14 逐帧编码得到帧级 patch token;沿空间维平均 → 时间特征 t(T×D);沿时间维平均 → 空间特征 z(N×D);拼接 [t; z] 作为视频表示。类比:先看「每一秒发生了什么」(时间轴),再看「画面里有什么物体」(空间布局),最后拼成完整描述。

  2. 10 万视频指令对怎么来的:人工辅助 + 半自动管线。先从视频字幕数据集拿粗描述,标注员补充空间关系、事件顺序、推理链;再用 GPT 类模型扩写成问答对。规模比同期 VideoChat 的噪声描述更大、更干净,是模型能「聊细节」的数据基础。

  3. 定量对话评测框架:不只看 QA 准确率,还用 GPT-4 当裁判,按 Correctness / Detail / Context / Temporal / Consistency 五维给 1–5 分。这让「模型会不会瞎编」第一次能被数字化比较,而不只是肉眼看 demo。

实践案例

案例 1:推理时视频怎么送进 Vicuna

# 官方: https://github.com/mbzuai-oryx/Video-ChatGPT
# 伪代码:均匀采 T 帧 → CLIP 编码 → 时空池化 → 线性投影 → 与文本 token 拼接
frames = sample_uniform(video_path, num_frames=100) # 论文实验常用 100 帧
patch_tokens = clip_vit(frames) # [T, N, D]
t_feat = patch_tokens.mean(dim=1) # 时间:每帧空间平均
z_feat = patch_tokens.mean(dim=0) # 空间:跨帧平均
v_tokens = torch.cat([t_feat, z_feat], dim=0) # [T+N, D]
q_v = linear_projector(v_tokens) # 对齐 LLM 嵌入维
q_t = tokenizer("描述视频中发生了什么?")
inputs = torch.cat([q_v, q_t], dim=0)
answer = vicuna.generate(inputs)

案例 2:五维对话评测怎么用

评测流程(论文 §4):
1. 准备 500 条人工写的视频相关问题(含需要时序推理的)
2. 各模型生成自由文本回答
3. GPT-4 读「问题 + 视频字幕摘要 + 模型回答」,按五维打分
示例维度:
- Temporal:「回答是否体现了事件先后顺序?」
- Consistency:「前后两句是否自相矛盾?」
Video-ChatGPT 在 Temporal / Consistency 上优于同期 VideoChat,
说明时空池化 + 指令数据确实帮模型「记住时间线」。

案例 3:与 LLaVA 图像版的继承关系

组件对照:
LLaVA (图像) Video-ChatGPT (视频)
----------------------------------------------------------------
视觉编码器 CLIP ViT-L/14 同左,加时空池化
连接层 线性投影 g(·) 同左,输入从单图变视频 token
语言模型 Vicuna-7B Vicuna-7B(LLaVA 权重初始化)
训练数据 图像指令对 10 万视频指令对
关键差异:不是换一套大模型,而是在 LLaVA 骨架上
「改视觉前端 + 换视频指令数据」——复用率极高,训练成本低。

踩过的坑

  1. 100 帧均匀采样对长视频仍不够:论文自己承认,小时级视频会丢中间事件;后来的 Hour-LLaVA、LongVILA 都在补这条短板。

  2. 时空池化是粗粒度时序建模:平均池化把帧间运动「抹平」了,精细动作(如「先举手再放下」)容易和「一直举手」混淆——TempCompass、MVBench 的时序题正是为此而生。

  3. GPT-4 评测有裁判偏差:五维分数依赖 GPT-4 主观判断,不同 prompt 版本分数不可横比;工业界后来转向选择题 benchmark(VideoMME)降低方差。

  4. 指令数据仍含合成噪声:半自动扩写会引入「视频里看不到的细节」;模型可能学到「编得像真的」而不是「真的看见」——需要人工 spot-check。

适用 vs 不适用场景

适用

  • 短视频(<2 分钟)开放问答、监控摘要、教学视频解说
  • 需要快速复现「LLaVA → 视频」的最小可行路径
  • 作为 Video LLM 早期 baseline 与 ablation 对照

不适用

  • 长视频剧情理解、精确时间定位(需检索或专用时序模块)
  • 需要像素级 grounding 的任务(本文无框级对齐)
  • 低延迟在线流式对话(100 帧 CLIP 编码成本高)

历史小故事(可跳过)

  • 2023-06-08:论文上传 arXiv 2306.05424,与 LLaVA、VideoChat 同期竞争视频对话赛道
  • 2023 夏:GitHub 开源代码 + 10 万指令数据发布,成为 MBZUAI Oryx 系列代表作之一
  • 2023-11:同团队 MVBench / VideoChat2 论文引用 Video-ChatGPT 作对比,推动「静态转动态」评测标准
  • 2024 起:被 Video-LLaVA、Qwen2-VL 等后续工作列为经典 baseline,MSVD-QA 数字常被引用

学到什么

  1. 图像 LMM 改视频,先改「视觉 token 怎么聚合」再改数据——时空池化 + 线性层是最小改动,往往就够发第一篇
  2. 视频对话需要视频对话数据,不能只用图像指令微调——10 万对的规模说明了数据域匹配的重要性
  3. 评测维度要拆细:把 temporal / consistency 单列,才能指导下一轮架构改进
  4. 简单架构 + 好数据可以打败复杂连接层——同期 VideoChat 用更多可学习层,未必在对话质量上全胜
  5. 开源权重 + 评测脚本降低复现门槛——后续 Video-LLaVA、InternVideo2 都把它当必引 baseline,部分因为数字好复现

延伸阅读

关联

  • llava —— 架构母本:CLIP + 线性投影 + Vicuna 指令微调
  • clip —— 视觉编码器来源;时空池化在 CLIP patch token 上操作
  • videochat-2023 —— 同期视频对话方案;论文多处直接对比
  • video-llava-2024 —— 后继改进:对齐前置 + 统一图像视频表征,QA 分数更高
  • vid-llm-survey-2023 —— 综述把本文列为 Embedder×LLM 视频对话早期代表
  • mvbench-2023 —— 评测体系演进:从 GPT-4 五维到 20 任务选择题
  • tempcompass-2024 —— 专门测时序理解;暴露时空池化方案的短板
  • videomme-2024 —— 工业级长视频多选 benchmark,承接评测标准化
  • lmms-eval —— 复现 MSVD-QA / ActivityNet-QA 数字的统一入口
  • decord —— 视频解码基础设施,训练管线常用
  • video-understanding —— 专题枢纽

反向链接

  • 2d-tan-2019 —— 2D-TAN — 用二维时间图做自然语言时刻检索
  • clip —— CLIP — Contrastive Language-Image Pre-training
  • decord —— Decord — Video-LLM 数据管线的高效视频解码库
  • grounded-videollm-2024 —— Grounded-VideoLLM — 双流编码 + 时间 token,把「何时发生」写进 Video LLM
  • llava —— LLaVA — 开源多模态对话模型
  • lmms-eval —— LMMs-Eval — 多模态大模型统一评测框架
  • mvbench-2023 —— MVBench — 二十道题拆穿视频大模型真懂还是装懂
  • sharegpt4video-2024 —— ShareGPT4Video — 用 GPT-4V 级密集字幕,喂饱视频理解与生成
  • streamingbench-2024 —— StreamingBench — 流式视频理解的 18 任务在线大考
  • tempcompass-2024 —— TempCompass — 专门拆穿 Video LLM 有没有真懂时间
  • vid-llm-survey-2023 —— Vid-LLM Survey — 用大语言模型理解视频的全景地图
  • video-llava-2024 —— Video-LLaVA — 投影之前先对齐,图像和视频共用一个 LLM
  • videochat-2023 —— VideoChat — 把视频、指令微调、多轮对话第一次放进同一个系统
  • videomme-2024 —— Video-MME — 视频多模态大模型的「高考卷」
  • vidstg-2020 —— VidSTG — 用自然语言在长视频里框出「谁在何时何地」
  • vtg-llm-2024 —— VTG-LLM — 绝对时间 token + VTG-IT-120K,让 Video LLM 精确定位时刻