北大和鹏城实验室联合推出的图像视频统一多模态大模型Chat-UniVi(CVPR 2024)

Chat-UniVi: Unified Visual Representation Empowers Large Language Models with Image and Video Understanding

论文信息

paper:CVPR 2024
code:https://github.com/PKU-YuanGroup/Chat-UniVi
训练130亿大模型仅3天,北大提出Chat-UniVi统一图片和视频理解
北大&中大 | Chat-UniVi:统一视觉语言大模型,13B模型训练只需3天,效果惊艳
在这里插入图片描述

论文概要

  1. 主要创新:1)提出一套统一的多模态大模型框架,可以同时处理图像和视频两种模态;2)提出动态tokens思想,即作者任务图像和视频中的tokens数量多不仅存在很多的冗余信息也会造成计算复杂度高,因此通过最近邻的密度峰聚类算法来合并相似的tokens,极大地减少了视觉token的数量,降低了模型的训练和推理成本。使得在三天以内即可训练出具有 130 亿参数的通用视觉语言大模型。
  2. 主要技术:使用最近邻的密度峰聚类算法来合并相似的tokens。

摘要翻译

大语言模型已经在广泛的开放式任务中展示了令人印象深刻的通用能力,并且已经扩展了它们的效果,包括多模态对话。然而,现有方法在有效处理图像和视频理解方面遇到了挑战,尤其是在视觉标记数量有限的情况下。在这项工作中,我们介绍了Chat-UniVi,这是一个统一的视觉-语言模型,能够理解和参与涉及图像和视频的对话,通过统一的视觉表示。具体来说,我们采用了一组 动态视觉标记(dynamic visual tokens) 来统一表示图像和视频。这种表示框架使模型能够高效地利用有限数量的视觉标记,同时捕捉图像所需的空间细节和视频所需的全面时序关系。此外,我们利用了多尺度表示,使模型能够感知高级语义概念和低级视觉细节。值得注意的是,Chat-UniVi在包含图像和视频的混合数据集上进行了训练,无需任何修改即可直接应用于涉及这两种媒介的任务。广泛的实验结果表明,Chat-UniVi在一致性上超越了即使是专门为图像或视频设计的现有方法。代码可在https://github.com/PKU-YuanGroup/Chat-UniVi上获得。

引言翻译

大语言模型(LLMs),例如GPT-3和LLaMA,展示了显著的通用能力,为实现通用人工智能铺平了道路。然而,语言只是沟通的一部分。视觉信息有助于增强我们对世界的理解。因此,人们对于开发能够同时处理包括图像和视频在内的各种输入方式的多模态对话模型越来越感兴趣。

多模态对话模型的最新进展,如MiniGPT-4、LLaVA和mPLUGOwl,专注于将视觉标记整合到大语言模型中。 尽管取得了值得称赞的进展,但现有方法通常只专注于图像或视频输入。例如,优先考虑图像输入的方法通常会使用更多的视觉标记来获得更精细的空间理解。相反,专注于视频输入的方法通常为了适应更多帧以建模时序关系而牺牲每帧的空间理解。 尽管一些方法,如Flamingo,可以为每个图像和视频使用查询变换器(query transformer)提取固定数量的标记,但它们的主要重点仍然是图像理解,缺乏有效建模时序理解的能力,导致对视频的理解有限。因此,在统一框架内实现LLMs对图像和视频理解的关键在于挑战。

在本文中,我们介绍了Chat-UniVi,一个统一的视觉-语言模型,旨在熟练地理解和参与关于图像和视频的对话。Chat-UniVi使用一组动态视觉标记来统一表示图像和视频,使其能够同时捕捉图像的空间细节和视频的全面时序关系。 正如图1所示,图像可以通过不同大小的视觉标记来描述。例如,图中的主要对象,即图1中的羊,需要用许多视觉标记来表示,以获得细粒度的表示,而背景,即雪山,可以用一个视觉标记来充分建模。对于视频,视频最初被划分为几个事件,然后这些视觉标记在每个事件的帧内扩展,以封装帧级动态。这种统一的图像和视频表示大大减少了视觉标记的数量,同时保持了模型的表达能力。值得注意的是,在我们的方法中,更长的视频被分配了更多的视觉标记。因此,我们的方法比现有方法更适合于变长视频理解。

