多模态预训练模型(如 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 进一步用匹配和生成任务实现更细粒度的对齐。

相关新闻

彻底搞懂VC++运行库:从DLL报错到一劳永逸的解决方案

彻底搞懂VC++运行库:从DLL报错到一劳永逸的解决方案

1. 项目概述:从“vcredist_x64.exe”说起,为什么你的电脑总缺DLL? 如果你在Windows上安装或运行某个软件、游戏时,突然弹出一个错误窗口,提示“找不到MSVCP140.dll”、“VCRUNTIME140_1.dll丢失”或者“无法启动此程序…

2026/10/15 1:39:13 阅读更多 →
从Jeff Dean离职看分布式系统与AI工程思维对开发者的启示

从Jeff Dean离职看分布式系统与AI工程思维对开发者的启示

最近在技术圈里,一个重磅消息引发了广泛讨论:谷歌传奇工程师 Jeff Dean 宣布离职,并创立了一家名为 Discovery Loop 的新公司。对于许多开发者而言,Jeff Dean 的名字几乎等同于谷歌技术体系的基石,他的离开标志着一个时…

2026/10/15 1:39:39 阅读更多 →
DeepXDE完全指南:如何用深度学习颠覆传统科学计算

DeepXDE完全指南:如何用深度学习颠覆传统科学计算

DeepXDE完全指南:如何用深度学习颠覆传统科学计算 【免费下载链接】deepxde A library for scientific machine learning and physics-informed learning 项目地址: https://gitcode.com/gh_mirrors/de/deepxde 还在为复杂的偏微分方程求解而烦恼吗&#xff…

2026/10/9 9:46:31 阅读更多 →

最新新闻

OpenFeign 实战指南:从 RestTemplate 到声明式微服务调用

OpenFeign 实战指南:从 RestTemplate 到声明式微服务调用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:40:05 阅读更多 →
树形DP入门:从状态定义到子树合并的完整指南

树形DP入门:从状态定义到子树合并的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:40:05 阅读更多 →
软件著作权申请材料模板与源程序格式避坑指南

软件著作权申请材料模板与源程序格式避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:40:05 阅读更多 →
FPGA数字时钟设计:SOPC软核方案快速开发与调试实战

FPGA数字时钟设计:SOPC软核方案快速开发与调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:40:05 阅读更多 →
2S电池均衡系统设计:STM32F746ZG与MP2642GR-Z的软硬件实战

2S电池均衡系统设计:STM32F746ZG与MP2642GR-Z的软硬件实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:40:05 阅读更多 →
SpringBoot多模块项目实战:解耦、复用与云原生落地

SpringBoot多模块项目实战:解耦、复用与云原生落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 1:39:05 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →