【LLM多模态】视频理解模型Cogvlm-video和MVBench评测基准

news2024/12/27 15:52:20

note

  • Cogvlm-video模型通过视频抽帧(24帧,每帧大小为224 x 224)后经过ViT进行图像编码(ViT中添加了2x2的卷积核更好的压缩视觉信息),使用adapter模块更好的将视觉特征和文本特征对齐,得到的图像特征和文本特征拼接后,送入语言模型的decoder解码器。
    • 模型结构代码:cogvlm_video_chat/ZhipuAI/cogvlm2-video-llama3-chat/modeling_cogvlm.py
    • 代码的VisionExpertAttention类的Transpose a 3D tensor [B, L, H*HD] into a 4D tensor with size [B H L HD]
  • MVBench评测集准:大多数测试主要集中在静态图像任务上的空间理解,而忽视了动态视频中的时间理解。MVBench评测集准在20个视频理解任务上评测模型,20个任务可以分为九大类。下图展示了 MVBench 评测基准中的 20 种任务,这些任务被分为两大类:空间理解任务(Spatial Understanding: Inferring from a single frame)和 时间理解任务(Temporal Understanding: Reasoning based on entire video)。
    • 自动QA生成:作者设计了一个自动化的QA生成范式,将公共视频注释转换为多项选择QA,以评估MVBench中的每个任务。
  • VideoChat2模型:为了在MVBench上取得良好的性能,作者开发了一个强大的视频MLLM基线模型VideoChat2,并通过渐进式多模态训练与多样化的指令调整数据进行训练。
  • 外部的视频理解微调代码:https://github.com/modelscope/ms-swift/blob/main/docs/source_en/Multi-Modal/cogvlm2-video-best-practice.md

文章目录

  • note
  • 一、cogvlm-video视频理解模型
    • 1. 模型结构
    • 2. 训练过程
      • (1)pre-training
      • (2)post-training
  • 二、视频理解能力
    • 空间理解任务(Spatial Understanding: Inferring from a single frame)
    • 时间理解任务(Temporal Understanding: Reasoning based on entire video)
  • 三、相关实验结论
  • Reference

一、cogvlm-video视频理解模型

  • CogVLM2-Video模型:通过抽取关键帧的方式,实现对连续画面的解读,该模型可以支持最高1分钟的视频(这里1min指cogvlm2-video-llama3-base的效果)。
    • chat模型是取前24帧,base模型是取整个视频的平均24帧
    • 支持英文(但实测有时能回答中文,估计中文训练数据较少)
  • CogVLM2 在预训练阶段和微调阶段都使用具有视觉专家的模型结构,支持高达 1344 × 1344 像素的输入分辨率。视频理解模型CogVLM2-Video 提出了一种自动化时序定位数据构建方法,并引入多帧视频图像和时间戳作为编码器输入。
模型名称cogvlm2-video-llama3-chatcogvlm2-video-llama3-base
基座模型Meta-Llama-3-8B-InstructMeta-Llama-3-8B-Instruct
语言英文英文
任务视频理解, 单轮对话模型视频理解, 基座模型, 不可对话
Int4模型11
文本长度2K2K
图片分辨率224*224(视频, 取前24帧)224*224(视频, 取平均24帧)

1. 模型结构

  • 在视频理解领域,现有的模型通常缺乏时序定位能力,无法准确关联视频帧与具体时间戳;而Cogvlm2-video模型通过融合视频抽帧和时间戳信息,提高了模型在视频理解和时间定位方面的能力。
  • 视频抽帧(24帧,每帧大小为224 x 224)后经过ViT进行图像编码(ViT中添加了2x2的卷积核更好的压缩视觉信息),使用adapter模块更好的将视觉特征和文本特征对齐,得到的图像特征和文本特征拼接后,送入语言模型的decoder解码器。
  • 开源的cogvlm2-video-llama3-base和cogvlm2-video-llama3-chat模型将cogvlm2的语言模型从chatglm改为llama3

论文中的模型架构如下:
在这里插入图片描述

2. 训练过程

(1)pre-training