为了获得这些动态视觉标记,我们提出了一种标记合并方法,逐步合并语义相似的视觉标记。具体来说,从视觉变换器(vision transformer)初始化的视觉标记开始,我们逐渐通过应用基于k近邻的密度峰值聚类算法,即DPC-KNN,对标记特征进行分组。对于视频,我们还使用DPC-KNN对帧特征进行操作以获取事件。在每个合并步骤中,分配给同一聚类的视图标记通过平均它们的标记特征来合并。最后,我们为大语言模型提供了多尺度表示,其中多尺度表示的上层(high-level)包含高级语义,而下层(low-level)更强调视觉细节。

提出的Chat-UniVi有两个引人注目的优势:首先,其统一的图像和视频建模方法允许在图像和视频的混合数据集上进行训练,无需任何修改即可直接应用于图像和视频任务。其次,多尺度表示有助于全面理解图像和视频,使Chat-UniVi能够适应各种任务,包括使用高级表示进行语义理解,以及使用低级表示生成详细描述。 我们在图像和视频理解任务上评估了Chat-UniVi。如图2所示,与其他专门关注图像或视频的方法相比,Chat-UniVi在理解图像和视频方面始终表现出优越性。此外,我们还提供了多模态大型语言模型的图像和视频联合训练的优势证据。主要贡献总结如下:

  • 我们为大型语言模型提出了统一的视觉表示,使大语言模型能够理解图像和视频。
  • 我们使用多尺度动态视觉标记统一表示图像和视频,并提出了一种标记合并方法来获得这些动态视觉标记。
  • 无需微调,Chat-UniVi在图像和视频任务中就取得了竞争性能,并在对象幻觉基准测试中取得了令人印象深刻的结果。

技术细节

在这里插入图片描述

动态视觉标记(Dynamic Visual Tokens)

在标准的Vision Transformer基础上,大多数方法通过将图像划分为规则且固定的网格来生成同等重要性的视觉标记。然而,显然并非所有区域在视觉-语言任务中都具有同等的重要性。例如,捕获背景可能只需要一个单一的视觉标记。从这一洞见中汲取灵感,我们合并了非必需的标记,以派生出作为大语言模型输入的动态视觉区域。

空间视觉tokens合并

合并算法主要借鉴于密度峰值聚类算法(DPC-KNN),如果对这个算法不了解可以参考下面两篇博客:
密度峰值聚类算法(DPC)
(五十四)通俗易懂理解——DPC聚类算法
结合本文,大概有以下几步:
1)利用CLIP的视觉编码器将输入图片转化为一系列tokens
2)针对每个token z i z_i zi,计算它与相邻 K K K个tokens之间的距离,并将这 K K K个距离的平均的负指数结果当做该token的局部密度,对应论文公式(1)
3)计算高密度最小距离,对应公式(2)。如果对公式不太理解,知道它的目的就行,就是找到聚类中心
4)根据找到的聚类中心,将其他tokens分配到和它最近的中心token上
5)最后,取每个聚类中tokens的平均结果来代表相应的聚类。合并tokens的视觉区域是相应聚类内视觉区域的并集(The vision region of the merged token is the union of the vision regions within the corresponding cluster.)

时序视觉tokens合并

为了使动态视觉标记适应视频输入,我们扩展了跨帧的视觉标记。然而,直接将所有帧合并到有限数量的视觉标记中可能会导致视频中的时间信息丢失。例如,在图3中,视频展示了在准备酱料之前煮意大利面的过程。简单地合并所有帧可能会给模型确定正确顺序带来挑战,例如,是先准备酱料,还是先煮意大利面,或者是一边煮意大利面一边准备酱料。因此,我们提出了时间视觉标记合并的方法,首先将视频划分为几个关键事件。随后,我们让视觉标记只在同一个事件内的帧上扩展。
具体的做法如下:
1)对每帧图像的所有tokens取平均(mean-pooling),即用一个token来表达一帧图像
2)再根据DPC-KNN算法,得到n个聚类中心,即对应视频n个事件,将其余视频帧分配到最近的聚类中心上,每一个聚类簇就表示一个视频事件片段,对应公式(3)
3)在每个事件片段中,将所有视频帧的tokens放在一起再使用DPC-KNN算法进行聚类,完成一个事件片段tokens的合并,对应公式(4)

多尺度表征

简单来说就是分级进行tokens合并,原文分为3级进行合并,逐步利用DPC-KNN算法进行合并。可以发现,在合并初期,tokens数量较多,更关注图像的细节。而越到后面tokens的数量更少,表征的信息更加high-level,更具有语义信息。

