跳到正文
AI 知识地图 0.18 · 2026-07-30
关于与纠错文字目录 / Search
理解原理

CLIP:用图文对比把两种模态对齐到同一空间

从双编码器、归一化相似度矩阵和对称交叉熵,到零样本分类、检索、组合关系与偏差边界。

核心命题 CLIP 用独立图像和文本编码器把匹配图文拉近、不匹配组合推远,学习可检索的开放词汇空间。它的扩展性来自大规模弱配对和批内负样本;但全局相似度主要证明“这张图与这段话在数据分布中常配对”,不自动证明对象关系、数量、否定、真实性或公平
读完你应该能:手算一张图文相似度矩阵;解释双向对比损失;完成零样本分类流程;诊断提示、组合关系和数据偏差。
  1. 收集并治理图文配对
  2. 双编码器产生归一化向量
  3. 构造批内相似度矩阵
  4. 双向交叉熵对齐空间
  5. 文本原型或 ANN 完成迁移
  6. 用最小对照与群体切片限定用途

1双编码器先各自理解,再在向量空间相遇架构

图像和文本原本是两类完全不同的输入:图像是像素矩阵,文本是 token 序列,二者不能直接比较。CLIP 用两个独立编码器把它们映射到同一个同维向量空间。对第 i 张图像 Iᵢ,先由图像编码器 f_img 得到特征,再做 L2 归一化:

vᵢ = f_img(Iᵢ) / ‖f_img(Iᵢ)‖

对第 j 段文本 Tⱼ,文本编码器 f_txt 执行同样的过程:

tⱼ = f_txt(Tⱼ) / ‖f_txt(Tⱼ)‖

其中 ‖·‖ 表示向量长度。除以自身长度后,vᵢ 和 tⱼ 都成为单位向量,因此点积 vᵢ·tⱼ 就等于它们的余弦相似度。分数越大,表示图像与文本在这个共享空间中的方向越接近,也就是模型认为它们的语义越匹配。

例如,一个 batch 中有两组配对数据:I₁ 是猫图,T₁ 是“a cat”;I₂ 是狗图,T₂ 是“a dog”。归一化向量两两比较后得到相似度矩阵 [[0.8, 0.2], [0.3, 0.7]]。第一行表示猫图分别与“a cat”和“a dog”的相似度,0.8 高于 0.2;第二行表示狗图与两段文本的相似度,0.7 高于 0.3。两个正确配对因此落在矩阵对角线上,并取得各自行或列中更高的分数。

双编码器结构的直接好处是图像和文本可以彼此独立、提前离线编码。实际检索时无需重新运行两种编码器的联合计算,只需比较已经得到的向量。它的边界也来自同一设计:图文在打分前没有逐 token 与图像区域之间的深度交互,最终判断依赖两个整体向量能否保留匹配所需的信息。

vᵢ=fimg(Iᵢ)/‖fimg(Iᵢ)‖, tⱼ=ftxt(Tⱼ)/‖ftxt(Tⱼ)‖

2一个 batch 自动形成 N×N 个图文组合相似度矩阵

一个 batch 中若包含 N 组真实图文对,就会同时产生 N×N 个候选组合。第 i 张图像的单位向量 vᵢ 与第 j 段文本的单位向量 tⱼ 两两做点积,再用温度 τ 缩放,得到送入 softmax 之前的匹配分数:

Sᵢⱼ = vᵢᵀtⱼ / τ

上标 ᵀ 表示转置,所以 vᵢᵀtⱼ 是两个单位向量的点积。S 是一个 N 行、N 列的矩阵:每一行固定一张图像并比较 N 段文本,每一列固定一段文本并比较 N 张图像。采集数据中第 i 张图与第 i 段文本属于同一真实配对,因此矩阵对角线 Sᵢᵢ 是正对;非对角线组合在标准 CLIP 目标中被当作负对。这样,只提供 N 组真配对,就能在 batch 内自然形成大量用于比较的候选,不必为每个样本另外逐一构造负样本。

以两组数据为例,I₁ 是猫图、T₁ 是猫文本,I₂ 是狗图、T₂ 是狗文本。原始相似度矩阵为 [[0.8, 0.2], [0.3, 0.7]]:0.8 和 0.7 位于对角线,分别是猫—猫与狗—狗的正对;0.2 和 0.3 位于非对角线,是猫—狗与狗—猫的负对。当 τ = 0.1 时,每个相似度都除以 0.1,得到 logits [[8, 2], [3, 7]]。缩放没有改变候选的高低顺序,却拉大了 softmax 所看到的数值差异,使概率分布更加尖锐;τ 越大或越小,都会相应改变这种尖锐程度。