数据构造策略:用模型在开源数据上打标再人工check、使用合成数据
由于cogvlm2-video是直接加载cogvlm模型权重进行SFT微调,所以pretraining这部分是cogvlm模型的pre-training,即预训练分为两阶段:

  • 第一阶段是基于图文对数据进行image captioning loss的优化
  • 第二阶段是image caption和REC两个数据上进行预训练,这里的REC是bounding box预测任务(只对bounding box的坐标答案计算loss)

(2)post-training

在这里插入图片描述
数据构造策略:

  • 大量VQA数据
  • TQA数据:用VLM逐帧理解视频,然后使用GPT-4o进行数据过滤(会过滤场景内容变化较小的video,使用的prompt如下)
We extracted several frames from this video and described each frame using an image caption model, stored in the dictionary variable 'image_captions: Dict[str:str]'. In 'image_captions', the key is the second at which the image appears in the video, and the value is a detailed description of the image at that moment. Our image captions may contain hallucinations and errors. If you find any information that seems incorrect, please ignore the erroneous information. image_captions={images_caption} Please determine whether there are significant scene changes in each second of the video based on the frame descriptions. If there are significant changes, output \"Yes\"; otherwise, output \"No\".For example, if the description continuously mentions a pool scene or a kitchen scene, then return \"No\". If the description first mentions an indoor scene and then a beach scene, then return \"Yes\". Output your final answers directly. Do not give out your reason.
  • 注意这里的训练数据包括时间问答数据(如问某个动作在第几秒等)
  • 构建数据(构建视频的问答对)使用的prompt如下:
We extracted several frames from this video and described each frame using an image caption model, stored in the dictionary variable 'image_captions: Dict[str:str]'. In 'image_captions', the key is the second at which the image appears in the video, and the value is a detailed description of the image at that moment. You will play two roles: a human asking a question related to the biggest change in the video and an intelligent chatbot designed for video understanding.Your question and answer should be based on the information provided by 'image_captions'.\n" "image_captions={images_caption}\nPlease generate the response in the form of a Python dictionary string with keys \"Human\" for question and \"Bot\" for answer. Each corresponding value should be the question and answer text respectively. For example, your response should look like this: {\"Human\": \"Your question here...\", \"Bot\": \"Your answer here...\"}. Do not mention variables like 'image_captions' in your response. Always generate the question and the answer as if you are directly looking at the video.The questions you generate should focus on the biggest scene change. Do not generate questions that can be easily answered from a single image. Here are some examples of what we expect:\nExample 1: {\"Human\": \"At what second does the girl appear?\", \"Bot\": \"The girl appears at the 3rd second in the video.\"}\nExample 2: {\"Human\": \"When does the video switch from the swimming pool to the grass?\", \"Bot\": \"At the 3rd second.\"}\nExample 3: {\"Human\": \"When does a significant scene change occur in the video? \", \"Bot\": \"At the 10th second, the scene changes from the playground to the classroom.\"}\nIf you think it is not possible to generate such questions and answers from the given image captions, output \"None\" directly. Keep your answers concise and accurate and generate only one question and answer pair.

训练策略:
(一)CogVLM2和GLM-4V在post-training阶段:

  1. 第一阶段:
  • 在这个阶段,模型使用所有视觉问答(VQA)训练数据集和大约300K的对齐语料库进行训练,以增强模型的基础能力。
  • 模型进行3000次迭代,学习率为1e-5,全局批次大小为2340。
  • 这个阶段的目的是提升模型对图像相关问题回答的能力,同时保持对图像内容的准确理解。
  1. 第二阶段:
  • 在第二阶段,模型使用一部分VQA数据集和大约50K的偏好对齐数据进行(DPO)训练,以优化模型的输出风格,使其更符合人类的偏好。
  • 这个阶段将全局批次大小减少到1150,并进行750步的训练。
  • 这个阶段的目标是使其更加符合人类的表达方式和偏好,提高模型在实际应用中的可用性和准确性。
    注意:
  • 两阶段都是全参微调
  • 为了增强训练的稳定性和效果,视觉编码器的参数也会被更新,并将其学习率调整为一般情况lr的1/10

