跳转到内容

VideoChat-Flash — 分层压缩,让长视频理解又快又准

是什么

VideoChat-Flash 是上海 AI Lab / OpenGVLab 团队 2024 年底发布的长视频多模态大模型(arXiv 2501.00574)——它用**分层视频 token 压缩(HiCo)**把一小时电影压成 LLM 能吃得下的上下文,同时保持问答精度,每帧平均只用 16 个 token(约为 Qwen2-VL 的 1/120)。

日常类比:以前的 Video LLM 像把整本相册逐页扫描进 Word——页数一多就卡死。VideoChat-Flash 像先让剪辑师把每个片段做成缩略故事板(Clip 级压缩),再让主编根据你的问题删掉无关页(Video 级压缩)——你问「第三十分钟谁出现了」,模型不必一直盯着前两小时的每一帧。

系统沿 VideoChat 对话式视频理解主线演进:视觉侧用带时空注意力的视频编码器 + token merging,语言侧挂 Qwen2-7B;训练侧配套 LongVid 长视频指令数据集和**由短到长(short-to-long)**四阶段课程。开源 2B / 7B 多档权重,在 10,000 帧「大海捞针」评测上达到 99.1% 检索准确率。

为什么重要

不了解 VideoChat-Flash,下面这些事说不清:

  • 为什么「扩上下文窗口」不是长视频的唯一解——Gemini 一小时视频可膨胀到近百万 token,算力成本让工程落地困难
  • 为什么「极致压缩」和「理解精度」可以兼得——HiCo 在 Clip 级保留关键时空信息,在 LLM 深层再按文本相关性丢噪声,压缩比约 1/50 而主流 benchmark 几乎不掉点
  • 为什么 2025 年长视频评测开始强调 Multi-Hop NIAH——单帧插针太容易满分,多跳推理路径才能区分模型是真检索还是背题库
  • 为什么 VideoChat 系列从 2023 对话原型走到 2025 长视频 SOTA——同一团队用架构 + 数据 + 训练策略打包回答「小时级视频怎么实用」

核心要点

  1. HiCo 两阶段压缩:先把长视频切成若干 clip(每 clip 4 帧),编码器内用时空注意力 + 相似 token 合并,把每帧压到约 16 token;再在 LLM 浅层均匀丢少量 token、深层按「文本–视觉」相关性保留关键片段。类比:先按章节写摘要,再按读者问题删无关段落。

  2. Duration-based Sampling(按时长采样):短视频密采、长视频稀采,帧数在 64–512 之间随片长伸缩,避免「一律 8 帧」看不清细节或「一律 512 帧」算力爆炸。配合一句时间戳提示(「本片 N 秒,均匀采了 T 帧」)即可做 temporal grounding,无需额外模块。

  3. Short-to-long 四阶段训练 + LongVid:Stage 1 对齐压缩视觉特征;Stage 2 短视频预训练;Stage 3 混合 110 万图像 + 170 万短视频 + 70 万长视频指令;Stage 4 提分辨率后微调。LongVid 汇集 Ego4D、HowTo100M 等源,覆盖电影、新闻、教程等五类长视频 QA 任务。

实践案例

案例 1:官方推理(长视频问答)

# 官方 repo: https://github.com/OpenGVLab/VideoChat-Flash
from videollava.model.builder import load_pretrained_model
model_path = "OpenGVLab/VideoChat-Flash-Qwen2-7B_res448"
tokenizer, model, processor, _ = load_pretrained_model(model_path)
# 长片可采数百帧;HiCo 在编码阶段已压到 ~16 token/帧
video_tensor = processor["video"]("documentary_90min.mp4", max_frames=512)
response = model.generate(
input_ids=tokenizer("第三十分钟讨论了什么主题?"),
pixel_values={"video": video_tensor},
)
# 7B@448 在 LongVideoBench / VideoMME 长片子集上领先多数开源 7B

案例 2:HiCo 压缩率与 token 预算对比

主流 Video MLLM 每帧平均 token(论文 Table 1 量级):
模型 tokens/帧 10k 帧粗算总 token
------------------------------------------------------
Qwen2-VL 7B ~1924 ~1.9×10^7 (极重)
InternVL2.5 7B ~256 ~2.6×10^6
VideoChat-Flash 7B ~16 ~1.6×10^5 (HiCo)
LLaMA-VID 7B ~2 更省但长视频 QA 明显偏弱
HiCo 目标:在 1/50 量级压缩下,长短视频 benchmark 仍超过 GPT-4o / Gemini-1.5-Pro 部分指标

案例 3:Multi-Hop Needle-In-A-Video-Haystack 评测逻辑

# 伪代码:比单帧 NIAH 更难——要沿正确推理链找针,还要答关联问题
haystack_video = concat(random_clips, duration_hours=3)
correct_path = [img_a, img_b, img_c] # 每张带文字线索指向下一张
wrong_paths = [distractor_path_1, distractor_path_2] # 防止死记 COCO
Q1 = "从起点出发,沿正确线索找到的 needle 是哪张图?"
Q2 = "needle 画面里的人在做什么?" # 需要 Q1 找对才能答
# VideoChat-Flash 在 10,000 帧 haystack 上报告 99.1%(开源首个接近满分)
# LongVA ~91.8% @3k 帧;LLaMA-VID ~55% @10k 帧

