Mobile-VideoGPT: Fast and Accurate Video Understanding Language Model
Authors: Abdelrahman Shaker, Muhammad Maaz, Chenhui Gou, Hamid Rezatofighi, Salman Khan, Fahad Shahbaz Khan Affiliations: Mohamed Bin Zayed University of AI, Monash University, Linkoping University
1. Motivation (研究动机)
问题背景
现有视频理解多模态大模型(如 LLaVA-OneVision 1.0B、LLaVA-Mini 8.4B)存在三大瓶颈:
- 参数量大: 模型体积动辄数 GB,无法部署到边缘设备
- 推理速度慢: LLaVA-Mini-8B 在 RTX A6000 上仅 4.6 tokens/sec,远达不到实时需求
- 冗余帧处理: 均匀采样的所有帧直接送入视频编码器,大量冗余计算
2. Idea (核心思想)
核心贡献
- 首个面向实时视频理解的轻量级多模态模型: 0.5B 参数,模型体积仅 1GB,VRAM 占用仅 3GB
- Attention-Based Frame Scoring: 基于空间注意力矩阵选取关键帧,减少 50% 视频编码器计算
- Efficient Token Projector (ET-Proj): FFN + AdaptivePool + ConvPosEnc 三阶段 token 压缩,替代传统 MLP projector
- SOTA 性能: 0.5B 模型在 6 个 benchmark 上平均超越同级模型 6 个点,吞吐量 2x 以上提升
整体思路概览
Mobile-VideoGPT 的核心是用 双视觉编码器 + 关键帧筛选 + 高效 token 投影 来同时兼顾速度与精度:
- CLIP-B/16 负责对全部帧提取空间特征
- Attention-Based Frame Scoring 从中挑选 Top-K 关键帧
- VideoMamba-M 只处理关键帧的时序信息
- ET-Proj 将两路特征压缩并投影到语言模型空间
- 小型 LLM(Qwen2.5-0.5B / 1.5B)负责生成回答
Figure 1 解读: 雷达图展示 Mobile-VideoGPT 与竞品在 6 个 benchmark(NextQA、PerceptionTest、MVBench、MLVU、EgoSchema、ActivityNet-QA)上的性能对比。Mobile-VideoGPT-0.5B 以 0.6B 参数达到 45.9 tokens/sec 的吞吐量,全面超越 LLaVA-OneVision-0.5B(1.0B 参数、22.7 tokens/sec)和 LLaVA-Mini-8B(8.4B 参数、4.6 tokens/sec)。注意参数量减少 40% 的同时吞吐量提升超过 2 倍。
3. Method (方法)
3.1 整体架构
Mobile-VideoGPT 由四个组件构成:
| 组件 | 具体模型 | 作用 |
|---|---|---|
| Image Encoder | CLIP-B/16 | 提取 T 帧的空间特征 |
| Video Encoder | VideoMamba-M | 提取 Top-K 关键帧的时序特征 |
| Token Projector | ET-Proj (, ) | 将空间/时序特征分别投影到语言空间 |
| Language Model | Qwen2.5-0.5B / 1.5B | 生成文本回复 |
3.2 Attention-Based Frame Scoring
核心思想: 利用 CLIP 空间特征的自注意力矩阵衡量每帧的”信息重要度”,选出最具代表性的 帧。
步骤:
-
CLIP 编码得到 ,展平为 ,其中
-
计算空间注意力矩阵:
-
按帧汇总注意力得分,得到帧级重要度向量
-
选取 Top-K 帧:
- 选出的 帧 reshape 后送入 VideoMamba 得到
关键超参: , (即选一半帧),实验证明该设置在精度和效率之间取得最优平衡。
3.3 Efficient Token Projector (ET-Proj)
两路特征分别通过各自的 ET-Proj 投影到统一的视觉-语言嵌入空间:
Figure 3 解读: 左侧 (a)(b)(c) 展示三阶段训练策略:Stage 1 预训练图像 ET-Proj,Stage 2 预训练视频 ET-Proj,Stage 3 联合指令微调(双 ET-Proj 可训练 + LLM LoRA)。右侧 (d) 展示 ET-Proj 内部结构,包含三个关键模块:(1) FFN 将输入 变换为 ;(2) Token Reduction 通过 AdaptivePool 将空间尺寸从 压缩到 ;(3) Positional Encoding 使用带 skip connection 的卷积位置编码保留空间/时序位置信息。
ET-Proj 伪代码:
class EfficientTokenProjector(nn.Module):
def __init__(self, C_in, C_out, H_r, W_r):
self.ffn = nn.Sequential(
nn.Linear(C_in, C_out),
nn.GELU(),
nn.Linear(C_out, C_out)
)
self.pool = nn.AdaptiveAvgPool2d((H_r, W_r))
self.pos_enc = nn.Conv2d(C_out, C_out, kernel_size=3, padding=1, groups=C_out)
def forward(self, x):
# x: [B, N, C_in]
x = self.ffn(x) # [B, N, C_out]
x = x.reshape(B, C_out, H, W) # reshape to spatial
x = self.pool(x) # [B, C_out, H_r, W_r] - token reduction
x_pos = self.pos_enc(x) + x # conv positional encoding + skip
return x_pos.flatten(2).transpose(1, 2) # [B, H_r*W_r, C_out]形式化表达:
3.4 代码映射
| 论文模块 | 代码位置(推测) | 说明 |
|---|---|---|
| CLIP-B/16 Image Encoder | 基于 LLaVA 框架的 vision encoder | 冻结,仅提取空间特征 |
| VideoMamba-M Video Encoder | 依赖 videomamba 包 | 冻结,提取时序特征 |
| Attention-Based Frame Scoring | 模型前向传播中的帧选择逻辑 | 基于 CLIP 特征自注意力计算帧得分 |
| Efficient Token Projector | 自定义 projector 模块 | FFN + AdaptivePool + ConvPosEnc |
| LoRA Fine-tuning | Qwen2.5 LLM + LoRA () | 仅在 Stage 3 启用 |
| 训练脚本 | scripts/Mobile-VideoGPT-0.5B_training.sh / scripts/Mobile-VideoGPT-1.5B_training.sh | 三阶段训练 pipeline |
安装依赖: Python 3.11, PyTorch 2.1.2, FlashAttention, VideoMamba
4. Experimental Setup (实验设置)
4.1 三阶段训练策略
| 阶段 | 训练内容 | 数据 | 可训练参数 | 学习率 |
|---|---|---|---|---|
| Stage 1: Image Proj Pretrain | ET-Proj + Image Encoder | CC595K | 仅 ET-Proj | |
| Stage 2: Video Proj Pretrain | ET-Proj + Video Encoder | CC595K | 仅 ET-Proj | |
| Stage 3: Instruction Tuning | 全模型微调 | ~1M 样本 (2 epochs) | 双 ET-Proj + LLM LoRA () |
4.2 训练与指令微调数据
指令微调数据: Kinetics-710, Something-Something-v2, VideoChat 对话, CLEVRER, WebVid VQA, NExT-QA, PerceptionTest (from LLaVA-178K), VideoChat2-IT 子集。总计约 1M 样本,远少于 LLaVA-OneVision 的 4.8M。
4.3 评测设置
- 输入分辨率统一为
- 采样 帧,选取 关键帧
- 评测覆盖 6 个 benchmark:NextQA、PerceptionTest、MVBench、MLVU、EgoSchema、ActivityNet-QA
- 边缘设备推理测试使用 Jetson Orin Nano
5. Experimental Results (实验结果)
5.1 主实验:六大 Benchmark 对比 (Table 1)
| Model | Params | Res. | Frames | Throughput | ActNet-QA | EgoSchema | MLVU | MVBench | NextQA | PercepTest |
|---|---|---|---|---|---|---|---|---|---|---|
| GPT-4V | - | 512x512 | 32 | - | 57.0 | - | 49.2 | 43.5 | - | - |
| Gemini-1.5-Flash | - | 768x768 | 32 | - | 55.3 | 65.7 | - | - | - | - |
| Gemini-1.5-Pro | - | 768x768 | 32 | - | 57.5 | 72.2 | - | - | - | - |
| LongVA-7B | 7.4B | 224x224 | 8 | 9.2 | 50.0 | - | 56.3 | - | 68.3 | - |
| Video-ChatGPT-3.8B | 4.2B | 224x224 | 100 | 14.1 | 35.2 | 36.2 | 31.3 | 32.7 | - | - |
| LLaMA-VID-7B | 7.3B | 336x336 | 1fps | 6.0 | 47.4 | 38.5 | 33.2 | 41.4 | - | - |
| Video-LLaVA-7B | 7.3B | 224x224 | 8 | 12.5 | 38.4 | 45.3 | - | 43.1 | - | - |
| LLaVA-Mini-8B | 8.4B | 336x336 | 1fps | 4.6 | 52.3 | 51.2 | 42.8 | 44.5 | - | - |
| LLaVA-OneVision-0.5B | 1.0B | 384x384 | 32 | 22.7 | 50.5 | 26.8 | 50.3 | 47.2 | 57.2 | 49.2 |
| Mobile-VideoGPT-0.5B | 0.6B | 224x224 | 16 | 45.9 | 51.6 | 31.4 | 47.9 | 53.5 | 65.4 | 58.7 |
| Mobile-VideoGPT-1.5B | 1.6B | 224x224 | 16 | 41.0 | 54.4 | 36.7 | 48.1 | 53.6 | 73.7 | 65.3 |
关键数字:
- 0.5B 模型 vs LLaVA-OneVision-0.5B: 平均高 6 个点,参数少 40%,吞吐量 2x
- 1.5B 模型 vs LLaVA-Mini-8B: 性能接近,但吞吐量 9x(41.0 vs 4.6 tokens/sec)
- 边缘设备 (Jetson Orin Nano): 0.5B 模型 7.3 tokens/sec,LLaVA-OneVision-0.5B 仅 3.4 tokens/sec(2.1x 加速)
Figure 1 解读: 雷达图展示 Mobile-VideoGPT 与竞品在 6 个 benchmark(NextQA、PerceptionTest、MVBench、MLVU、EgoSchema、ActivityNet-QA)上的性能对比。Mobile-VideoGPT-0.5B 以 0.6B 参数达到 45.9 tokens/sec 的吞吐量,全面超越 LLaVA-OneVision-0.5B(1.0B 参数、22.7 tokens/sec)和 LLaVA-Mini-8B(8.4B 参数、4.6 tokens/sec)。注意参数量减少 40% 的同时吞吐量提升超过 2 倍。
5.2 MVBench 细粒度分析 (Table 2)
Mobile-VideoGPT-0.5B 在 MVBench 20 个子任务上的表现:
| 类别 | 子任务 | Mobile-VideoGPT | 最强对手 | 差距 |
|---|---|---|---|---|
| Position | Moving Direction | 59.0 | LLaVA-Mini 31.0 | +28.0 |
| Object | Object Existence | 82.5 | LLaVA-OneVision 53.5 | +29.0 |
| Count | Moving Count | 63.5 | LLaVA-Mini 40.0 | +23.5 |
| Attribute | Moving Attribute | 81.0 | LLaVA-Mini 54.5 | +26.5 |
| Cognition | Counterfactual Inference | 57.5 | LLaVA-Mini 35.5 | +22.0 |
平均: 53.5(对比 LLaVA-OneVision-0.5B 的 47.2 高出 6.3 个点)
5.3 消融实验 (Table 3)
| 消融维度 | 配置 | Avg Acc | Throughput |
|---|---|---|---|
| Vision Encoder | Image only | 49.0 | - |
| Video only | 49.1 | - | |
| Dual (ours) | 51.4 | 45.9 | |
| Frame Selection | Without FS | 51.5 | 38.5 |
| Attention-Based (ours) | 51.4 | 45.9 | |
| Token Projection | MLP_proj | 51.0 | 39.2 |
| ET_proj (ours) | 51.4 | 45.9 |
关键发现:
- 双编码器设计比单编码器平均高 2.3 个点
- Attention-Based Frame Scoring 精度持平但吞吐量提升 19%(38.5 → 45.9)
- ET-Proj 比 MLP projector 精度高 0.4 且吞吐量提升 17%(39.2 → 45.9)
5.4 定性结果
Figure 4a 解读: 定性对比(冰球比赛视频,3分35秒)。LLaVA-Mini-8B 延迟 13.5s 且无法确定事件序列(“it is not possible to determine the exact sequence”),LLaVA-OneVision-0.5B 延迟 1.1s 但描述不完整。Mobile-VideoGPT-0.5B 仅 0.4s 延迟(47.5 tok/s),且准确捕获了”nighttime field hockey game”和最终比分”We win 7-2”等关键细节。
Figure 4b 解读: 定性对比(滑板视频,1分26秒)。三个模型都正确识别了滑板活动,但 Mobile-VideoGPT-0.5B 以 0.3s 延迟和 44.6 tok/s 的吞吐量远超竞品(LLaVA-Mini-8B: 4.7s/3.9 tok/s),在保持回答质量的同时速度快 10 倍以上。
5.5 个人思考与总结
优势
- 极致效率: 0.6B 参数 + 45.9 tokens/sec 的组合是目前视频理解领域最具实用性的配置之一,真正具备边缘部署能力(Jetson Orin Nano 上 7.3 tok/s)
- Frame Scoring 设计精巧: 利用已有的 CLIP 特征计算注意力,不引入额外参数,零成本获取帧重要度信息,同时减少 VideoMamba 的输入帧数
- ET-Proj 三段式压缩: FFN 维度映射 + 空间池化 + 卷积位置编码,比纯 MLP projector 在精度和速度上双赢
- 训练数据效率: 仅用 ~1M 指令微调样本(LLaVA-OneVision 用 4.8M),说明架构设计弥补了数据量的不足
局限性
- 分辨率低: 224x224 输入限制了细粒度任务(如 Fine-grained Action 仅 36.5,低于部分竞品)
- EgoSchema 不突出: 31.4 vs LLaVA-OneVision-0.5B 的 26.8 虽有提升,但远低于 Gemini-1.5-Pro 的 72.2,长时序推理仍有差距
- 帧数受限: 仅采样 16 帧,对长视频(分钟级)的细节捕获能力有限
与相关工作对比
- vs LLaVA-OneVision-0.5B: 参数少 40%、速度快 2x、精度高 6 点 — 全面碾压
- vs LLaVA-Mini-8B: 参数少 93%、速度快 9x、精度接近 — 效率革命
- vs MobileLLM (Liu et al., 2024c): MobileLLM 专注 LLM 压缩,Mobile-VideoGPT 是端到端视频多模态方案,互补而非竞争
可能的改进方向
- 提高输入分辨率(如 336 或 384)以改善细粒度任务
- 将 Frame Scoring 扩展为动态帧数选择(根据视频复杂度自适应 K 值)
- 探索 VideoMamba 的量化/蒸馏以进一步压缩 Video Encoder