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)提出一套统一的多模态大模型框架,可以同时处理图像和视频两种模态;2)提出动态tokens思想,即作者任务图像和视频中的tokens数量多不仅存在很多的冗余信息也会造成计算复杂度高,因此通过最近邻的密度峰聚类算法来合并相似的tokens,极大地减少了视觉token的数量,降低了模型的训练和推理成本。使得在三天以内即可训练出具有 130 亿参数的通用视觉语言大模型。
- 主要技术:使用最近邻的密度峰聚类算法来合并相似的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进行全面微调。该数据集由多轮对话和单轮对话组成,以会话格式呈现,同时包括作为视觉输入的单个图像、多个图像和视频。