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

news2024/9/23 19:14:55

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.coloradmin.cn/o/2034004.html

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

相关文章

实战|uniapp模仿微信实现发送位置消息,解决滚动页面地图层级冲突

前言 在即时通讯应用中,虽然发送位置信息不是核心功能,但在特定场景下,这个功能仍然非常有用。 本文将介绍如何在 uniapp 中实现位置信息的发送和展示,特别是在遇到地图层级问题时的解决方案。 以下内容均基于 uniapp 打包 App …

puppeteersharp爬取网页数据

官网 https://github.com/hardkoded/puppeteer-sharp 安装 创建控制台项目,安装PuppeteerSharp 18.1.0 编写代码 安装chrome async static Task Main(string[] args) {//如果Chromium不存在则先下载var browserFetcher new BrowserFetcher();//获取安装的浏览…

redis面试(十三)公平锁排队代码剖析

我们来看一下第二种redis分布式锁 第一种锁是可重入锁,非公平可重入锁,所谓的非公平可重入锁是什么意思呢?胡乱的争抢,根本没有任何公平性和顺序性可言 第二种锁,可重入锁,公平锁 通过公平锁&#xff0c…

haproxy七层代理总结

一、HAProxy概念 1.1 什么是HAProxy? HAProxy是一款开源、高性能的负载均衡器和代理服务器,专为TCP和HTTP应用而设计。它可以将客户端的请求分发到多台后端服务器,从而提高应用的可用性和性能。HAProxy支持多种负载均衡算法和健康检查机制&a…

一篇文章带你学会向量数据库Milvus

一篇文章带你学会向量数据库Milvus 索引管理 Milvus 提供多种索引类型来对字段值进行排序,以实现高效的相似性搜索。它还提供三种度量类型:余弦相似度 (COSINE)、欧几里得距离 (L2) 和内积 (IP)来测量向量嵌入之间的距离。 建议…

零基础学会机器学习,到底要多久?

这两天啊,有不少朋友和我说,想学机器学习,但是之前没有基础,不知道能不能学得会。 首先说结论,只要坚持,就能学会,但是一定不能三天打鱼两天晒网,要持之以恒,至少每隔两…

小白零基础学数学建模系列-Day4-线性规划基础与案例分析

文章目录 1. 线性规划基础1.1 基本概念1.2 求解方法 2 线性规划经典问题2.1 生产计划问题2. 2 运输问题 案例1:生产计划问题背景模型建立模型求解 案例2:运输问题背景模型建立模型求解 案例3:货机货物装载问题问题背景假设条件问题要求模型建…

【微信小程序】WXSS 模板样式

1. 什么是 WXSS WXSS (WeiXin Style Sheets)是一套样式语言,用于美化 WXML 的组件样式,类似于网页开发中的 CSS。 2. WXSS 和 CSS 的关系 3.rpx (1). 什么是 rpx 尺寸单位 rpx(responsive pixel)是微信小程序独有的,用来解决屏适配的尺寸单位。 (2). rpx 的实现原理 …

哈希表 -四数相加II

454. 四数相加II 方法一:分组哈希表 /*** param {number[]} nums1* param {number[]} nums2* param {number[]} nums3* param {number[]} nums4* return {number}*/ var fourSumCount function(nums1, nums2, nums3, nums4) {const twoSumMap new Map();let coun…

【机器学习之深度学习】深度学习和机器学习的关系以及深度学习的应用场景

引言 深度学习和机器学习是人工智能领域的两个重要分支,它们之间既有联系也有区别 文章目录 引言一、深度学习和机器学习的关系1.1 联系1.2 区别1.2.1 模型复杂度1.2.2 数据需求1.2.3 特征提取1.2.4 训练速度和计算资源 二、深度学习有哪些应用场景2.1 计算机视觉2.…

Unity | AmplifyShaderEditor插件基础(第一集:简单了解ASE和初识)

前言 我本来老老实实的写着我的Shader,群里的小伙伴强烈建议我开始讲ASE,我只能说,我是一个听话的Up。 一、什么是ASE 全称AmplifyShaderEditor,是一个unity插件,存在于unity商城中,售价看他们心情。&am…

deepin V23 前瞻丨深度适配RISC-V架构,打造全面兼容与高性能的开源桌面操作系统

查看原文 中国工程院院士倪光南曾表示,RISC-V架构因其开放性和灵活性,已成为中国CPU领域最受欢迎的选择之一,并有望成为推动新一代信息技术发展的关键驱动力。目前,deepin(深度)社区已与RISC-V生态系统建立…

ECMAScript6语法:类

在 ES6 中新增了类的概率,多个具有相同属性和方法的对象就可以抽象为类。类和对象的关系如下: (1)类抽象了对象的公共部分,它泛指某一大类(class)。 (2)对象特指通过类…

haproxy 7000字配图超详细教程 从小白到入门

简介:HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy的社区非常活跃,版本更新快速,HAProxy具备媲美商用负载均衡器的性能和稳…

基于python理解最大似然MLE-(简单正态分布估计、高斯混合模型GMM)

最大似然法(Maximum Likelihood Estimation,简称MLE)是一种统计方法,用于估计概率模型的参数。其基本思想是寻找一组参数值,使得在这组参数下,观测数据出现的概率(即似然性)最大。这…

ARM64 在线仿真器

今天在晚上找到一个简单的ARM64在线仿真器,它非常适合学习ARM64的指令,在教学中应该很好用。网址ARM64 Online Simulatorhttp://163.238.35.161/~zhangs/arm64simulator/ 它是由康涅狄格州立大学的Shuqun Zhang教授开发的。软件基于Alexandro Sanchez开…

评价算法(topsis熵权法)

评价算法 熵权法 上面箭头的一步用到了带权重的距离公式。 上面是某种求权重的方法,合理就行。 但是在使用熵权法的时候,一定要注意用的是规范化矩阵再用熵权法求权重。 规范化之前一定要判断每一列的性质 #熵权法:import xlrd import num…

巴黎奥运会背后的8K国际公用信号制作

北京时间2024年8月12日凌晨3时,举世瞩目的巴黎奥运会闭幕式在法兰西体育场举行,闭幕式演出部分的主题为“记录”。BOSMA博冠首款8K 50P小型化广播级摄像机B1跟随中央广播电视总台“中国红”8K转播车,为田径比赛和闭幕式提供8K国际公用信号制作…

【Ajax使用说明】Ajax、Axios以及跨域

目录 一、原生Ajax 1.1 Ajax简介 1.2 XML简介 1.3 AJAX 的特点 1.3.1 AJAX的优点 1.3.2 AJAX 的缺点 1.4 AJAX 的使用 1.4.1AJAX的基本操作 1.4.2AJAX的传参 1.4.3 AJAX的post请求及设置请求体 1.4.4 AJAX响应json数据 1.4.5 AJAX请求超时与网络异常处理 1.4.5 AJ…

windows 使用Clion开发FreeSWITCH源码

1.准备环境 window安装clion可以编译freeswitch的docker镜像 2.clion配置ssh和Toolchain的配置 去这里看吧 3.makefile配置 Toolchain记得选ssh的 成功之后左下角有这个小锤子,这个小锤子就是生成makefile文件的,记得点击 同时就会出现这个东西 这样…