增大 batch 会让每个图像或文本面对更多候选,因而提供更丰富的对比信号,但非对角线并不必然都是语义上的真正负例。两条内容相近、实际语义相同的样本如果没有被采集为同一配对,仍会被目标当作负对,这就是假负样本。候选数量随 batch 增长时,这类冲突也更可能增加,因此 N×N 的高效构造同时带来了更强的对比和更高的假负样本风险。

T₁ 猫T₂ 狗
I₁ 猫0.8 正对0.2 负对
I₂ 狗0.3 负对0.7 正对
Sᵢⱼ=vᵢᵀtⱼ/τ

3CLIP 同时做图找文和文找图逐步演算

同一个相似度矩阵可以支持两个方向的检索,但两个方向对应的竞争集合不同。图找文时,一张图像是查询,batch 内全部文本是候选,因此要沿矩阵的每一行做 softmax;文找图时,一段文本是查询,batch 内全部图像是候选,因此要沿每一列做 softmax。CLIP 同时优化这两个方向:

L = (CE_image→text + CE_text→image) / 2

CE_image→text 表示让每张图像在全部文本中选中配对文本的平均交叉熵,CE_text→image 表示让每段文本在全部图像中选中配对图像的平均交叉熵,最终损失 L 是两者的算术平均。交叉熵会对正确候选的预测概率取负对数,所以正确配对的概率越接近 1,对应损失越小;反之,模型若把较高概率给了错误候选,就会受到更大惩罚。

沿用 logits 矩阵 [[8, 2], [3, 7]],按行计算图到文概率。对 I₁ 而言,T₁ 的概率是 e⁸ / (e⁸ + e²) ≈ 0.9975;对 I₂ 而言,T₂ 的概率是 e⁷ / (e³ + e⁷) ≈ 0.9820。两个正确文本的概率都很接近 1,因此图到文损失较小。按列计算时,T₁ 要在 I₁、I₂ 中找回 I₁,T₂ 要在 I₁、I₂ 中找回 I₂,这一方向的损失则约束文本向量也能正确区分图像。双向平均避免训练只照顾一种查询方式;如果只优化单向目标,另一侧形成的检索结构可能较弱。

温度会影响两个方向中候选竞争的强度。温度越小,softmax 分布越尖锐,高分错误候选或与正对接近的困难负对会产生更大影响。这能强化对难区分候选的学习,但前提是配对信号足够可靠;若数据中存在较多错误配对,过于尖锐的分布也会迫使模型强化这些错误关系。

方向查询候选竞争
图→文一张图batch 内全部文本
文→图一段文字batch 内全部图像
L=(CEimage→text+CEtext→image)/2

4原创图:正配对沿对角线形成共享空间可视化

图 1 展示了图像—文本双编码器与 2×2 相似度矩阵之间的关系。图像先经过图像编码器得到图像向量,文本先经过文本编码器得到文本向量;两条处理路径彼此独立,直到这些向量在相似度矩阵中两两比较时才交汇。矩阵的行对应图像,列对应文本,每个单元格表示一组图文向量经一次温度缩放后的 logit。这里的矩阵记作 S,与第 2 节定义一致;图中的 8、2、3、7 已经是 vᵢᵀtⱼ 除以 τ 后的值,不需要也不应再除一次 τ。

训练数据中的真实图文配对位于矩阵对角线上。训练信号以这些对角线位置为目标,同时传回图像编码器和文本编码器,因而被调整的不只是某一侧的向量,而是两侧产生向量的方式。结果是正确配对的图像向量与文本向量在共享空间中逐渐靠近,使对角线上的匹配更突出。

这张图也揭示了双编码器结构的关键边界:图像与文本不会在各自编码过程中直接交换信息,二者只在最终的向量比较处相遇。因此,共享空间并不是额外生成的一份联合表示,而是两套编码器通过同一训练信号共同塑造出的可比较坐标系。

