跳转到内容

VideoLLaMA2 — 阿里达摩院音视频 Video-LLM 可运行实现

是什么

VideoLLaMA2 是阿里达摩院 NLP 团队发布的音视频 Video-LLM 开源仓库:在 video-llama-2023 思路上升级时空建模,提供 7B/72B 等级 checkpoint、Gradio demo、训练与评测脚本,并扩展 VideoLLaMA2.1-AV 音视频联合理解。

日常类比:如果 video-llama-2023 论文是「设计图纸」,VideoLLaMA2 就是带充电桩的整车——pip install -e . 后能本地起 demo、跑 MVBench/VideoMME、复现 leaderboard 分数。

模型族(README Model Zoo 摘要):

型号视觉编码器LLM训练帧数
VideoLLaMA2-7B-16FCLIP ViT-L/14@336Mistral-7B16
VideoLLaMA2.1-7B-16FSigLIP SO400MQwen2-7B16
VideoLLaMA2.1-7B-AVBEATs 音频 + 上述视觉Qwen2-7B16

为什么重要

不理解 VideoLLaMA2,国内 Video-LLM 工程实践会缺一块:

  • 论文到代码的闭环:arXiv 2406.07476 的 MVBench / VideoMME / EgoSchema SOTA 声明,都以本仓库为复现入口
  • 音视频一体:2.1-AV 分支把 BEATs 音频 encoder 和视觉帧对齐,比纯视觉 Video-LLM 更贴近真实视频(有声)
  • 与 Video-LLaVA 数据兼容:Quick Start 直接用 VideoLLaVA 数据集结构训练,降低「换模型不换数据」的迁移成本
  • 后继 VideoLLaMA3:README 已链到更新一代,读 2 代有助于理解国内团队迭代节奏

核心要点

  1. 时空建模增强:相比初代 Video-LLaMA,2 代在视觉 token 进 LLM 前加强时空聚合(论文称 advancing spatial-temporal modeling),16 帧输入是 7B 甜点配置。

  2. 三模式使用:Online pip install -e . 开发;Offline 包安装推理;Gradio serve/ 模块起 Web demo——覆盖研究到演示。

  3. 评测目录结构标准化eval/ 下按 EgoSchema、MVBench、VideoMME、ActivityNet-QA 分子目录,每套附官方数据链接——clone 后按树状图准备数据即可开跑。

实践案例

案例 1:起 Gradio 单模型 Demo

Terminal window
git clone https://github.com/DAMO-NLP-SG/VideoLLaMA2
cd VideoLLaMA2
pip install -r requirements.txt
pip install flash-attn==2.5.8 --no-build-isolation
python videollama2/serve/gradio_web_server_adhoc.py
# 默认加载 VideoLLaMA2-7B,浏览器打开本地端口上传视频问答

gradio_web_server_adhoc.py 是最快体验路径;多卡环境可用 controller + model_worker 架构挂多个 checkpoint。

案例 2:按 VideoLLaVA 数据训练

Terminal window
# 数据集按 README 放到 datasets/videollava_pt 和 videollava_sft
bash scripts/vllava/pretrain.sh # 预训练
bash scripts/vllava/finetune.sh # 指令微调

数据 JSON(如 valley_llavaimage.json)包含 703K 视频-文本 + 558K 图像-文本对;和 video-llava-2024 用的 Video-LLaVA 语料同源,适合对比「同数据不同架构」。

案例 3:EgoSchema 评测

Terminal window
# eval/egoschema/ 下放 good_clips_git/ 和 questions.json
python videollama2/eval/inference_video.py \
--model-path DAMO-NLP-SG/VideoLLaMA2-7B-16F \
--benchmark egoschema

EgoSchema 是长 egocentric 视频多选 QA;VideoLLaMA2-7B-16F 曾在 leaderboard 占据 ~7B 档前列,可与 long-video-retrieval-2023 的检索路线数字对照。

案例 4:decord 采帧 + lmms-eval 统一跑分

Terminal window
# 仓库内 eval/ 与 lmms-eval 二选一;横向对比建议后者
pip install -e . && cd ../lmms-eval && uv pip install -e ".[all]"
python -m lmms_eval \
--model videollama2 \
--model_args pretrained=DAMO-NLP-SG/VideoLLaMA2-7B-16F \
--tasks mvbench,videomme,tempcompass \
--batch_size 4 \
--output_path ./vlm2_video_suite.json

lmms-eval 内部处理视频 I/O;训练脚本 scripts/vllava/ 则用 decord 按 16F 均匀采帧——推理帧数须与 checkpoint 名一致

与同类对比

模型视觉 encoderLLM音频训练帧数代码仓
VideoLLaMA2CLIP / SigLIPMistral / Qwen22.1-AV 有 BEATs16本仓
llava-next OneVisionSigLIP 等Qwen2可变LLaVA-NeXT
qwen2-vl-2024内置 ViTQwen2部分动态transformers
video-llava-2024CLIP + ABPVicuna8/16迁入 LLaVA-NeXT
videochat-2023EVA / UMTVicuna8Ask-Anything

VideoLLaMA2 强项:音视频联合(2.1-AV) + VideoLLaVA 数据即插即用;弱项:无 OneVision 式 image→video 涌现叙事。