语文解释如下:
为了进一步提高我们模型的能力,我们提出了一种多步合并方法,旨在为大语言模型(LLMs)提供多尺度视觉特征。具体来说,在Chat-UniVi中,第一步合并步骤中的初始视觉标记源自CLIP的视觉编码器。然后,我们逐步合并语义相似的视觉标记,并在不同步骤中获得不同数量的标记。更高级别的特征包含抽象的语义概念,而较低级别则强调视觉细节的表示。在实践中,我们对每个输入的图像或视频执行一个三步合并过程。最后,我们连接每个合并步骤的输出,并使用一个可训练的投影矩阵W将这些多尺度视觉特征转换为语言嵌入标记,作为LLMs的输入。
值得注意的是,尽管进行了连接(concatenation),我们方法中的视觉标记数量仍然显著低于视觉变换器生成的原始视觉标记数量。例如,尽管LLaVA使用了256个视觉标记,我们的方法却仅使用了112个视觉标记。

多模训练策略(Multimodal Training Scheme)

与其他多模态大模型一样,整个训练过程分为两个阶段:
在第一阶段,我们在冻结大语言模型(LLM)和视觉编码器的同时,预训练投影矩阵W。这种策略性的冻结LLM使我们的方法能够在不显著影响LLM性能的情况下,有效地捕获语义视觉信息。
在第二阶段,我们在多模态指令遵循数据集上对大型语言模型和投影矩阵W进行全面微调。该数据集由多轮对话和单轮对话组成,以会话格式呈现,同时包括作为视觉输入的单个图像、多个图像和视频。

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

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

相关文章

Tomcat 漏洞

一.CVE-2017-12615 1.使用burp抓包 把get改成put jsp文件后加/ 添加完成后访问 木马 然后木马的网址 在哥斯拉测试并且添加 添加成功 然后我们就成功进去啦、 二.弱口令 点击后输入默认用户名、密码:tomcat/tomcat 登陆之后上传一个jsp文件 后缀改成war 然后访问我…

android compose设置圆角不起作用

