
清楚了!一文看懂多模态大语言模型CLIP架构和 SigLIP架构
图片
近年来,人工智能领域在多模态学习方面取得了显著进展,相关模型能够理解和关联图像与文本等不同数据类型的信息。OpenAI 的 CLIP(对比语言 - 图像预训练)和 Google 的 SigLIP(语言 - 图像预训练的 Sigmoid 损失函数)是其中最具影响力的成果。
这些模型革新了机器对视觉和文本信息的解读与关联方式,使得从图像分类到零样本学习等各类应用成为可能。本文将对 CLIP 和 SigLIP 的架构、训练范式及关键差异进行剖析。
1. CLIP:对比语言 - 图像预训练(2021 年)
CLIP 由 OpenAI 于 2021 年推出,是一种开创性模型,能够将图像和文本表示对齐到共享嵌入空间中。与依赖特定任务标记数据集的传统监督学习方法不同,CLIP 采用对比学习目标,在无需针对特定任务进行微调的情况下,能够广泛泛化到多种任务中。
1.1 CLIP 架构
CLIP 由以下两个核心组件构成:
- 图像编码器:通常采用 Vision Transformer(ViT)或类似 ResNet 的卷积神经网络,将图像转化为固定长度的向量嵌入。
- 文本编码器:基于 Transformer 的语言模型(与 BERT 或 GPT 架构相似),把文本描述编码为与图像嵌入维度相同的向量嵌入。
这两个编码器协同工作,将图像和文本映射到共享潜在空间。在此空间中,语义相关的图像 - 文本对(如狗的图像与 “一张狗的照片” 这一标题)彼此靠近,而语义不相关的对则相距较远。
1.2 CLIP 训练目标
CLIP 在约 4 亿个从网络爬取的图像 - 文本对上进行训练。训练过程采用受 InfoNCE(噪声对比估计)启发的对比损失函数。对于包含 N 个图像 - 文本对的批次:
- 计算所有 N×N 种图像和文本嵌入组合的余弦相似度。
- 目标是最大化 N 个正确(匹配)对的相似度,同时最小化 N²−N 个错误(不匹配)对的相似度。
- 通过优化相似度分数上的对称交叉熵损失实现。
同样计算文本到图像方向的损失,总损失为两者的平均值。
其中, 是控制分布软硬度的温度参数。这种对称形式确保图像和文本两种模态的表示能有效对齐。
1.3 CLIP 的零样本学习能力
CLIP 的优势在于其零样本学习能力。预训练后,它能够通过构建提示(例如 “一张 [类别] 的照片”)并比较图像嵌入与可能类别的文本嵌入,执行图像分类等任务,而无需特定任务的训练数据。
零样本 CLIP 在应对分布偏移时,比标准 ImageNet 模型具有更强的鲁棒性。左图展示了理想鲁棒模型(虚线)在 ImageNet 分布和其他自然图像分布上的表现一致。零样本 CLIP 模型将这种 “鲁棒性差距” 缩小了高达 75%。图中显示了对 logits 转换值的线性拟合以及基于自助法估计的 95% 置信区间。右图则可视化了香蕉类别的分布偏移情况,该类别在 7 个自然分布偏移数据集中有 5 个共享。最佳零样本 CLIP 模型(ViT-L/14@336px)的表现与在 ImageNet 验证集上表现相同的 ResNet-101 模型进行了对比。(来源:OpenAI)
2. SigLIP:语言-图像预训练的 Sigmoid 损失(2023 年)
SigLIP 由 Google Research 于 2023 年推出,它在 CLIP 奠定的基础上进行了关键创新。CLIP 采用基于 softmax 的对比损失函数,而 SigLIP 则引入了成对的 sigmoid 损失函数,简化了训练流程,并提高了效率和性能,尤其在大规模数据集上表现突出。
2.1 SigLIP 架构
SigLIP 保留了与 CLIP 类似的双编码器设置:
- 图像编码器:可以是 Vision Transformer 或其他视觉骨干网络。
- 文本编码器:基于 Transformer 的语言模型。
这种架构对编码器的具体选择具有高度灵活性,能够方便地进行扩展或适应不同领域。
2.2 SigLIP 训练目标
SigLIP 的关键创新在于用基于 sigmoid 的损失函数替换了 CLIP 的对比损失函数。对于包含 N 个图像 - 文本对的批次:
这种成对的公式消除了 CLIP 的 softmax 对比损失所需的全批次归一化需求。这样做简化了计算,并增强了稳定性,特别是在扩展到更大的批次大小时。
SigLIP 的优势
- 效率提升:sigmoid 损失函数使每对的损失计算相互独立,相比 CLIP 的全批次归一化操作,提供了更好的并行性并减少了内存开销。
- 鲁棒性增强:SigLIP 在处理噪声数据或不平衡数据时表现出色,这可能是因为其损失函数对异常值的敏感度较低。
- 可扩展性提高:简化的损失函数使得 SigLIP 更容易扩展到更大的数据集,如 Google 内部的数十亿图像 - 文本对语料库。这使得 SigLIP 能够充分利用大规模数据进行训练,从而在各种任务中实现更高的性能。
CLIP 为多模态学习奠定了基础,而 SigLIP 通过优化损失函数来提升效率和可扩展性,使其更适用于工业规模的应用。
CLIP 与 SigLIP 的关键区别
- 损失函数:
CLIP:采用基于 softmax 的对比损失函数,需计算批次中所有对的相似度并进行全局归一化,导致计算复杂度较高,特别是在大批量数据时内存和计算开销大。
SigLIP:引入基于 sigmoid 的成对损失函数,将每对图像 - 文本对独立视为正例或负例,无需全局归一化,降低了计算复杂度和内存需求。
- 训练效率:
CLIP:由于 softmax 的全批次归一化操作,计算开销较大,训练效率在大规模数据集和大批次训练时受限。
SigLIP:sigmoid 损失函数使每对的损失计算相互独立,便于并行计算,提升了训练效率,适合大规模数据集和大批次训练。
- 扩展性:
CLIP:在处理非常大的数据集时,由于计算复杂度问题,扩展性受限。
SigLIP:简化的损失函数设计使其更容易扩展到更大的数据集,适用于工业规模应用场景。
- 鲁棒性:
CLIP:在处理噪声数据或不平衡数据时,可能会受到一定影响。
SigLIP:对噪声和不平衡数据的鲁棒性更强,能够更有效地处理这类数据。
总之,SigLIP 在继承 CLIP 的多模态学习框架基础上,通过改进损失函数,提高了训练效率和模型的扩展性及鲁棒性,更适合大规模工业应用场景。
3. 多模态大语言模型(MLLMs)
CLIP 和 SigLIP 的出现极大地推动了多模态大语言模型(MLLMs)的发展,这些模型将视觉和语言能力整合到一个统一的框架中。通过利用 CLIP 和 SigLIP 预训练的图像 - 文本对齐能力,这些模型能够执行视觉问答(VQA)、图像描述生成和多模态推理等任务。下面我们将探讨 CLIP 和 SigLIP 在 LLaVA 等知名 MLLMs 中的应用。
3.1 LLaVA:语言与视觉助手(2023 年)
LLaVA(Large Language and Vision Assistant)由加州大学伯克利分校和微软的研究人员开发,是建立在 CLIP 基础之上的一类重要 MLLM。LLaVA 将 CLIP 的视觉编码器(通常是 Vision Transformer)与大型语言模型(如 LLaMA 或 Vicuna)相结合,以处理图像和文本输入。
- 架构设计:LLaVA 的核心在于将 CLIP 的视觉编码器与强大的语言模型相融合。视觉编码器负责将图像转化为语义嵌入,语言模型则利用这些嵌入生成连贯的文本输出。这种结合使得 LLaVA 能够理解和回应图像和文本的复合输入。
LLaVA 的架构如下:
首先,图像处理部分使用 CLIP 预训练的图像编码器从输入图像中提取视觉嵌入。
接着,投影层(线性或基于 MLP 的投影层)将 CLIP 视觉嵌入映射到语言模型的输入空间,确保不同模态之间的兼容性。
文本整合阶段,将视觉嵌入与文本标记嵌入进行拼接或交错排列,使语言模型能够同时对两种输入进行推理。
最后,LLaVA 在视觉指令跟随数据集(如视觉问答或图像描述任务)上进行微调,以适应下游应用。
通过利用 CLIP 的零样本能力,LLaVA 能够在很少的微调情况下泛化到未见过的任务,使其在交互式聊天机器人等实际应用中高度灵活,能够解析图像。
3.2 其他知名的多模态大语言模型(MLLMs)
CLIP 和 SigLIP 已被整合到其他多个知名的 MLLMs 中,增强了这些模型的多模态能力:
BLIP-2(Bootstrap Language-Image Pretraining)
- 开发者:由 Salesforce Research 开发。
- 架构:BLIP-2 使用 CLIP 的视觉编码器提取图像特征,然后将这些特征输入到轻量级查询变换器(Q-Former)中,再由语言模型(如 OPT 或 Flan-T5)进行处理。
- 优势:这种模块化方法减少了计算开销,同时在视觉问答(VQA)和图像-文本检索等任务上保持了强大的性能。
Flamingo
- 开发者:由 DeepMind 推出。
- 架构:Flamingo 使用 CLIP 的视觉编码器处理图像序列,并将其与预训练的语言模型(如 Chinchilla)结合。Flamingo 的架构中包含一个 “Perceiver Resampler”,用于压缩视觉嵌入,从而能够高效地处理长视觉上下文和文本。
- 优势:这种设计使得 Flamingo 能够处理多个图像并进行长序列的视觉推理,适用于需要复杂视觉理解的任务。
Google 的多模态模型
- 应用:Google 在其多模态模型中也集成了 SigLIP,例如 Gemini 模型家族。
- 优势:SigLIP 的成对 sigmoid 损失函数提高了模型在大规模数据集上的扩展性和效率,使其在图像支持的对话和内容理解等任务中表现出色。
3.3 CLIP 和 SigLIP 在 MLLMs 中的优势
- 预训练对齐:CLIP 和 SigLIP 提供了预对齐的图像 - 文本表示,为下游任务提供了强大的起点,减少了对大量监督数据的需求。
- 灵活性:它们的编码器设计可以无缝集成到各种语言模型中,便于研究人员尝试不同架构。
- 扩展性:SigLIP 的高效损失函数使其在大规模多模态数据集上训练 MLLMs 时具有显著优势,而 CLIP 的零样本学习能力则增强了模型的适应性。
3.4 挑战
尽管 CLIP 和 SigLIP 具有诸多优势,但将它们集成到 MLLMs 中也面临一些挑战:
- CLIP 的固定嵌入空间:可能限制细粒度推理,需要额外的投影层或微调。
- SigLIP 的可扩展性权衡:在小规模设置中,SigLIP 对可扩展性的关注可能会牺牲 CLIP 的部分零样本泛化能力。
- 训练数据偏见:两者都继承了其从网络爬取的训练数据中的偏见,可能导致 MLLM 输出结果存在偏见,需要仔细评估和制定去偏策略。
本文转载自智驻未来,作者:小智