踩过的坑

  1. flash-attn 版本 pinned:README 要求 flash-attn==2.5.8,随意升级常导致 CUDA 编译失败或注意力数值漂移。

  2. transformers 锁定 4.40.0:复现论文需对齐版本;用最新 transformers 可能报 API 不兼容。

  3. HuggingFace 镜像:国内下载 checkpoint 可在脚本里 export HF_ENDPOINT=https://hf-mirror.com

  4. 评测视频下载分散:EgoSchema / VideoMME 等链接在 Google Drive / SharePoint,批量下载易断,建议按 benchmark 逐个准备。

  5. 16F vs 8F 帧数配置:checkpoint 名带 16F 表示训练时用 16 帧,推理时改帧数会影响分布,需与训练一致。

  6. CUDA 版本:README 要求 CUDA >= 11.8,与 flash-attn 编译环境需一致。

适用 vs 不适用场景

适用

  • 本地跑通 Video-LLM 推理 / demo
  • 复现 VideoLLaMA2 论文表格
  • 在 VideoLLaVA 数据上训练自己的视频指令模型
  • 音视频联合 QA(2.1-AV)

不适用

  • 极低显存(<16G)环境跑 7B-16F
  • 只要图像理解(用 LLaVA 更轻)
  • 生产级高并发 serving(Gradio demo 是研究用,商用需 vLLM 等改造)
  • 需要最新一代(团队已推 VideoLLaMA3,2 代作基线阅读)

历史小故事(可跳过)

  • 2023:初代 Video-LLaMA 仓库(同团队)奠定音视频 LLM 方向
  • 2024-06:VideoLLaMA2 论文 + 代码发布,VideoMME leaderboard 登顶 ~7B 档
  • 2024-10:2.1 系列 SigLIP + Qwen2,AV 分支发布
  • 2025-01:VideoLLaMA3 接力,2 代仍是读文献时最常引用的可运行基线

学到什么

  1. 开源 Video-LLM 的门槛在数据准备而非模型代码:eval/ 目录的价值是把「去哪下视频」写死
  2. 帧数命名写进 checkpoint 名:16F/8F 是部署时必须尊重的训练契约
  3. 国内团队偏好 Mistral/Qwen2 作 LLM 后端:和 LLaVA 系的 Llama 形成生态分工
  4. Gradio serve 模块是论文 demo 的标配:读懂 videollama2/serve/ 就懂多 worker 推理架构
  5. MLVU / VideoMME 榜单位置是 7B 档卖点:读 leaderboard 时核对参数量与帧数配置

延伸阅读

  • 论文:arXiv 2406.07476
  • HuggingFace Demo:spaces/lixin4ever/VideoLLaMA2
  • AV Demo:spaces/lixin4ever/VideoLLaMA2-AV
  • MSVC 数据集:HuggingFace DAMO-NLP-SG/Multi-Source-Video-Captioning
  • video-llama-2023 —— 前代论文
  • video-llava-2024 —— 同数据集竞争者

关联

反向链接

  • clip —— CLIP — Contrastive Language-Image Pre-training
  • decord —— Decord — Video-LLM 数据管线的高效视频解码库
  • egoschema-2023 —— EgoSchema — 三分钟第一视角长视频理解的诊断探针
  • internvideo —— InternVideo — 上海 AI Lab 视频基础模型套件
  • internvideo2-2024 —— InternVideo2 — 三阶段渐进训练,把视频基础模型扩到 6B
  • llava —— LLaVA — 开源多模态对话模型
  • llava-next —— LLaVA-NeXT — 图像/视频/交织统一多模态主线仓库
  • llava-onevision-2024 —— LLaVA-OneVision — 单图、多图、视频一个模型全搞定
  • lmms-eval —— LMMs-Eval — 多模态大模型统一评测框架
  • long-video-retrieval-2023 —— R-VLM — 长视频不靠均匀采帧,靠可学习检索选片段
  • longvideobench-2024 —— LongVideoBench — 一小时交织字幕视频的长上下文理解考卷
  • mvbench-2023 —— MVBench — 二十道题拆穿视频大模型真懂还是装懂
  • opencv —— OpenCV — 开源计算机视觉库与跨平台图像视频处理
  • pytorch —— PyTorch — 深度学习主流框架
  • qwen2-vl-2024 —— Qwen2-VL — 动态分辨率 + M-RoPE,工业级视频理解的里程碑
  • tempcompass-2024 —— TempCompass — 专门拆穿 Video LLM 有没有真懂时间
  • torchcodec —— TorchCodec — PyTorch 原生 GPU 视频解码与张量输出
  • transformers-video —— Transformers Video — HuggingFace 视频处理器与多模态输入管线
  • vid-llm-survey-2023 —— Vid-LLM Survey — 用大语言模型理解视频的全景地图
  • video-llama-2023 —— Video-LLaMA — 把音频和视频同时塞进大语言模型
  • video-llava-2024 —— Video-LLaVA — 投影之前先对齐,图像和视频共用一个 LLM
  • videochat-2023 —— VideoChat — 把视频、指令微调、多轮对话第一次放进同一个系统
  • videochat2 —— VideoChat2 — OpenGVLab 三阶段训练 Video-LLM 官方实现
  • videollama2-2024 —— VideoLLaMA 2 — 时空卷积连接器 + 音视频联合理解
  • videollama3 —— VideoLLaMA3 — 阿里达摩院第三代图像/视频多模态基座
  • videomme-2024 —— Video-MME — 视频多模态大模型的「高考卷」
  • videoprism-2024 —— VideoPrism — 冻结一个模型就能搞定所有视频理解任务
  • vllm-multimodal —— vLLM Multimodal — 多模态与视频 URL 高吞吐推理服务
  • yt-dlp —— yt-dlp — youtube-dl 活跃分支与万能站点视频下载器