ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

多模态预训练模型(如 CLIP、BLIP)如何对齐图像和文本的表示空间?

多模态预训练模型(如 CLIP、BLIP)如何对齐图像和文本的表示空间? 多模态预训练模型如何对齐图像和文本表示空间一句话核心思路分别用图像编码器和文本编码器将两种模态映射到同一个共享的向量空间通过对比学习让匹配的图文对距离拉近、不匹配的推远从而实现跨模态对齐。一、为什么需要对齐图像和文本是两种完全不同的信号图像: 像素矩阵 → CNN/ViT → 视觉特征向量 文本: token序列 → Transformer → 语言特征向量 问题: 两个向量空间维度不同、语义不对应 一只猫的图片的图像向量 和 a cat 的文本向量 在各自空间中毫无关联 目标: 让它们在同一个空间中距离很近对齐前: 对齐后: 图像空间 文本空间 共享空间 ┌────────┐ ┌────────┐ ┌──────────────┐ │ 图→[3,1] │ cat→[8,5] │ 图→[2,3] │ │ 图→[7,2] │ dog→[2,9] │ cat→[2,1] │ ← 近! │ │ │ 图→[5,7] │ │ │ │ dog→[6,8] │ ← 近! └────────┘ └────────┘ └──────────────┘ 两个独立空间 两个独立空间 一个共享空间二、CLIP对比学习对齐CLIPOpenAI, 2021是对齐图像-文本空间的经典方法。架构图像编码器 文本编码器 (ViT / ResNet) (Transformer) │ │ 图像 ──→ 图像特征向量 文本特征向量 ←── 文本 │ │ └──── 投影到同一维度 ────┘ │ 共享向量空间 │ 对比学习损失训练核心图文对比损失给定一个 batch 的 N 个图文对构建 N×N 的相似度矩阵Batch: 4个图文对 文本1(猫) 文本2(狗) 文本3(车) 文本4(船) 图像1(猫图) 0.95 ←正例 0.20 0.05 0.10 图像2(狗图) 0.15 0.91 ←正例 0.08 0.12 图像3(车图) 0.03 0.10 0.88 ←正例 0.25 图像4(船图) 0.08 0.15 0.30 0.90 ←正例 目标: 对角线(正例)分数高非对角线(负例)分数低 损失: InfoNCE 对每一行/列做 softmax 交叉熵正例在对角线InfoNCE 损失以图像→文本方向为例L - (1/N) Σ log( exp(sim(I_i, T_i)/τ) / Σ_j exp(sim(I_i, T_j)/τ) ) ↑ 正例 ↑ 所有文本(含负例) sim 余弦相似度 τ 温度参数(控制分布锐度)双向对比同时做 图像→文本 和 文本→图像 两个方向的对比共 2N 个分类任务。关键设计设计说明独立编码器图像和文本各自编码不交互保持效率线性投影两个编码器输出投影到同一维度 d如 512温度参数 τ可学习参数控制 softmax 锐度大批量训练batch32768更多负例 → 更好的对比学习4亿图文对从互联网爬取的海量 (图像, 描述) 对CLIP 的零样本能力对齐后CLIP 可以做零样本分类输入: 一张猫的图片 候选文本: a photo of a cat / a photo of a dog / a photo of a car → 图像编码 → 与所有候选文本编码算相似度 → 选相似度最高的 → a photo of a cat ✅三、BLIP生成式 对比式联合对齐BLIPSalesforce, 2022认为仅靠对比学习不够引入了生成理解能力。三大组件BLIP 的三个模块: ① 图像-文本对比 (ITC) ← 和 CLIP 类似的对比学习 ② 图像-文本匹配 (ITM) ← 二分类: 这图文对是否匹配? ③ 图像条件文本生成 (LM) ← 给图生成文本描述┌── ITC Head (对比学习) ──→ 对齐表示空间 图像编码器 ────────┤── ITM Head (二分类匹配) ──→ 细粒度对齐 (ViT) │ └── LM Head (文本生成) ────→ 生成理解 ↑ 文本编码器/多模态编码器 (共享部分参数)三个损失函数① ITCImage-Text Contrastive—— 与 CLIP 相同目标: 拉近匹配图文对推远不匹配的 方法: InfoNCE 对比损失 作用: 学习全局的图文表示对齐② ITMImage-Text Matching—— 细粒度对齐输入: (图像, 文本) 对 输出: 匹配 / 不匹配 (二分类) 与 ITC 的区别: ITC: 只看全局向量相似度 (粗粒度) ITM: 图像和文本做 cross-attention 交互 (细粒度) → 能捕捉 图中有3只猫 vs 图中有1只猫 的差异 ITC: sim(图向量, 文向量) → 标量 ITM: 图向量 文向量 → Cross-Attention → 分类 → 匹配/不匹配③ LMLanguage Modeling—— 生成式理解输入: 图像 文本前缀 输出: 续写文本 目标: 给定图像生成描述性文本 作用: 让模型真正理解图像内容而不只是做相似度匹配 图像 a photo of → a cat sitting on a sofa联合训练总损失 L_ITC L_ITM L_LM 三个任务共享图像编码器文本部分: ITC 用文本编码器 (单模态) ITM 用多模态编码器 (文本图像交叉注意力) LM 用解码器 (自回归生成)数据清洗Captioner FilterBLIP 的另一创新是自动清洗噪声数据步骤1: Captioner (基于LM) 用模型给网络图片生成高质量描述 → 网络爬取的描述很多是噪声生成的更准确 步骤2: Filter (基于ITCITM) 用模型过滤掉图文不匹配的数据 → 保留高质量图文对 结果: 从噪声数据中自举出干净训练集 → 性能提升四、CLIP vs BLIP 对比对比项CLIPBLIP对齐方式仅对比学习 (ITC)对比 匹配 生成 (ITCITMLM)图文交互无独立编码后算相似度有ITM 中做 cross-attention能做文本生成❌✅LM 头能做图文检索✅✅能做图像描述❌✅能做 VQA❌✅数据清洗无✅Captioner Filter训练数据4亿对WIT1.29亿对清洗后核心优势零样本分类强多任务能力强五、对齐的本质从独立空间到共享空间对齐的三个层次层次1: 全局对齐 (CLIP / BLIP-ITC) 图像全局向量 ↔ 文本全局向量 距离对齐 → 能做: 检索、零样本分类 → 不能: 细粒度理解(如图中红色的猫在哪) 层次2: 细粒度对齐 (BLIP-ITM) 图像区域特征 ↔ 文本 token 特征 做 cross-attention → 能做: 图文匹配、VQA → 更精确的跨模态理解 层次3: 生成式对齐 (BLIP-LM) 图像特征作为条件 → 生成文本 → 能做: 图像描述、多模态对话 → 最深层的理解为什么对比学习能实现对齐直觉: 同一个概念(猫)在不同模态中的表示 本应有某种语义不变性 对比学习做的事: ① 正例(猫图, cat)拉近 → 两种模态的猫概念对齐 ② 负例(猫图, dog)推远 → 不同概念被区分 ③ 大量数据 大batch → 语义空间逐步收敛到共享表示 结果: 猫的图像向量和 a cat的文本向量 在共享空间中自然靠近 → 跨模态检索成为可能六、后续发展脉络CLIP (2021) └─ 纯对比学习双编码器零样本分类 │ BLIP (2022) └─ 对比 匹配 生成多任务统一 │ BLIP-2 (2023) └─ 冻结现成视觉模型LLM只训练 Q-Former 桥接 │ → 大幅降低训练成本利用更强LLM │ LLaVA (2023) └─ ViT 投影层 LLM指令微调对齐 │ → 对话式多模态 │ SigLIP (2023) └─ 把对比损失的 softmax 换成 sigmoid → 不再依赖大batch小batch也能训总结多模态对齐的核心方法: CLIP: 对比学习 图像编码器 文本编码器 → 共享空间 → InfoNCE 损失 正例拉近负例推远 → 全局语义对齐 BLIP: 对比 匹配 生成 ITC: 全局对齐 (同CLIP) ITM: 细粒度对齐 (cross-attention交互) LM: 生成式理解 (给图生成文本) 数据自举清洗 (Captioner Filter) 一句话: 把图像和文本分别编码到同一个向量空间 用对比学习让匹配的图文对靠近、不匹配的远离 BLIP 进一步用匹配和生成任务实现更细粒度的对齐。
返回列表