(二)CogVLM-video的SFT过程:指令微调(Instruction Tuning)和时间定位微调(Temporal Grounding Tuning)

  1. 指令微调(Instruction Tuning):
  • 这个阶段的目标是提高模型对视频理解的一般能力,特别是处理视频字幕和问答任务。
  • 模型使用处理好的caption数据集和公开可用的问题回答数据进行训练。
  • 学习率为4e-6,主要使用VideoChat2提供的指令微调数据,不包括简单的字幕数据集。
  • 在指令微调阶段,总共使用了330k视频样本。
  1. 时间定位微调(Temporal Grounding Tuning):
  • 这个阶段的目标是训练CogVLM2-Video模型处理时间定位问题,即能够理解视频中特定时间点信息。
  • 模型在时间定位问答(TQA)数据集上进行训练,学习率为1e-6。
  • 通过这个训练过程,CogVLM2-Video不仅在公共基准测试中表现出色,而且还具备了大多数先前视频模型所缺乏的时间问题回答能力。
    注意:这两个阶段都是全参微调

二、视频理解能力

下图显示了 CogVLM2-Video在 MVBench、VideoChatGPT-Bench和 Zero-shot VideoQA 数据集 (MSVD-QA、MSRVTT-QA、ActivityNet-QA) 上的性能。
在这里插入图片描述
CogVLM2-Video 在 MVBench 数据集上的表现:
在这里插入图片描述
MVBench评测集准:
大多数测试主要集中在静态图像任务上的空间理解,而忽视了动态视频中的时间理解。MVBench评测集准在20个视频理解任务上评测模型,20个任务可以分为九大类。下图展示了 MVBench 评测基准中的 20 种任务,这些任务被分为两大类:空间理解任务(Spatial Understanding: Inferring from a single frame)和 时间理解任务(Temporal Understanding: Reasoning based on entire video)。每类任务包含若干具体子任务:
在这里插入图片描述

空间理解任务(Spatial Understanding: Inferring from a single frame)

根据视频的单帧图像进行推理和理解的任务:

  1. Action(动作):
  • 任务示例:What’s the man doing?(这个人在做什么?)
  • 解释:识别和描述图像中的动作。
  1. Object(物体):
  • 任务示例:What’s on the table?(桌子上有什么?)
  • 解释:识别图像中的物体。
  1. Position(位置):
  • 任务示例:Is the man on the stage?(那个人在舞台上吗?)
  • 解释:确定图像中物体或人物的位置。
  1. Count(计数):
  • 任务示例:How many chairs?(有多少把椅子?)
  • 解释:计算图像中某类物体的数量。
  1. Scene(场景):
  • 任务示例:Where’s the man?(这个人在哪里?)
  • 解释:识别图像中的场景。
  1. Pose(姿态):
  • 任务示例:What’s the man’s pose?(这个人的姿势是什么?)
  • 解释:确定图像中文物或人物的姿态。
  1. Attribute(属性):
  • 任务示例:What color is the desk?(桌子是什么颜色的?)
  • 解释:描述图像中物体的属性。
  1. Character(字幕):
  • 任务示例:What are the subtitles?(字幕是什么?)
  • 解释:识别和读取图像中的文本信息。
  1. Cognition(认知):
  • 任务示例:Why is the man singing in the canteen?(为什么那个人在食堂里唱歌?)
  • 解释:进行更高层次的理解和推理,回答“为什么”类的问题。

时间理解任务(Temporal Understanding: Reasoning based on entire video)

