前言
随着人工智能技术的快速发展,多模态大模型(Multimodal Large Language Models)已成为连接视觉与语言理解的关键桥梁。本文旨在系统梳理多模态模型的核心架构、理论基础及实践应用,重点解析 CLIP、BLIP 系列及 VisualGLM 等主流模型的技术细节与代码实现,为开发者提供一份完整的学习路径参考。
一、多模态模型 & 理论
1. CLIP (Contrastive Language-Image Pre-training)
基本思想
CLIP 由 OpenAI 提出,其核心思想是通过大规模的图像和文本对进行对比学习,学习在特征空间中对齐文本和图像。模型能够理解图像内容和文本描述之间的关联,从而实现零样本(Zero-shot)分类能力。
模型结构
- 图像编码器:通常使用 Vision Transformer (ViT) 或者其他卷积神经网络 (CNN) 如 ResNet 作为 backbone,负责提取图像的视觉特征。
- 文本编码器:通常采用 BERT 或类似基于 Transformer 的模型,负责将文本转换为语义向量。
- 训练机制:特征提取后,图像和文本特征通过归一化处理,然后通过点积计算余弦相似度。使用对比损失(Info-NCE loss)进行训练,最大化匹配对的相似度,最小化不匹配对的相似度。
应用场景
CLIP 广泛应用于图像检索、零样本分类、图像生成引导等领域。由于其强大的泛化能力,它成为了许多后续多模态模型的基座。
2. BLIP (Bootstrapping Language-Image Pre-training)
基本思想
BLIP 旨在通过自举方法(Bootstrap)来提升模型在视觉 - 语言理解和生成任务上的性能。BLIP 可以通过生成合成图像描述并使用过滤器去除噪声描述,有效地利用了网络上收集的噪声图像 - 文本对,从而降低了对高质量标注数据的依赖。
模型结构
BLIP 模型采用了多模态混合编码器 - 解码器(Multimodal Mixture of Encoder-Decoder, MED)架构。该架构可以作为单模态编码器、图像引导的文本编码器或图像引导的文本解码器来操作。MED 模型通过三种视觉 - 语言目标进行联合预训练:
- 图像 - 文本对比学习(image-text contrastive learning)
- 图像 - 文本匹配(image-text matching)
- 图像条件语言建模(image-conditioned language modeling)
- 图像编码器:使用视觉 Transformer(如 ViT)作为图像编码器,将输入图像分割成多个小块(patches),并将其编码为一系列嵌入向量,同时使用额外的 [CLS] 标记来表示整个图像的特征。
- 文本编码器:采用 BERT 或类似的基于 Transformer 的模型作为文本编码器,在文本输入的开始处附加 [CLS] 标记,以汇总句子的表示。
- 图像引导的文本编码器:在文本编码器的基础上,通过在自注意力(self-attention)层和前馈网络(feed-forward network)之间插入额外的交叉注意力(cross-attention)层来注入视觉信息。
- 图像引导的文本解码器:替换了图像引导的文本编码器中的双向自注意力层为因果自注意力层,并使用 [Decode] 标记来指示序列的开始和结束。
3. BLIP2
基本思想
BLIP2 提出了一种通用且高效的预训练策略,利用现成的预训练图像编码器和大型语言模型来引导视觉 - 语言预训练。BLIP2 通过一个轻量级的查询转换器(Q-Former),在两个阶段进行预训练,以弥合模态间的差距。第一阶段从冻结的图像编码器中引导视觉 - 语言表示学习,第二阶段从冻结的 LLM 中引导视觉到语言的生成学习。
模型结构
- Q-Former(Querying Transformer):作为 BLIP2 中可训练的模块,Q-Former 是一个轻量级的 Transformer,它使用一组可学习的查询向量从冻结的图像编码器中提取视觉特征。Q-Former 由两个 Transformer 子模块组成,它们共享自注意力层:一个图像 Transformer 用于与冻结的图像编码器交互,提取视觉特征;一个文本 Transformer 可以作为文本编码器和解码器,处理文本输入。


