开源项目 | 多模态大模型VideoGPT+:集成图像和视频编码器以增强视频理解

_VideoGPT+:_结合图像和视频编码器的优点,通过自适应池化策略提升视频理解性能,并在多个基准测试中表现优异。

项目地址:https://github.com/mbzuai-oryx/VideoGPT-plus

引言

现有的视频理解模型在处理视频时,依赖于图像编码器或视频编码器,但各有局限性。图像编码器擅长捕捉帧序列的丰富空间细节,但缺乏显式的时间上下文;视频编码器提供时间上下文,但受计算限制,通常只能处理稀疏的低分辨率帧,导致上下文和空间理解有限。

如何在视频理解中有效结合图像编码器的空间细节和视频编码器的时间上下文;如何在保证效率的同时,捕捉细粒度的时间动态。

该问题的研究相关工作有:早期的图像对话模型如BLIP-2、MiniGPT-4和LLaVA等;扩展这些模型到视觉定位任务的尝试;以及视频对话模型如Video-ChatGPT、Video-LLaMA等。这些工作大多使用预训练的视频编码器,但受计算限制,效果有限。

VideoGPT+与各种SoTA模型在多个视频基准测试中的性能比较。VideoGPT+在视频对话基准测试中展示了比各种模型更好的性能:VCGBench和MVBench,零样本视频问答:MSVD-QA、MSRVTT-QA、ActivityNet-QA。还评估了VCGBench-Diverse,该测试涵盖了18个广泛的视频类别(包括密集字幕、空间理解和推理)。

方法概述

VideoGPT+,用于解决视频理解中的空间和时间信息结合问题。具体来说,

双编码器设计:VideoGPT+采用了图像编码器和视频编码器的双编码器设计,分别捕捉空间细节和时间上下文。图像编码器使用CLIP模型(ViT-L/14),视频编码器使用InternVideo-v2模型。

分段采样策略:为了捕捉细粒度的时间动态,VideoGPT+采用了分段采样策略,将视频分割成多个小段,并对每段的帧进行编码。相比均匀采样,分段采样减少了自注意力计算复杂度,同时确保视频编码器在每个小段内高效捕捉时间线索。

视觉适配器模块:为了整合图像和视频特征,VideoGPT+引入了一个视觉适配器模块,通过投影和池化操作,将图像和视频特征映射到共同的空间,减少计算复杂度。

大语言模型:最后,VideoGPT+将图像编码器和视频编码器的特征拼接起来,输入到大语言模型(如Phi-3-Mini-3.8B)中进行处理,生成对视频问题的综合响应。

实验细节

数据集:实验使用了多个数据集,包括VideoInstruct100K、VCG+112K、VideoChat和WebVid等。VideoInstruct100K通过半自动注释管道生成75K指令调优问答对,VCG+112K通过改进的注释管道生成112K问答对。

训练设置:训练分为两个预训练阶段和一个指令调优阶段。预训练阶段分别在CC-595K数据集上训练图像编码器和视频编码器,指令调优阶段使用LoRA进行微调。

采样策略:在VCGBench、VCGBench-Diverse和零样本问答任务中,从视频中采样16帧;在MVBench任务中,采样8帧。

评估指标:在VCGBench上,评估信息的正确性、细节导向、上下文理解、时间理解和一致性;在VCGBench-Diverse上,额外评估密集视频字幕生成、空间理解和视觉推理能力;在MVBench上,评估20个细粒度时间理解任务;在零样本问答任务上,评估四个开放数据集的准确性和得分。

实验结果分析

定量评估

VCGBench:VideoGPT+在VCGBench上的平均得分为3.28,超过了之前最好的方法(Video-ChatGPT),提升了0.25(5%)。

VCGBench-Diverse:VideoGPT+在VCGBench-Diverse上的平均得分为2.47,超过了所有之前的方法。在密集字幕生成、空间理解和视觉推理能力方面,分别达到了1.38、2.80和3.63的得分,显著提升了空间和时间理解。

MVBench:VideoGPT+在MVBench上的平均得分为58.7%,比之前的最佳方法(VideoChat2)提升了7.6%。在14个任务中取得了最佳结果,并在4个任务中排名第二。

零样本问答:VideoGPT+在四个零样本问答数据集上的表现均优于之前的方法,显示了其在未见视频中的适应能力和生成准确上下文相关响应的能力。

定性分析

对 VideoGPT+ 在多个任务和领域的性能进行全面评估。

提炼关键问题

问题1:VideoGPT+是如何利用分段采样策略来捕捉细粒度的时间动态的?

VideoGPT+ 采用了分段采样策略,将视频分割成多个小段,并对每段的帧进行编码。具体来说,输入视频被分成K个段,每个段包含T/K帧。每个段被下采样到低分辨率n×h×w×c进行视频编码。相比均匀采样,分段采样更好地与双编码器设计对齐,使视频编码器能够在每个段内高效捕捉丰富的temporal cues。分段采样策略确保了模型能够在不增加计算复杂性的情况下,捕捉到视频中的细粒度时间动态。

问题2:VideoGPT+中的视觉适配器模块是如何促进图像和视频特征集成的?

VideoGPT+ 引入了一个视觉适配器模块,用于促进图像和视频特征的集成。该模块首先对图像和视频编码器的输出嵌入进行投影,分别通过独立的视觉语言(V-L)投影层Wg和Wh,将这些多维特征映射到语言空间。投影层是可训练的,而视觉编码器保持冻结状态,从而保留了丰富的预训练表示。投影后的嵌入被重塑回网格形式,并经过一个2×2的自适应令牌池化操作,该操作在局部和全局特征的空间维度上操作,减少了令牌长度,使得更大的视觉上下文能够适应相同的LLM上下文窗口。最终,池化的嵌入被连接起来,形成一个包含详细空间表示和全面时间上下文的序列,输入到LLM中进行处理。

问题3:VideoGPT+在VCGBench-Diverse基准上的表现如何,与其他方法相比有哪些优势?

VideoGPT+ 在VCGBench-Diverse基准上的平均得分为2.47,超过了所有之前的方法。具体来说,VideoGPT+在详细字幕、空间理解和视觉推理能力方面分别达到了1.38、2.80和3.63的得分。与其他方法相比,VideoGPT+的优势在于其双编码器设计,结合了图像编码器的空间细节和视频编码器的时间上下文;轻量级视觉适配器模块有效地将图像和视频特征映射到共同空间;分段采样策略保留了细粒度的时间动态。这些设计使得VideoGPT+在处理多样化视频内容和复杂推理任务时表现出色。

项目部署

安装基础依赖环境

conda create --name=videogpt_plus python=3.11   conda activate videogpt_plus      git clone https://github.com/mbzuai-oryx/VideoGPT-plus   cd VideoGPT-plus      pip install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu118   pip install transformers==4.41.0      pip install -r requirements.txt      export PYTHONPATH="./:$PYTHONPATH"   

此外,安装 FlashAttention 可用于进行训练

pip install ninja      git clone https://github.com/HazyResearch/flash-attention.git   cd flash-attention   python setup.py install   

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值