进度条progress设置背景圆角不起作用: 源码: Composablefun CircularProgress(modifier: Modifier, vm: TabarCmpViewModel?) {if (vm?.showLoading?.value ! true) returnBox(modifier modifier.background(Color(0x99000000)).defaultMinSize(minW…

【深度学习】【语音TTS】OpenVoice v2,测评,中英文语料,Docker镜像,对比GPT-SoVITS、FishAudio、BertVITS2

https://github.com/myshell-ai/OpenVoice/blob/main/docs/USAGE.md 实际体验OpenVoice v2的TTS效果。 文章目录 环境启动 jupyter代码代码分析主要模块和功能测试一些别的中文和中英文混合总结优点缺点对比GPT-SoVITS、FishAudio、BertVITS2使用我的Docker镜像快速体验OpenVo…

4.7.深层循环神经网络

深层循环网络 ​ 就是更深了,因为之前的网络都只有一层隐藏层,弄多一点 ​ 我们将多层循环神经网络堆叠在一起,通过对几个简单层的组合,产生了一个灵活的机制。上图展示了一个具有 L L L个隐藏层的深度循环神经网络,每…

【C++】STL | vector 详解及重要函数的实现

目录 前言 总代码 vector类框架建立(模板与成员变量) 构造、析构、swap 与 赋值重载 构造 析构 swap 赋值重载 reserve 扩容(重要!!)、size、capacity operator[ ]重载 insert 插入 逻辑讲解 i…

Oracle认证1Z0-071线上考试注意事项

目录 一、前言二、回顾过往战绩第一次 裸考🐒第二次 背题库硬考!🐒第三次 软件卡住,寄!🙈第四次 汇总纠错,通过!🌚 三、考试流程四、考试注意事项1. 是否需要科学上网2. …

探索四川财谷通抖音小店:安全与信赖的购物新体验

在数字经济蓬勃发展的今天,抖音平台凭借其庞大的用户基础和强大的内容生态,逐渐成为了电商领域的一股不可忽视的力量。其中,四川财谷通抖音小店作为这一浪潮中的佼佼者,不仅以其丰富的商品种类和独特的品牌魅力吸引了众多消费者的…

Java多线程的单例设计模式 多种实现方法

目录 前言 饿汉式 懒汉式 Double_check volatile double_check Holder方式 枚举 前言 单例设计模式GOF23中设计模式中最常用的设计模式之一, 单例设计模式提供了多线程环境下的保证唯一实例性的解决方案, 虽然简单, 但是实现单例模式的方式多种多样, 因此需要从多个维度去…

[安洵杯 2019]easy_serialize_php

[安洵杯 2019]easy_serialize_php [安洵杯 2019]easy_serialize_php - DGhh - 博客园 (cnblogs.com) [安洵杯 2019]easy_serialize_php - 何止(h3zh1) - 博客园 (cnblogs.com) 涉及的考点是字符串逃逸 <?php //GET一个f $function $_GET[f];//定义过滤的字符串数组 fu…

c++初阶-------模板

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

科普文:微服务之全文检索SpringBoot整合ElasticSearch说明

一、RestHighLevelClient介绍 JavaREST客户端有两种模式&#xff1a; Java Low Level REST Client&#xff1a;ES官方的低级客户端。低级别的客户端通过http与Elasticsearch集群通信。Java High Level REST Client&#xff1a;ES官方的高级客户端。基于上面的低级客户端&…

Io 35

FIleinputStream字节输入 package File.io;import java.io.*;public class io1 {public static void main(String[] args) throws IOException {// InputStream is new FileInputStream(new File("C:\\Users\\SUI\\Desktop\\Java1\\one\\src\\kaishi"));//简化Input…

C++ 几何算法 - 求两条直线交点

一&#xff1a;算法介绍 1. 首先定义两条直线方程&#xff1a; 2. 解方程&#xff0c;求出x, y坐标 3. 如果x分母的行列式等于0&#xff0c; 说明两条直线平行或方向相反 4. 如果x&#xff0c;y分母的行列式都等于0&#xff0c;说明两条线重叠 二&#xff1a;代码实现: #inclu…

求职Leetcode题目(5)

1.分割回文串 每一个结点表示剩余没有扫描到的字符串&#xff0c;产生分支是截取了剩余字符串的前缀&#xff1b;产生前缀字符串的时候&#xff0c;判断前缀字符串是否是回文。如果前缀字符串是回文&#xff0c;则可以产生分支和结点&#xff1b;如果前缀字符串不是回文&#…

Vue常见问题(一)组件的使用

Failed to resolve component. 报错原因&#xff1a; 组件注册错误&#xff1a;我们在组件中使用了未注册的组件。在Vue中&#xff0c;组件必须先注册才能使用。 解决方法&#xff1a; 引用组件 &#xff1a; import ItemPage from "/components/itemPage.vue";…

【踩坑】pytorch中的索引与copy_结合不会复制数据及其解决方案

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 背景知识 实验验证 结论分析 错误案例 处理方法 注意事项 附加说明 基本索引返回视图 高级索引返回副本 赋值操作都是原地操作 以下内容…

重生之我 学习【数据结构之顺序表(SeqList)】

⭐⭐⭐ 新老博友们&#xff0c;感谢各位的阅读观看 期末考试&假期调整暂时的停更了两个多月 没有写博客为大家分享优质内容 还容各位博友多多的理解 美丽的八月重生之我归来 继续为大家分享内容 你我共同加油 一起努力 ⭐⭐⭐ 数据结构将以顺序表、链表、栈区、队列、二叉树…

索尼相机SD卡找不到视频怎么办?提供全面解决方案

在使用索尼相机拍摄美好瞬间时&#xff0c;SD卡作为存储介质&#xff0c;承载着珍贵的视频和照片。然而&#xff0c;有时我们可能会遇到SD卡中视频文件无法找到的问题&#xff0c;这无疑让人倍感焦虑。本文旨在为大家提供一套全面的解决方案&#xff0c;希望帮助大家快速找回丢…

探索Linux世界之Linux环境开发工具的使用

一、yum -- Linux软件包管理器 1、什么是yum yum(Yellow dog Updater, Modified)&#xff1a; 是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上。 在Linux上安装软件的方式&#xff1a; 源代码直接安装&#xff1a;在Linux下安装软件, 一个通…

The Llama 3 Herd of Models 第8部分语音实验部分全文

第1,2,3部分,介绍、概览、预训练 第4部分,后训练 第5部分,结果 第6部分,推理 第7部分,视觉实验 8 Speech Experiments 我们进行了实验来研究将语音功能集成到Llama 3中的组合方法,类似于我们用于视觉识别的方法。在输入端,一个编码器,连同一个适配器,被并入处理语…