这是根据整段视频进行推理和理解的任务:

  1. Action(动作):
  • Action Sequence(动作序列):识别动作发生的顺序。
  • Action Antonym(动作反义词):识别相反的动作。
  • Action Prediction(动作预测):预测未发生的动作。
  • Unexpected Action(意外动作):识别意外发生的动作。
  • Fine-grained Action(细粒度动作):识别细微的动作变化。
  1. Object(对象):
  • Object Shuffle(物体打乱):识别物体的重新排列或位置变化。
  • Object Existence(物体存在):判断某物体是否存在。
  • Object Interaction(物体交互):识别物体之间的交互行为。
  1. Position(位置):
  • Moving Direction(移动方向):识别物体或人的移动方向。
  • Action Localization(动作定位):定位特定动作发生的位置。
  1. Count(计数):
  • Action Count(动作计数):计算特定动作的发生次数。
  • Moving Count(移动计数):计算移动的物体或人物数量。
  1. Scene(场景):
  • Scene Transition(场景转换):识别场景变化和转换点。
  1. Pose(姿态):
  • Fine-grained Pose(细粒度姿态):识别细微的姿态变化。
  1. Attribute(属性):
  • State Change(状态变化):识别物体或人物的状态变化。
  • Moving Attribute(移动属性):识别物体或人物移动时的属性变化。
  1. Character(字幕):
  • Character Order(字幕顺序):识别字符出现的顺序。
  1. Cognition(认知):
  • Episodic Reasoning(情节推理):理解影片的剧情发展和情节关系。
  • Egocentric Navigation(自我Navigation):基于视频中的视角进行Navigation和推理。
  • Counterfactual Inference(反事实推理):推理假设情景中“如果……会怎么样”的问题。

三、相关实验结论

  • 1min内的视频总结效果较好
  • 改变默认帧数(frame_num=24,表示模型一次处理的帧数),帧数越多则效果越差。
  • 分段再合并的测试结论:
    • 对于电影等视频,分段再合并后不容易衔接片段间信息(比如肖生克的救赎电影片段)
    • 分段再总结的方法,也不适用于用户对话的情况

Reference

[1] https://modelscope.cn/models/ZhipuAI/cogvlm2-video-llama3-chat/files
[2] https://modelscope.cn/models/ZhipuAI/cogvlm2-video-llama3-base
[3] https://cogvlm2-video.github.io/
[4] 技术博客:https://cogvlm2-video.github.io/
[5] 评估脚本:https://github.com/magic-research/PLLaVA/blob/main/README.md
[6] 【论文分享】PLLaVA : Parameter-free LLaVA Extension from Images to Videos for Video Dense Captioning
[7] LVM视频理解模型
[8] [CVPR2024 Highlight] MVBench多模态视频理解能力的全面评测:https://zhuanlan.zhihu.com/p/669658267

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于WebServer的工业数据采集系统

一、项目框架及流程 二、http简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于Web Browser(浏览器)到Web Server(服务器)进行数据交互的传输协议。 HTTP是应用层协…

poi生成的ppt,powerPoint打开提示内容错误解决方案

poi生成的ppt,powerPoint打开提示内容错误解决方案 最近做了ppt的生成,使用poi制作ppt,出现一个问题。微软的powerPoint打不开,提示错误信息 通过xml对比工具发现只需要删除幻灯片的某些标签即可解决。 用的是XML Notepand 分…

ai写论文哪个平台好?7款AI写论文软件帮你撰写论文

在当今学术研究和写作领域,AI论文写作工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿,还能进行内容优化、查重和排版等操作。以下是七款推荐的AI写论文软件,其中特别推荐千笔-AIPassPaper。 一、千笔…

Java集合(Map篇)

一.Map a.使用Map i.键值(key-value)映射表的数据结构,能高效通过key快速查找value(元素)。 ii.Map是一个接口,最常用的实现类是HashMap。 iii.重复放入k-v不会有问题,但是一个…

盈科巴黎办公室开业典礼暨盈科全球一小时法律服务生态圈·法国中心揭牌仪式圆满举办

国际化建设是盈科律师事务所发展的重要战略目标之一,随着中国对外投资、跨境贸易、“一带一路”高质量共建等迅速发展,越来越多中国企业和公民“走出去”,寻找海外市场。今年是中法建交60周年。建交以来,中法坚持做真诚的朋友、共…

【Java】JVM基本组成

一、JDK、JRE、JVM JDK:全称 “Java Development Kit” Java 开发工具包,提供 javac编译器、jheap、jconsole 等监控工具; JRE:全称 “Java Runtime Environment” Java 运行环境,提供 class Library 核心类库JVM; …

文件服务器FastDFS 消息队列中间件RabbitMQ

新标签页 (chinaunix.net) FastDFS - Browse Files at SourceForge.net 一、FastDFS Tracker和Storage: tracker用来管理所有的storage,只是管理服务器,负责负载均衡。 storage是存储服务器,每一个storage服务器都是一个单独的个…

