VideoLLaMA2
阿里达摩院开源的视频-语言多模态大模型,同时理解视频时空动态和音频
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
阿里达摩院开源的视频-语言多模态大模型,同时理解视频时空动态和音频
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你把一段30秒的滑雪视频发给AI,它不仅能描述画面里有人在山坡上滑雪,还能准确说出:"这位滑雪者在一个陡峭的黑色钻石滑道上失误了,差点摔倒但最终稳住了平衡。"这就是VideoLLaMA 2正在做的事情——让AI真正理解视频里的时空动态和声音。
图1:DAMO-NLP-SG 组织头像
VideoLLaMA 2由阿里巴巴达摩院NLP团队开发
在GPT-4V出现之前,大部分多模态模型只能处理静态图片。然而,现实世界的信息更多以视频形式存在——监控录像、短视频、电影、会议录制……传统方法依赖人工标注的关键帧,不仅丢失了时序信息,处理效率也极低。2023年,VideoLLaMA(v1)首次将视频理解引入LLM指令微调框架,但受限于音频处理能力和时序建模精度,效果仍有较大提升空间。2024年6月,达摩院NLP团队发布VideoLLaMA 2,在Spatial-Temporal时空建模和音频理解两个方向取得突破,论文arXiv:2406.07476发表后在Papers With Code多个榜单登顶。
VideoLLaMA 2采用经典的多模态融合架构,核心分为三个组件:
build_vision_projector()构建,支持冻结视觉编码器只训练投影层的轻量化微调策略。图2:VideoLLaMA 2架构示意图
视频帧经视觉编码器提取特征,投影层对齐后注入LLM,与文本指令联合生成回答
代码架构方面,项目高度模块化:
videollama2/model/:包含各LLM backbone的实现(Llama、Mistral、Mixtral、Qwen2)videollama2/serve/:Gradio Web Demo(gradio_web_server.py)、CLI推理(cli.py)、分布式推理videollama2/train.py:完整的预训练+指令微调流程,支持DeepSpeed ZeRO-3分布式训练videollama2/videollama2_trainer.py:基于Transformers Trainer的定制化训练器VideoLLaMA 2支持四大核心任务:
在benchmark表现上,7B规模的VideoLLaMA 2-7B-16F在以下数据集上取得了同规模第一:
此外还有8x7B(Mixtral MoE)和72B(大参数)版本,后者以Qwen2-72B为decoder,在复杂场景理解上接近GPT-4V的效果。
尽管有Gradio Web Demo提供浏览器端交互,VideoLLaMA 2的部署并不简单:
硬件要求极高:7B模型FP16推理需要约16GB VRAM(推荐RTX 3090或A100),72B模型则需要约160GB VRAM。CPU推理不现实。
依赖复杂:需要Python >= 3.8、CUDA >= 11.8、PyTorch >= 2.2.0,还需手动编译flash-attn(pip install flash-attn==2.5.8 --no-build-isolation),以及从HuggingFace下载10GB+的模型权重。
不支持Docker:项目没有提供Dockerfile或docker-compose.yml,无法一键容器化部署。
在线体验:好在达摩院在HuggingFace Spaces部署了公开Demo,无需本地安装即可体验视频理解能力。
apply_chat_template对话流程,支持system message、few-shot示例VideoLLaMA 2的出现进一步压缩了视频理解LLM的开源生态。从2023年VideoLLaMA v1的700MB模型到2024年的72B参数集群,开源社区在一年内将视频多模态理解能力推向了新高度。它代表了三个趋势的交汇:
对于AI研究者,VideoLLaMA 2是复现前沿Video-LLM架构的绝佳起点;对于应用开发者,其Gradio Demo提供了零成本验证思路的可能;对于AI爱好者,它是理解"AI如何看电影"的一扇窗口。