专栏名称: 极市平台
极市平台是由深圳极视角推出的专业的视觉算法开发与分发平台,为视觉开发者提供多领域实景训练数据库等开发工具和规模化销售渠道。本公众号将会分享视觉相关的技术资讯,行业动态,在线分享信息,线下活动等。 网站: http://cvmart.net/
目录
相关文章推荐
一颗青杏  ·  前xi指南、姿势大全、GC攻略……情人节临时 ... ·  19 小时前  
槽值  ·  成年男女过情人节的尽头,是它 ·  昨天  
婚姻家庭那些事儿  ·  爱情幌子下的 “社会初体验” ·  2 天前  
槽值  ·  内娱还在装松弛,港女已经疯了 ·  4 天前  
51好读  ›  专栏  ›  极市平台

NeurIPS 2024|VLoRA:一种参数空间对齐的多模态大模型范式

极市平台  · 公众号  ·  · 2024-10-24 18:50

正文

↑ 点击 蓝字 关注极市平台
作者丨CVer粉丝投稿
来源丨CVer
编辑丨极市平台

极市导读

本文提出了一种参数空间对齐的多模态大模型范式,该范式将输入图像特征转换成LoRA权重并合并到LLM中,使LLM感知图像视觉信息。该范式避免了在LLM的输入序列中引入视觉标记,在训练和推理上都非常高效。 >> 加入极市CV技术交流群,走在计算机视觉的最前沿

主页: https://feipengma6.github.io/vlora/

论文: https://arxiv.org/pdf/2405.20339

代码: github.com/FeipengMa6/VLoRA

1. 输入空间对齐范式

1.1 介绍

在进入正题之前,我们先简单回顾一下当前主流的MLLM范式。

以最具代表性的LLaVA[1]为例,

Figure 1. LLaVA的结构框图

对于输入的图像 ,通过视觉编码器(Vision Encoder)和 映射模块(Projection)提取特征,得到一个由视觉标记(Visual Tokens)组成的视觉序列,然后将视觉序列和文本在序列维度上拼接,一同输入到LLM中进行训练。在训练过程中,视觉序列是在对齐LLM的输入空间以让LLM能够理解视觉信息,我们称这种范式为输入空间对齐范式。

输入空间对齐范式有2个特点:

1. 视觉信息序列化,和文本信息具有相同的表现形式 图像经过视觉编码器之后会变成视觉标记,然后通过映射模块映射到和文本标记(Text Tokens)相同的特征维度,最后形成了和文本信息相同的表现形式,即序列。

2. MLLM中视觉和文本的模态交互通过注意力机制进行 视觉信息序列化之后,会将视觉序列与文本序列在序列维度上拼接,然后同时输入给LLM。在前向传播的过程中,视觉与文本通过注意力机制产生模态交互。

目前主流MLLM遵从输入空间对齐范式,比如Qwen2-VL[2],DeepSeek-VL[3],和InternVL2[4],如Figure 2所示。

Figure 2. 输入空间对齐范式:Qwen2-VL, DeepSeek-VL 和 InternVL2

1.2 问题

输入空间对齐范式使用CLIP可以很容易将视觉特征对齐到LLM输入空间,因为CLIP的视觉特征预先和文本对齐过,本身具备丰富的语义信息,但是在训练和推理时计算效率低。

在输入序列达到一定长度的情况下,LLM的计算量集中在注意力机制部分,当输入序列长度为 n 时,计算复杂度为 ,也就是说LLM的计算量随着输入序列长度而平方增长。LLaVA-v1.5的视觉编码器为ViT-L-14,对于单张图像,产生的视觉标记的数量为576。而考虑到高分辨率图像输入,一些工作会将图像切分成多个子图,分别转换成视觉标记,最后产生非常长的视觉序列。比如,Sphinx-2k[5]的视觉序列长度为2890,InternLM-Xcomposer2-4KHD的视觉序列长度甚至可以达到8737。然而,视觉序列长度的增长会导致MLLM的计算量急剧增加。特别是在预训练阶段,MLLM通常在网络爬取的图像文本对上进行预训练,文本长度通常比较短,比如LAION-2B的文本平均长度为10.95,视觉token的数量是文本的20~50倍,这意味着视觉标记引入了绝大部分的计算量,影响了训练效率。

2. 参数空间对齐范式

为了解决上面的问题,我们提出了参数空间对齐范式,将视觉信息表征为模型权重合并到LLM中,从而在不引入额外计算量的情况下使LLM能够感知视觉信息。

Figure 3. 参数空间对齐范式

参数空间对齐范式的核心是将视觉信息表征为模型权重,并融合到LLM的参数中。整体流程如Figure 3 所示。

LLM中Self-attention包含 ,共4个权重矩阵,Feed-forward Network包含 共2个权重矩阵。这里我们用 来表示LLM的权重矩阵, 为隐藏层维度。

对于输入图像 , 先使用视觉编码器 来提取图像视觉特征, 得到 是 visual token的数量, 是视觉特征的维度。

然后,我们设计了感知权重生成模块 来将视觉特征转化为感知权重 ,这里值得注意的是, 为了尽可能保持LLM本身的语言能力, 是一个低秩矩阵, 同时, 这也有利于减少生成感知权重的计算开销。

得到感知权重 后, 我们可以直接将其融合到LLM的权重中,

通过将从视觉特征转化来的权重整合到LLM的权重中,LLM自然就具备了视觉感知能力。在合并权重后,不会给LLM带来额外的计算开销。对于LLM中每个解码层中的任意类型权重(q, k, v, o, m),我们都可以生成相应的感知权重并将其整合到对应权重中。

3. 感知权重生成模块

Figure 4. 感知权重生成模块

我们设计了感知权重生成模块来将视觉特征转化为感知权重,对于LLM中不同类型的权重,我们用不同的感知权重生成模块来生成对应的感知权重。以下是对单一类型的权重生成的介绍。

如Figure 4(a) 所示, 我们的感知权重生成模块是Decoder-only结构的, 有 层解码层, 每层由 self-attention 模块,cross-attention模块,和feed-forward network组成。首先,感知权重生成模块的self-attention模块的输入是 个感知查询标记(perceptual queries),感知查询标记的数量对应我们想要合并权重的LLM层数,即生成的感知权重的数量。然后,在cross-attention模块中,视觉特征与感知查询标记交互,最后通过feed-forward network,得到 ,其中 是感知权重模块的 隐藏层维度,并且该特征维度远小于LLM的隐藏层维度 (比如 ),有 。我们的目的是获得 ,而直接使用线性层将 的特征维度从 升维到 会引入极大的参数量,同时,这么一个高维矩阵直接合并到原始权重中可能会影响LLM本身的语言能力。因此,我们先采用一个共享的线性层 ,将 分别升维到 的维度 ,其中 ,重整形状为 ,称为视觉参数。接下来,对于 个视觉参数 ,我们采用 个不同的线性层 分别进行升维,得到感知权重







请到「今天看啥」查看全文