计算机毕业设计之:基于微信小程序的疫苗预约系统的设计与实现(源码+文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

Shiro rememberMe反序列化漏洞(Shiro-550)

开启环境抓包验证Shiro框架 使⽤BurpSuite进⾏抓包,在请求包中的cookie字段中添加 rememberMe123; ,看响应包 header中是否返回 rememberMedeleteMe 值,若有,则证明该系统使⽤了Shiro框架: 使用工具爆破密钥爆破利用…

论文大杀器!分享4款ai论文写作工具软件

在当今学术研究和论文写作领域,AI技术的应用已经变得越来越普遍。这些工具不仅能够提高写作效率,还能帮助研究人员生成高质量的论文内容。本文将重点介绍四款优秀的AI论文写作工具,并特别推荐千笔-AIPassPaper。 一、千笔-AIPassPaper 传送门…

2024寻找那些能精准修改PDF内容的工具

如今,我们使用 PDF 文档的频率不断攀升,很多时候收到的表格等资料都是 PDF 格式。若先进行格式转换后编辑,再转换回 PDF 格式,着实有些麻烦。那么,pdf怎么编辑修改内容呢?在这篇文章中,我将为大…

python爬虫案例——抓取链家租房信息

文章目录 1、任务目标2、分析网页3、编写代码1、任务目标 目标站点:链家租房版块(https://bj.lianjia.com/zufang/) 要求:抓取该链接下前5页所有的租房信息,包括:标题、详情信息、详情链接、价格 如: 2、分析网页 用浏览器打开链接,按F12或右键检查,进入开发者模式;因…

防火墙--NAT技术,基于源NAT,NAT服务器,双向NAT

文章目录 防火墙--NAT技术一、基于源NAT**方式**:NAT No-PATNAPT出接口地址方式Smart NAT三元组 NAT 二、基于服务器的NAT多出口场景下的NAT Server 三、双向NAT 防火墙–NAT技术 基于源NAT:用于将内部网络的私有IP地址转换为公共IP地址,以便…

使用 IntelliJ IDEA 连接到达梦数据库(DM)

前言 达梦数据库是一款国产的关系型数据库管理系统,因其高性能和稳定性而被广泛应用于政府、金融等多个领域。本文将详细介绍如何在 IntelliJ IDEA 中配置并连接到达梦数据库。 准备工作 获取达梦JDBC驱动: 访问达梦在线服务平台网站或通过其他官方渠道…

Matlab|基于遗传模拟退火算法的风电功率聚类分析

目录 主要内容 部分代码 结果一览 下载链接 主要内容 模糊C-均值聚类,也称FCM,是比较常用的一种聚类算法,该算法利用几何贴进度的概念将不同数据分配到不同聚类群中,但是作为局部搜索优化算法,初值选择不…

Conda虚拟环境配置常见问题记录

搞深度学习的,总有被虚拟环境搞得头大的时候,特别是涉及到CUDA,Torch ,Torchvision 版本适配的问题。这两天因为在原来的环境中装了几个包,导致原来的环境崩了,搞了一天的时间又重新配了环境,中…

塑料瓶回收标志分级检测系统源码分享

塑料瓶回收标志分级检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Co…

Etcd权限认证管理

1 查看是否开启权限认证 ctl auth status 2 开启权限认证 ctl auth enable。开启后每一条命令都要加上用户 --userroot:root(root默认最高权限) 3 创建其他用户 ctl user add user1 --user用户名:密码 4 创建角色 ctl role add testR --user 5 为角色添加权限 ctl role g…

python和pyqt-tools安装位置

一.python的安装位置 1.查询安装的python的位置 先查询python,然后输入import sys和sys.path 二.python-tools的安装位置 找到python的文件后按下图路径即可查到tools的文件

OpenAI o1团队突破性论文:『过程推理』中数学推理能力大幅提升,从正确中学习的新方法

原创 超 近年来,大型语言模型(LLMs)在复杂的多步推理任务中取得了令人瞩目的进展。这些模型能够生成逐步的思维链,解决从小学数学到高等微积分的各种问题。然而,即使是最先进的模型也常常陷入逻辑陷阱,产生看似合理但实际错误的推…