猫图 / 狗图“猫” / “狗”图像编码器归一化 v₁,v₂文本编码器归一化 t₁,t₂相似度矩阵 S/τ8237拉高对角线,压低非对角线
图 1 双编码器只在相似度矩阵处交汇;训练信号同时更新两侧,使真配对在共享空间靠近。

5零样本分类把类别写成文本原型迁移

零样本分类不需要为“猫”“狗”等目标类别再训练一个新的分类头,而是把每个类别转写成文本,让文本向量充当类别原型。例如,候选类别是猫和狗时,可以分别构造“a photo of a cat”和“a photo of a dog”。这些文本经过文本编码器并归一化后,就成为可与图像向量直接比较的候选表示;同一类别也可以使用多个模板,将相应向量平均为该类别的文本原型。

预测时,待测图像经过图像编码器得到归一化向量,再与预先声明的全部类别原型计算相似度。系统可以直接选择相似度最大的类别,也可以在这些候选分数上做 softmax,得到相对于当前候选集合的概率分布。于是,分类过程被转换为一次图像到类别文本的检索:图像最接近哪个文本原型,就预测为哪个类别。

这里的“零样本”是指没有针对这些类别训练新的分类头,并不表示模型能凭空发现所有可能标签。结果只在预先给定的闭集候选中成立;如果真实类别没有被放入候选集合,模型仍会从已有类别中选一个。类别名称的写法、使用的语言、提示模板、温度以及候选集合本身都会改变各类别的相对分数。为了避免测试结果受到临时挑选模板的影响,应先在验证集上选择模板,将其冻结,再用于最终测试。

6检索效率来自独立编码,精排能力也因此受限系统

双编码器把检索对象和查询彼此独立地编码成全局向量,因此大型图库中的图像向量可以提前计算并建立 ANN(近似最近邻)索引。收到一段查询文本后,系统只需把文本编码一次,再通过索引快速找出向量最接近的一小批图像,而不必把查询与图库中的每张图逐一做完整的精确扫描。这种“图库离线处理、查询在线编码一次”的分工,是 CLIP 在大规模检索中获得高吞吐的关键。

效率的代价是交互深度有限。CLIP 在比较阶段面对的是图像和文本各自压缩后的全局向量,打分时不会让文本 token 与具体图像区域进一步交互。对于依赖细致关系判断的复杂查询,整体向量可能不足以表达决定匹配与否的局部对应关系,因此容易出现召回结果大体相关、细节却不符合查询的情况。

Cross-encoder(交叉编码器)采取相反的取舍:它让文本 token 与图像区域在同一个模型中交互,可以进行更细的关系判断,但每个查询—候选组合都需要一次联合计算,难以像双编码器那样把图库表示直接预先索引。实际系统常把两者串联使用:先用 CLIP 从大图库中高召回一小批候选,再让跨模态交叉编码器对这批候选精排。这样,双编码器负责缩小搜索范围,交叉编码器把更昂贵的细粒度计算限制在少量候选上。CLIP 更适合召回与零样本匹配,交叉编码器则更适合小候选集合中的精细排序。

结构离线索引交互深度用途
双编码器 CLIP全局向量召回、零样本
Cross-encodertoken/区域交互小候选精排

7对象共现不等于关系、计数与否定理解组合边界

“狗追人”和“人追狗”包含相同的对象词与动作词,但主语、宾语的角色正好相反。如果模型的全局向量主要保留“狗、人、追逐”这一整体主题,而没有稳定编码谁对谁执行动作,两句话就可能映射到相近位置。网页图文配对常来自较粗略的标题,而全局对比目标只要求正确主题的分数高于 batch 内其他候选,并不必然迫使模型解析每个词的角色与顺序。

同一问题也会出现在数量、方位和否定上。“没有狗”“两只狗”“狗在桌下”都含有显眼的对象词“狗”,全局相似度可能被对象共现主导,而忽略“没有”“两只”或“桌下”带来的关键约束。因此,图文相似度较高只能说明整体表示接近,不能被解释成图像蕴含了整句文本,更不能证明描述中的每一个谓词都得到了图像支持。

评估这类能力时,应使用最小对照来隔离真正需要判断的因素。可以只交换主客体、只改变数量、只改变方位或只加入否定,同时让其他词语和图像统计尽量保持一致。然后检查模型能否在成对候选中持续把正确描述排在只改动一个关键关系的错误描述之前,并报告 pairwise accuracy。总体 Recall 可能被大量主题容易匹配的样本抬高,而成对准确率更直接地揭示模型是否真正理解了角色、计数、空间关系或否定。

