Ideas around Vision-Language Models (VLMs)
导言
- 当前主流的多模态生成模型(如图像生成和视频生成)主要采用Latent Stable Diffusion的方案框架。为了减少计算量,图像/视频等模态的数据(噪声)先经过VAE压缩得到Latent Vector,然后在文本信息的指导下进行去噪,最后生成符合预期的图像或视频。排行榜: Vbench
- 当前主流的多模态理解模型一般采用视觉编码器 + 模态对齐 + LLM的算法流程,充分复用已有视觉编码器的理解能力和LLM的基础能力。训练过程一般分为多个阶段,如先进行模态对齐的一阶段预训练,然后进行二阶段的参数微调。
MLLM 概述¶
MLLM (Multimodal Large Language Model) = Multimodality Understanding + LLM (Large Language Model)1
两分类¶
- 统一嵌入-解码器架构2
- 使用单个解码器模型,很像 GPT-2 或 Llama 3.2 等未经修改的 LLM 架构。在这种方法中,图像被转换为与原始文本token具有相同嵌入大小的token,从而允许 LLM 在连接后同时处理文本和图像输入token。
- 跨模态注意力架构
- 采用交叉注意力机制,将图像和文本嵌入直接集成到注意力层中。
三组件:¶
- A pre-trained modality encoder
- The encoders compress raw information, such as images or audio, into a more compact representation.
- 视觉编码器与NLP中的Encoder类似,可以直接选择pre-train好的, 比如CLIP
- A pre-trained LLM
- A modality interface to connect them
- 考虑到以端到端方式训练大型多模态模型的成本很高,为了使用Pre-trained LLM和Pre-trained modality encoder,我们需要去设置一个模块,这个模块可以去将不同模态的经过encoder后的信息融合。
- Learnable Connector:通过learnable connector这个模块,可以将多模态信息融合成可以让LLM理解的信息。融合的模型可以根据融合的最小颗粒度划分:token-level和feature-level。 1. feature-level fusion和token-level fusion的本质区别在于是否更改LLM或是ViT的内部结构:若是仅在两个组件之间增加一个额外的组件(例如Q-former)则是token-level fusion;若是更改了LLM或是ViT的内部结构,例如加入了额外的模态融合层,则是feature-level fusion。
- Expert Model:专家模型,例如image caption模型,可以将图片转化成描述文字,这样多模态的输入可以被转化成单模态的输入。由此只需要进行单一模态建模即可。
图文编码¶
- 图像编码(image encoder)等于文本的分词器(tokenizer)+嵌入层(Embedding layer)
- projector 有时也叫 adapter, adaptor, or connector,用于对齐图文的维度。
自注意力(Self-Attention)与交叉注意力(Cross-Attention)
在交叉注意力中,与自我注意相反,我们有两个不同的输入源,如下图所示:
是Transformer模型中的两种核心机制,它们在功能、输入来源和应用场景上有显著区别,以下是详细对比分析:
特征 | Self-Attention | Cross-Attention |
---|---|---|
输入来源 | Query、Key、Value均来自同一序列(如编码器输入) | Query来自一个序列(如解码器),Key/Value来自另一序列(如编码器输出) |
功能目标 | 捕捉序列内部的长距离依赖关系 | 建立两个不同序列或模态间的关联关系 |
典型场景 | 文本编码(句子内部词关联)、图像特征自相关提取 | 机器翻译(编码器-解码器交互)、多模态融合(文本-图像对齐) |
示例:
在机器翻译中,自注意力用于编码器内部分析源语言句子的语法结构,而交叉注意力让解码器在生成目标语言时动态聚焦源语言的关键信息。
在Transformer架构中,两种注意力通常配合使用:
- 编码器:仅用自注意力,提取输入序列的全局特征(如BERT的文本编码)。
- 解码器:
- 自注意力层:处理已生成的目标序列(如翻译结果的前半部分),保证自回归生成的一致性。
- 交叉注意力层:将目标序列(Query)与编码器输出(Key/Value)关联,实现跨语言信息传递。
自注意力与交叉注意力共同构成了Transformer模型处理复杂依赖关系的核心能力。自注意力聚焦序列内部结构,适用于单模态特征提取;交叉注意力实现跨序列信息融合,是多任务与多模态模型的关键组件。两者的结合(如编码器-解码器架构)在机器翻译、文本生成等任务中展现了强大的性能。
ViT¶
ViT(vision transformer)是Google在2020年提出的直接将transformer应用在图像分类的模型,后面很多的工作都是基于ViT进行改进的。
ViT的思路很简单:
- 直接把图像分成固定大小的patchs,然后通过线性变换得到patch embedding,这就类比NLP的words和word embedding,
- 由于transformer的输入就是a sequence of token embeddings,所以将图像的patch embeddings送入transformer后就能够进行特征提取从而分类了。
ViT模型原理如下图所示,其实ViT模型只是用了transformer的Encoder来提取特征(原始的transformer还有decoder部分,用于实现sequence to sequence,比如机器翻译)。
2407 InterlVL2 76B¶
上海人工智能实验室(上海AI实验室)联合清华大学、香港中文大学、商汤科技等机构开源新一代书生·视觉大模型(InternVL)。性能和Qwen属于同一水平。
2408 Qwen2 VL 72B¶
- 亮点:能处理各种分辨率和长宽比
- 技术要点:
- 引入了naive dynamic resolution技术,支持灵活处理不同分辨率的输入图像和视频
- 创新性地提出了多模态旋转位置编码(M-RoPE),这有助于实现更高效的跨模态信息融合,从而增强了模型对于文本和视觉数据的理解能力
- 构建了一个统一的图像和视频理解框架,其中图像被视作两个相同的帧来处理,以维持与视频处理逻辑的一致性
- 并采用3D tubes替代传统的2D patches方法,进一步提升了对长时间序列视觉内容的理解深度
2411 DeepSeek-VL2¶
- SigCLIP改进了CLIP的loss