【大模型系列】Video-XL(2024.10)

image.png

核心1: 提出了一个Video-XL模型,可以有效地对小时级别的视频进行理解,在A100-80G GPU上可以处理2024帧,大海捞针任务(Needle-in-haystack)中取得100%的准确率;
核心2: 引入一个长视频数据集(2min~10min)VICO(Visual Clue Ordering)

1 模型结构

image.png

  • Visual encoder:CLIP-ViT-L
  • Projector:two-layer MLP
  • LLM:Qwen2-7B

1.1 输入的处理

  • 单图:分patch,每个patch分辨率为336x336(patch策略:grid=[h // 336, w// 336],最后再使用2x2 pooling减少token数量)
  • 视频(N-frame)和多图(N-image):分辨率resize到336x336,直接编码成NXM tokens,M表示每张图的视觉token数量
  • 视频抽帧:
    • 短视频(≤128帧),按1fps抽帧
    • 长视频(>128帧),均匀抽128帧

1.2 Visual Context Latent Summarization

给定一组视觉编码 X = { x 1 , x 2 , . . . , x n } X =\{x_1, x_2, ...,x_n\} X={x1,x2,...,xn},其中n表示token的数量,现在目标是将其压缩以提升效率和减少计算负担,文章中提到的策略如下:

  • 引入特殊的token:VST(visual summarization token) <vs>,在LLM将视觉特征压缩到该token上;

  • 首先将原始视觉编码切分成相同的数量w(默认1440)
    [ x 1 , x 2 , . . . , x n ] ⟶ p a r t i t i o n [ X 1 , X 2 , . . . , X n / / w ] X i = [ x ( i − 1 ) w + 1 , x ( i − 1 ) w + 2 , . . . , x i w ] = [ x 1 i , x 2 i , . . . , X w i ] [x_1,x_2,...,x_n] \stackrel{partition}{\longrightarrow} [X_1, X_2, ..., X_{n // w}] \\ X_i = [x_{(i-1)w+1}, x_{(i-1)w+2}, ..., x_{iw}] = [x_1^i, x_2^i, ..., X_w^i] [x1,x2,...,xn]partition[X1,X2,...,Xn//w]Xi=[x(i1)w+1,x(i1)w+2,...,xiw]=[x1i,x2i,...,Xwi]

  • 对于每个切片 X i X_i Xi,设置一个压缩比率 α i > 1 \alpha_i>1 αi>1(训练过程中随机从2,4,8,12,16中选择,推理时按需选择一个即可),这个压缩比率可以被切片长度w整除,表示每 α i \alpha_i αi个token被压缩到一个VST中,每因在此在该切片中要插入 k i = w / α i k_i = w / \alpha_i ki=w/αi VST:
    X i ⟶ i n t e r l e a v e [ x 1 i , . . . , x α i i , < v s > 1 i , . . . , x w − α i + 1 i , . . . , x w i , < v s > k i i ] X_i \stackrel{interleave}{\longrightarrow} [x_1^i, ...,x_{\alpha_i}^i, <vs>_1^i, ..., x_{w-\alpha_i+1}^i, ..., x_w^i, <vs>_{k_i}^i] Xiinterleave[x1i,...,xαii,<vs>1i,...,xwαi+1i,...,xwi,<vs>kii]

  • LLM依次处理这些切片 X i X_i Xi,并在每层引入额外的映射层 ( W Q v , W K v , W V v ) (W_Q^v, W_K^v, W_V^v) (WQv,WKv,WVv)来处理<vr>标签

  • 在切片 X i X_i Xi经过编码后,累加VSTs的编码,表示之前所有视觉的编码

  • 在对切片 X i + 1 X_{i+1} Xi+1编码时,直接将切片 X i X_i Xi累加的VSTs的编码作为<vr>标签的编码,参与当前切片的运算

2 训练策略与数据

2.1 训练

  • pre-training:模态对齐,优化projector层
    • Laion-2M
  • fine-tuning:全量微调
    • single-image:Bunny-695k,Sharegpt-4o-57K
    • multi-image:MMDU-5k
    • videos:NExT-QA-32k,Sharegpt-4o-2k,CinePile-10k,11k in-house samples,VICO-10k

2.2 VICO(Video Clue Order Dataset)

  • source:CinePile,Youtube
  • 每个长视频被切分成14s的切片,对每个切片使用VILA-1.5生成详细的描述,并使用ChatGPT按时间顺序排列

3 评测结果

  • 长视频评估:
    • Video-MME(55.5/61.0)比Qwen2-vl-7b(63.3/69.0)略低
    • MVBench(55.3)比Qwen2-vl-7b(67.0)略低
      image.png
      image.pngimage.png
### Video-XL 技术概述 Video-XL 是一种专注于长时间视频理解的超大规模视觉语言模型[^1]。其主要目标是通过高效的技术手段解决传统视频处理方法在面对长时序数据时遇到的计算复杂度和存储开销问题。 #### 核心技术:“视觉上下文潜在摘要” Video-XL 的核心技术被称为“视觉上下文潜在摘要”,该技术的核心理念是从原始视频帧序列中提取关键特征并将其压缩为更紧凑的形式,从而减少冗余信息的同时保留重要语义内容。这种机制依赖于大语言模型(LLM)的强大上下文建模能力,使得即使对于长达数小时的视频输入,也能实现高效的表征学习。 以下是关于 **Video-XL 框架** 和相关资源的一些具体说明: --- ### Video-XL 框架的关键组成部分 1. **时间维度上的分层抽象** - Video-XL 利用了多层次的时间尺度来捕捉不同粒度的信息。例如,在低层次上关注局部运动模式;而在高层次上则聚焦全局叙事结构。 2. **跨模态融合模块** - 为了更好地支持多模态任务(如视频问答、动作识别),框架引入了一个专门设计用于结合文本提示与图像/视频片段之间关系的学习组件。 3. **可扩展架构** - 整体系统被构建得非常灵活且易于扩展,允许研究人员轻松集成新的算法改进或者调整参数配置以适应特定应用场景需求。 --- ### 获取 Video-XL 相关资料的方法 目前官方尚未公开完整的库文件或正式版技术文档,但可以通过以下途径获取更多信息: - 访问项目主页 (如果存在),通常会提供详细的 API 描述以及安装指南; - 查阅由合作机构发布的论文和技术报告,这些材料往往包含了深入理论分析及实验验证过程的结果展示; 下面给出一段简单的 Python 脚本示例,演示如何加载预训练好的 Video-XL 模型进行推理操作: ```python from videoxl import VideoXLModel, VideoXLPipeline # 初始化模型实例 model = VideoXLModel.from_pretrained("path/to/pretrained_model") # 创建管道对象简化流程控制 pipeline = VideoXLPipeline(model) # 输入待处理的数据样本路径列表 input_videos = ["example_video_0.mp4", "example_video_1.mp4"] # 执行预测任务 results = pipeline(input_videos) print(results) ``` 注意上述代码仅为示意用途,请根据实际环境替换相应部分。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值