8弱配对数据同时带来规模与噪声数据

网页中的 alt-text、标题和邻近文字可以把大量图像与自然语言联系起来,为模型提供规模大、词汇开放的监督信号。它们的价值在于不需要为每张图重新制作精确标注,就能覆盖丰富的表达;但这种图文关系只是弱配对,文字可能描述整张网页、广告或上下文,而不是图像本身。数据规模因此与监督噪声同时增长,模型学到的既可能是有用的视觉—语言对应,也可能是错配关系。

噪声不只表现为描述不准确。网页文字还可能包含刻板印象、身份误标和个人信息;图像或文本的近重复内容则可能跨入训练集与评测集,使评测结果受到数据泄漏影响。针对错配和弱描述,可以通过人工抽样了解实际噪声,并使用噪声鲁棒训练降低错误监督的影响。针对社会偏见,不能只看整体指标,而应按人群×职业×语言等切片检查差异。针对重复与污染,需要对图像和文本分别做近重复去重。针对隐私与许可,则应记录来源与授权状态,并保留可执行的删除链路。

数据过滤本身也有边界。过滤过弱会保留更多错配、有害内容和敏感信息,过滤过强却可能把少数语言和特定文化语境一并删除,使数据覆盖进一步失衡。因此,数据治理不能只追求“越干净越好”,而要同时评估保留下来的监督质量、不同群体与语言的覆盖、评测污染风险,以及内容的来源、许可和可删除性。

风险检查
错配/弱描述人工抽样、噪声鲁棒训练
社会偏见人群×职业×语言切片
重复与污染图像/文本近重复去重
隐私与许可来源、授权、删除链路

9CLIP 分数不是通用图像质量或安全裁判失效边界

CLIP 分数来自图像与文本的全局向量相似度,回答的是“这张图在共享表示中与这段提示有多接近”。根据前面介绍的机制,该值适合比较当前提示与图像表示的接近程度;它本身不输出关于解剖、事实、审美、版权或安全的独立判断。因此,分数高只能说明模型在这一匹配轴上更偏向该图,不能作为这些其他属性已经满足的证明。

使用时应先明确决策问题:若问题是候选图中哪张与提示更接近,可以把 CLIP 相似度作为排序信号;若问题是图像是否真实、是否安全或是否适合特定人群,就需要针对该属性单独设计指标和检查。这样限定用途来自分数本身的输入输出边界,不依赖把它解释成通用质量分。

生成评估应把提示对齐、视觉质量、多样性、关系与文字准确性、安全性以及人类偏好分开测量。每个维度需要与其含义相匹配的证据,并用独立模型和人工抽样校验。不同人群上的结果还应切片报告;尤其在影响人员、权利或安全的高影响场景中,不能只依赖一个嵌入分数作最终裁决。

11把因果链连起来综合

从原始数据到实际应用,CLIP 的机制可以连成一条可检查的因果链:

图文配对的收集与治理 → 双编码器生成归一化向量 → 在 batch 内构造图文相似度矩阵 → 用双向交叉熵对齐共享空间 → 通过文本原型或 ANN 完成任务迁移 → 用最小对照与群体切片限定用途。

链条的起点是图文配对数据。对这些配对进行治理后,图像和文本分别进入双编码器,输出归一化向量。归一化使两种模态的表示能够在同一尺度上比较;把 batch 内的图像向量与文本向量两两组合,就得到相似度矩阵。训练再通过双向交叉熵同时约束图找文和文找图,使真实配对在共享空间中获得更合适的相对位置。数据提供监督关系,编码器把输入转换为表示,相似度矩阵形成候选竞争,损失函数则把竞争结果反馈给两侧编码器,这几步共同产生可迁移的对齐空间。

得到对齐表示后,可以把类别写成文本原型来完成基于候选类别的迁移,也可以把向量组织进 ANN 索引以支持检索。应用效果仍需回到可验证的测试上:最小对照用于检查模型能否区分只改变一个关键因素的候选,群体切片用于观察不同群体上的表现差异。只有把这些验证结果与具体使用场景一起考虑,才能确定模型适合承担什么任务,以及在哪些边界内使用。

资料来源与改编说明
访问日期:2026-07-22