最新视频理解大模型之MiniGPT4-video

前言

随着大模型的爆火,多模态大模型也随之卷了起来,基本每隔一小段时间就会冒出一个新模型。

今天给大家带来一个最新发现的关于视频理解的多模态大模型。

它的名字是MiniGPT4-video,可以看的出来其是MiniGPT4的一个分支;MiniGPT4主要是图文理解,而MiniGPT4-video则是沿用其思路将其扩展到视频领域。

项目主页 https://vision-cair.github.io/MiniGPT4-video

论文链接 http://arxiv.org/abs/2404.03413.pdf

代码链接 https://github.com/Vision-CAIR/MiniGPT4-video

效果

废话不多说,先看看效果。

(1)为了测试其真实泛化效果,笔者随机从抖音找了一些视频,本地加载模型进行了尝试

demo

在这里插入图片描述

翻译一下模型的回复是:“这个视频是一个由婴儿和幼儿互相玩耍的片段合集。视频展示了孩子们的天真和好玩,他们参与各种活动,比如爬行、笑声和互相拥抱。视频配有欢快的音乐,氛围轻松愉快,充满了喜悦的气氛。
这个视频似乎没有特定的主题或信息,而是旨在展示年幼儿童的天性好奇和好玩。它可以用作娱乐或教育观众有关幼儿发展阶段的方式,或者仅仅是为了给他们带来微笑。
总的来说,这个视频是对童年的天真和快乐的温馨而令人愉悦的描绘。”

整体上效果还不错。

(2)论文中的一些体感case

(3)论文中的一些benchmark量化效果

怎么做到的呢

其整个模型架构设计沿用MiniGPT4的思路,即讲图像encode和文本encode拼在一起,然后送到一个已经开源的LLM模型中进行训练。具体的其一共分了三步进行逐步训练。

  • stage1 : Large-scale image-text pair pretraining

第一步主要就是训练一个图像特征提取器即一个线性层linear layer。具体的图像先经过EVA-CLIP编码,然后通过linear layer将其映射到LLM,然后使用captioning loss进行更新学习linear layer。

注意这里还没有上升到要处理视频,就是简单的一个图文pair预训练。目的就是让模型先对图片有一个简单的学习和理解。为后面的视频理解打下一个基础。

  • stage2 : Large-scale video-text pair pretraining

经过stage1后,模型已经对单张图片有了一个不错的理解了,现在开始让其对视频进行理解学习。所谓视频其实就是由一些列单个图片在时间序列进行串联组成的。

所以使用了如下模版来作为处理视频的模版:

<s>[INST]<Img><FrameFeature_1><Sub><Subtitle text_1>... <Img> <FrameFeature_N><Sub><Subtitle text_N><Instruction></INST>

其中<s>、[INST]、<Img>、<Sub>、</INST>都是特殊的占位符或者说分割符号。

<FrameFeature_1>位置就是放经过stage1的linear layer得到的图片特征。

其次一个视频除了有图像,还有字幕这个信息源,所以<Subtitle text_1>的位置就是为了放字幕。

<Instruction>就是放用户针对视频要提问的具体文本问题。

可以看到作者就是将一个视频的多张图片和其对应的字幕以及用户的问题直接平铺cat到一起,以此最后送到LLM进行推理理解。 具体在拼接的时候其实是拼接emb。即各个模态先各自过各自的特征网络得到emb,然后再拼接在一起送到上层的LLM也即transformer。

更具体的,作者用的LLM是Llama2-7B,其最大token窗口是4096,作者将一张图片视为64个token。然后每个视频抽45帧,所以一个视频的图像部分用掉了2880个token。同时预留了1000个token给字幕。当然随着用的底座LLM不同,其最大token窗口也是不一样的,那么抽帧数量等等上面也可以适当进行调整,比如论文中也对Mistral进行了训练,感兴趣的同学可以去看一下。

另外需要说明的是stage2这里使用了大量的视频数据,但是这些视频数据对应的输出文本其实都是对视频本身的描述,所以作者的Instruction部分就是预先定义了一些指令池,然后每条样本随机抽一个处理比如:Briefly describe these video.

  • stage3 : Video question answering instruction finetuning

经过stage2后模型已经对视频有了理解的潜力,只不过需要更多样性的指令来激发模型对指令的理解。所以stage3在训练上和stage2没有任何区别,只是训练数据不一样,其<Instruction>更加多样。

这里stage3这里的作用有点类似LLM的SFT。

  • 小结

可以看到stage1和stage2其实都是在为最终的视频理解打基础,从“看懂图片到看懂视频”打基础,其实大模型领域的预训练pretrain就是在打基础,所以作者也将stage1和stage2过程命名为了是pretraining。

而stage3才是真真的微调finetuning也即在pretrain的基础上通过少量高质量的指令微调数据泛化出最终的视频理解模型。

另外作者所有的训练都是基于Lora进行的,并没有进行全参训练,所以下载模型的时候可以看到各个阶段的模型大小都比较小。

总结

有资源(pretrain阶段需要吃大量的数据,笔者看了一下基本都是按照T起步的)的同学可以做以下两个事情来玩玩:

(1) 奉行scaling law 大法,继续提升性能:比如使用全参训练、尝试基于13B的底座进行训练,又比如使用更多的优质视频数据等等:

Panda-70M:https://github.com/snap-research/Panda-70M

HD-vila-100:https://github.com/microsoft/XPretrain/blob/main/hd-vila-100m/README.md

InternVid:https://github.com/opengvlab/internvideo

