当前位置: 首页 > article >正文

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

image.png

  • Paper:https://arxiv.org/pdf/2409.14485
  • Github:https://github.com/VectorSpaceLab/Video-XL
  • Huggingface:https://huggingface.co/sy1998/Video_XL
  • Author:Yan Shu et al. 上交,北京智源人工智能研究院

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

文章目录

  • 1 模型结构
    • 1.1 输入的处理
    • 1.2 Visual Context Latent Summarization
  • 2 训练策略与数据
    • 2.1 训练
    • 2.2 VICO(Video Clue Order Dataset)
  • 3 评测结果

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

http://www.kler.cn/a/383631.html

相关文章:

  • Linux下编译安装Kokkos
  • Mac系统下 IDEA配置Maven本地仓库
  • C++版循环安全队列DequeBuffer
  • 链表的详解
  • 解析mysqlbinlog
  • 网络架构与IP技术:4K/IP演播室制作的关键支撑
  • php rides限制访问频率
  • uniapp学习(010-2 实现抖音小程序上线)
  • 【ChatGPT】如何将ChatGPT的回答与外部数据进行结合
  • ThingsBoard规则链节点:Push to Edge节点详解
  • Yarn介绍 | 组成 | 工作流程
  • GESP4级考试语法知识(算法概论(三))
  • 加密通信的“军备竞赛”:科技的“猫鼠游戏”与永无止境的密码对抗
  • SpringSecurity6+OAuth2.0 从入门到熟练使用
  • 视频自动播放被浏览器阻止及其解决方案
  • 「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
  • 【神经网络加速】神经加速棒
  • Spring中@Autowired@Resource和@Inject注解区别
  • 记录学习react的一些内容
  • 123456789
  • K8S node节点没有相应的pod镜像运行故障处理办法
  • Spring Boot驱动的导师双选系统:设计与实现
  • 现货白银的交易技巧:成功进行趋势跟踪的技巧
  • 双指针算法篇——一快一慢须臾之间解决问题的飘逸与灵动(3)
  • IT专业入门,高考假期预习指南
  • Linux服务管理-DHCP