踩过的坑

  1. Video 级 progressive dropout 主要服务推理:训练时与序列并行等加速策略兼容性差,论文默认训练不用、推理才开——部署若误以为训练已含此步,长视频延迟会和论文数字对不上。

  2. 16 token/帧 不是零信息损失:监控、体育等高速运动场景,Clip 级 merging 可能抹平细粒度动作;短视频 MVBench 仍强,但极快手势类任务可能不如高 token 预算模型。

  3. LongVid 依赖上游字幕与事件标注质量:Ego4D / HowTo100M 等源标注噪声会传导到五类 QA;模型在「教程步骤计数」强、在冷门片种可能泛化弱。

  4. 与纯检索路线分工不同:HiCo 是端到端生成式理解;若只需「找片段」不需对话,long-video-retrieval-2023 类检索器有时更省算力——Flash 的优势在统一对话 + 长上下文。

适用 vs 不适用场景

适用

  • 小时级电影、纪录片、会议录像的多轮问答与摘要
  • 算力敏感部署:16 token/帧 带来 5–10× 量级推理加速(相对 VideoChat2-HD 等前代)
  • 需要 needle-in-haystack 级长上下文检索的开源方案选型
  • VideoChat 生态用户升级到长视频能力(权重与 demo 同源 OpenGVLab)

不适用

  • 只需短视频(<1 分钟)且预算充足——video-llava-2024 等轻量 8 帧方案可能更简单
  • 强依赖音频理解——Flash 主线是视觉 + 文本,无原生音轨分支
  • 要求帧级精确到亚秒的运动分析——压缩合并对微动作不友好
  • 离线纯检索、不需 LLM 生成——专用检索管线可能更划算

历史小故事(可跳过)

  • 2024-12:论文上传 arXiv:2501.00574,标题直指 Hierarchical Compression for Long-Context Video Modeling
  • 2025 上半年:GitHub 开源多档权重(2B@224、7B@224/448、7B-1M 超长输入版);在 VideoMME、LongVideoBench、MLVU 等榜单刷新开源 7B 记录
  • 2025-06:README 披露在 VideoEval-Pro 等长视频专项 benchmark 上取得亮眼结果
  • 2026:ICLR 2026 Poster 录用;Multi-Hop NIAH 成为区分「真长上下文」与「背题」的新评测参考

学到什么

  1. 长视频要先砍冗余再谈扩窗口:相邻帧背景重复、LLM 深层只盯局部——HiCo 利用这两层冗余,比单纯把 context length 拉到百万 token 更工程化
  2. 训练课程要匹配测试片长:先短后长、混合指令微调,比一上来只喂小时片更稳——视觉基础与长程事件理解分工明确
  3. 评测要跟着能力升级:单针 NIAH 满分后,Multi-Hop 推理链 + 干扰路径才能测「检索 + 推理」闭环
  4. token 预算表是选型第一指标:同样 7B,1924 vs 16 tokens/帧 决定能否在单卡上跑三小时片——Flash 把「能跑」和「跑对」绑在一起
  5. 开源权重分档很讲究场景:2B@224 适合边缘试跑,7B@448 综合最强,7B-1M 专攻超长输入——选型时先定片长再定 checkpoint

延伸阅读

关联

  • videochat-2023 —— 直系前作:Embed/Text 双路径对话;Flash 继承品牌并专攻小时级压缩
  • qwen2-vl-2024 —— 对照:高 token/帧 + M-RoPE 长上下文 vs HiCo 极致压缩
  • long-video-retrieval-2023 —— 检索选段路线;Flash 用端到端生成 + 分层压缩
  • timechat-2024 —— 时间敏感定位;Flash 用轻量 timestamp prompt 达到可比 grounding
  • video-llava-2024 —— 短视频统一表征;Flash 解决其「8 帧均匀采样」长片瓶颈
  • tempcompass-2024 —— 细粒度时序评测;可检验压缩是否损伤速度/方向感
  • internvideo —— 视觉编码底座生态;Flash 可选 InternVideo2 增强短期时序
  • lmms-eval —— 复现 VideoMME、LongVideoBench 等榜单数字
  • vid-llm-survey-2023 —— 综述中的 Embedder×LLM 脉络;Flash 代表 2025 长视频效率派
  • video-understanding —— 专题枢纽

反向链接

  • internvideo —— InternVideo — 上海 AI Lab 视频基础模型套件
  • internvideo2-5-2025 —— InternVideo2.5 — 长富上下文 + HiCo 层次压缩
  • livevlm-2025 —— LiveVLM — 免训练流式视觉 token 压缩
  • lmms-eval —— LMMs-Eval — 多模态大模型统一评测框架
  • long-video-retrieval-2023 —— R-VLM — 长视频不靠均匀采帧,靠可学习检索选片段
  • longvila-2024 —— LongVILA — 把 VILA 从 8 帧扩到 2048 帧的长视频全栈方案
  • qwen2-vl-2024 —— Qwen2-VL — 动态分辨率 + M-RoPE,工业级视频理解的里程碑
  • st-llm-2024 —— ST-LLM — 把所有时空 token 交给 LLM,让它自己学时序
  • tempcompass-2024 —— TempCompass — 专门拆穿 Video LLM 有没有真懂时间
  • timechat-2024 —— TimeChat — 带时间戳的多轮视频助手,长视频也能精确定位
  • vid-llm-survey-2023 —— Vid-LLM Survey — 用大语言模型理解视频的全景地图
  • video-llava-2024 —— Video-LLaVA — 投影之前先对齐,图像和视频共用一个 LLM
  • videochat-2023 —— VideoChat — 把视频、指令微调、多轮对话第一次放进同一个系统
  • videochat2 —— VideoChat2 — OpenGVLab 三阶段训练 Video-LLM 官方实现
  • videollama2-2024 —— VideoLLaMA 2 — 时空卷积连接器 + 音视频联合理解