相信性能肯定会有一个非常大的提升。

(2)汉化:当前的MiniGPT4-video还是一个以英文为主的模型,还可以尝试将其进行汉化,模型方面可以选择一些中文底座比如qwen等等(其实之前已经有人对MiniGPT4进行了汉化:https://github.com/Coobiw/MiniGPT4Qwen),数据方面可以进行翻译获得。

相信不久MiniGPT4-video的一些汉化工作就会出现。

总的来说上面的工作都可以拿来练练技术和实践。至于有什么实际用处的话,笔者觉得可以多发散想想,比如目前比较火的sora,很多团队在复现其工作,其中数据就是个难点,如果MiniGPT4-video最终的效果还不错,可以考虑拿来做视频打标工作(最起码做银标数据也不错)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/616999.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编曲知识18:EQ均衡器 齿音处理 呼吸音处理 口水音处理

EQ均衡器 齿音处理 呼吸音处理 口水音处理小鹅通-专注内容付费的技术服务商https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_66151c90e4b092c1187ac699?course_id=course_2XLKtQnQx9GrQHac7OPmHD9tqbv 均衡器 均衡器 Equalizer(简称EQ) 人耳接受频率:20hz—20khz …

几种常见系统的下载地址,centos、debian、ubuntu、docker

以下是几种常见系统的安装及下载地址&#xff1a; CentOS&#xff1a; 安装&#xff1a;CentOS的安装通常涉及从官方网站下载ISO镜像文件&#xff0c;并使用这些镜像文件创建可启动的USB驱动器或CD/DVD来安装。在安装过程中&#xff0c;您需要选择所需的软件包和配置系统设置…

Qt控件---布局管理类

文章目录 QVBoxLayout&#xff08;垂直布局&#xff09;QHBoxLayout&#xff08;水平布局&#xff09;QGridLayout&#xff08;网格布局&#xff09;拉伸 QFormLayout&#xff08;表单布局&#xff09;QSpacerItem&#xff08;空白&#xff09; QVBoxLayout&#xff08;垂直布局…

【算法】分治-快排

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 前言1. 75. 颜色分类1.1 分析1.2 代码 2. 912. 排序数组2.1 分析2.2 代码 3. 215. 数组中的第K个最大元素3.1 分析3.2 代码 4. LCR 159. 库存管理 III4.1 分析4.2 代码 前言 分治就是分而治之 1. 75. 颜色分类 1.1 分析…

MySQL Innodb 中的排它锁、共享锁、意向锁、记录锁、间隙锁、临键锁、死锁讲解

一、MySQL 锁机制 MySQL作为流行的关系型数据库管理系统之一&#xff0c;在处理并发访问时&#xff0c;锁起着至关重要的作用。锁的使用可以确保数据的完整性&#xff0c;同时也是实现并发操作的必备工具。在MySQL Innodb 引擎中锁可以理解为两个方向的东西&#xff0c;一个是…

MES生产管理系统:私有云、公有云与本地化部署的比较分析

随着信息技术的迅猛发展&#xff0c;云计算作为一种新兴的技术服务模式&#xff0c;已经深入渗透到企业的日常运营中。在众多部署方式中&#xff0c;私有云、公有云和本地化部署是三种最为常见的选择。它们各自具有独特的特点和适用场景&#xff0c;并在不同程度上影响着企业的…

lanqiao.602 迷宫

题目&#xff1a; 代码&#xff1a; #include<iostream> #include<cstring> #include<algorithm> #include<queue> using namespace std; char mp[31][51]; //稍微开大一点 char k[4]{D,L,R,U}; //按字典序记录路径 int dirx[]{1,0,0,-1},d…

【ARM 裸机】汇编 led 驱动之原理分析

1、我们为什么要学习汇编&#xff1f;&#xff1f;&#xff1f; 之前我们或许接触过 STM32 以及其他的 32 位的 MCU ,都是基于 C 语言环境进行编程的&#xff0c;都没怎么注意汇编&#xff0c;是因为 ST 公司早已将启动文件写好了&#xff0c;新建一个 STM32 工程的时候&#…

transformer上手(3) —— 开箱即用的 pipelines

1 开箱即用的 pipelines Transformers 库将目前的 NLP 任务归纳为几下几类&#xff1a; 文本分类&#xff1a;例如情感分析、句子对关系判断等&#xff1b;对文本中的词语进行分类&#xff1a;例如词性标注 (POS)、命名实体识别 (NER) 等&#xff1b;文本生成&#xff1a;例如…

centos编译安装nginx1.24

nginx编译1.24&#xff0c;先下载安装包 机器通外网的话配置nginx的yum源直接yum安装 vim /etc/yum.repos.d/nginx.repo [nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org…

Android 包命名规范

Android包目录的命名规范会直接影响到整个APP攻城后期的开发效率和拓展性。 常用两种命名方式&#xff1a;PBL&#xff08;package by layer ) 和PBF(pakcage by Feature) layer 英/ˈleɪə(r)/ 翻译&#xff1a;层 feature 英/ˈfiːtʃə(r)/ 翻译&#xff1a;特色 1 Pac…

【MySQL】MySQL在Centos 7环境安装

目录 准备工作 第一步&#xff1a;卸载不要的环境 第二步&#xff1a;下载官方的mysql 第三步 上传到Linux中 第四步 安装 正式安装 启动 ​编辑 登录 准备工作 第一步&#xff1a;卸载不要的环境 使用root进行安装 如果是普通用户&#xff0c;使用 su - 命令&#…