以下是VLM多模态大模型中一些常见的视觉编码策略:

1. 基于CNN的视觉编码

    特征提取:利用卷积神经网络(CNN)的卷积层和池化层对图像进行处理,提取图像的局部特征和纹理信息等。例如,通过不同大小的卷积核在图像上滑动卷积,捕捉不同尺度的特征。像VGGNet使用多个3×3的小卷积核堆叠来增加感受野并提取特征;ResNet引入残差连接解决了随着网络深度增加出现的梯度消失和退化问题,能更好地提取深层特征。

    维度变换与融合:将提取到的特征图通过全连接层等方式进行维度变换,使其与语言模型的输入维度相匹配,然后与语言特征进行融合。比如在早期的一些多模态模型中,将CNN提取的图像特征向量直接与词向量拼接,送入后续模型进行联合学习。

2. 基于Transformer的视觉编码

    图像分块与嵌入:把图像分割成多个小块(patch),将每个小块映射为一个向量嵌入,类似于语言模型中的词嵌入。如Vision Transformer(ViT)将图像切成固定大小的patch后,通过线性投影将其转化为向量序列,作为Transformer编码器的输入。

    多头注意力机制:利用多头注意力机制来捕捉不同位置图像块之间的长程依赖关系和语义关联。不同的头可以关注到图像的不同方面和特征,例如有的头可能更关注物体的边缘,有的头关注物体的内部纹理等。例如,在多模态Transformer模型中,通过自注意力机制让图像块之间相互交互信息,学习到更丰富的图像语义表示。

    与语言Transformer融合:与语言Transformer进行交互和融合,可以是在编码器阶段就将图像和语言的嵌入一起输入到Transformer中进行联合编码,也可以在解码器阶段根据语言生成的需求来动态地融合图像特征。如CLIP模型通过对比学习的方式,让视觉Transformer和语言Transformer学习到统一的特征空间,使得图像和文本在该空间中能够进行语义对齐和匹配。

3. 多粒度混合视觉编码

    离散视觉编码:将图像通过离散视觉标记器离散化为一组视觉符号序列,提取图像中粗粒度的核心视觉概念。并将视觉离散词汇与文本词汇合并形成统一的多模态词汇,使视觉离散序列能与语言模型的词汇表对齐。例如,将图像中的物体、场景等概念用特定的符号表示,这些符号类似于语言中的单词,便于模型从更高层次理解图像语义。

    连续视觉编码:使用视觉变换器(ViT)等对输入图像进行编码,将图像划分为图像块后编码为连续视觉特征序列,保留图像的细粒度信息。同时,采用基于文本语义的补丁缩减模块,对与输入文本内容无关的连续视觉特征进行动态裁剪,减少冗余信息。如在MaVEn框架中,通过这种方式既保留了图像细节,又能根据文本语义聚焦关键信息。

    特征融合:将离散视觉特征与连续视觉特征进行序列拼接或其他方式的融合,形成输入到语言模型的最终视觉表示,综合利用粗粒度和细粒度的视觉信息来提升模型的性能。

4. 引入视觉专家的编码策略

    多种预训练视觉编码器:结合多种在不同任务和分辨率下预训练的视觉专家,如用于视觉语言对齐的CLIP和ConvNeXt、专注于物体识别的EVA-02、专注于OCR的Pix2Struct、专注于分割的SAM以及用于自监督学习的DINOV2等。每个视觉专家都能在其擅长的领域提取特定的视觉特征。

    特征融合与调整:调整这些视觉编码器的输出特征图,使它们能够有效融合。例如采用通道拼接等方式将不同视觉专家的特征进行组合,以增强模型在各个领域的表现。如Eagle模型采用通道拼接策略融合多种视觉编码器的特征,在视觉问答、OCR等多个任务中取得了良好效果。

5. 生成式视觉编码

    任务统一与提示机制:采用生成式预训练的方式,将多种视觉任务(如图像描述、目标检测、文字识别和对象定位等)统一为sequence-to-sequence结构,并通过prompt来完成多样化的视觉任务。例如Florence-2模型通过不同的文本提示调整生成目标,从而提取任务特定的视觉信息。

    多层级特征生成与融合:其视觉编码器能够生成从低层次到高层次的多层级视觉特征,通过通道拼接等融合策略将多任务和多层级的特征进行高效融合,形成更丰富的视觉表征,既关注细节又能捕获整体信息。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