Clip模型与Vit模型的区别?
目录
一、ViT 模型是啥?
二、CLIP 模型是啥?
三、两者之间的关系可以这样理解
四、什么是语义坐标系?
4.1 语义坐标系中的坐标轴
4.4 放到 CLIP 里的理解:图和文在同一个语义坐标系
4.3 坐标系应用
五、总结
一、ViT 模型是啥?
ViT = Vision Transformer,就是把原来做 NLP 的 Transformer 搬来做视觉。
传统 CNN(ResNet 那类)是:
-
用卷积核在图像上滑来滑去看局部,再慢慢堆深。
ViT 的思路是:
-
把图片切成一块一块的小方块(例如 16×16 patch)。
-
每个 patch 展平成一个向量,相当于一句话里的一个“词”。
-
给这些 patch 加位置信息(知道谁在左上、谁在右下)。
-
丢进 Transformer Encoder:靠 自注意力 Self-Attention 让每个 patch 和其他所有 patch 交流信息。
-
最后取一个 [CLS] 向量或者平均向量,作为这张图的“特征”。
简化公式:
-
输入:图片 → patch 序列
-
输出:一个 图像特征向量
f_img ∈ R^D
这个向量可以拿去干各种事:分类、检索、分割的 backbone 等。
所以:
ViT 只是一个“图像编码器结构”,管你下游干啥,它只负责把图 → 向量。
二、CLIP 模型是啥?
CLIP = Contrastive Language-Image Pre-training(对比式图文预训练)。
它解决的问题是:
“给我一句话,给我一堆图,我要知道哪张图跟这句话最匹配。”
CLIP 里有两个主要部件:
-
图像编码器(可以是 ResNet,也可以是 ViT)
-
把图片变成一个向量
v_img
-
-
文本编码器(一般就是 Transformer)
-
把一句话变成一个向量
v_txt
-
训练方式(对比学习):
-
模型看到一批 配对的图-文:
-
(图1, 文1)、(图2, 文2)、…、(图N, 文N)
-
-
把所有图变成向量
v_img[i],所有文变成向量v_txt[j] -
计算图文之间的相似度(常用 cos / 内积):
sim[i, j] = v_img[i] · v_txt[j] -
目标:
-
正确配对的 (i=i) 相似度最大
-
其他错配对 (i≠j) 相似度低
-
-
换句话说:
-
“图1”的向量要尽量靠近“文1”的向量,
-
远离“文2、文3…”的向量。
-
经过大规模训练(几亿对图文),最终得到:
-
对任意图片 → 向量
v_img -
对任意文本 → 向量
v_txt -
同一种语义的图和文,会自动聚在一起。
于是你就可以:
-
文本搜图:
-
文 → 向量;图库图 → 向量
-
找相似度最大的图片向量
-
-
以图搜图:
-
查询图 → 向量,在图库图向量里找最近邻
-
-
零样本分类:
-
几个中文标签做成几句文本 → 向量
-
看图片向量最像哪句文本的向量
-
所以:
CLIP 是一整套“图文对齐 + 检索”的模型和训练框架,
它内部会用一个图像编码器(很多时候就是 ViT),再加一个文本编码器。
三、两者之间的关系可以这样理解
换一个通俗说法:
-
ViT:一个“只学会看图”的 Transformer 结构,能把图压成向量。
-
CLIP:把“看图的大脑(ViT/ResNet)” + “看字的大脑(文本 Transformer)”。拿海量图文配对一起训练,让“图向量”和“文向量”在同一个语义坐标系里对齐。
在 Chinese-CLIP 里:
-
图片那边往往是
ViT-B/16一类的 ViT -
文本那边是中文 RoBERTa 类模型
-
用 CLIP 的训练方法,把 中文句子 ↔ 图片 对齐起来。
四、什么是语义坐标系?
4.1 语义坐标系中的坐标轴
这里有个重要点:
语义坐标系里的每一维(每个轴)
通常并不是人类可直接解释的东西。
它不是简单的:
-
第 1 维:可爱程度
-
第 2 维:是否户外
-
第 3 维:颜色深浅
而是模型在训练过程中“自动”学到的一堆特征组合。
但你可以概念性地这样理解:
-
某个方向可能大致表示“动物 vs 非动物”;
-
另一个方向可能表示“户外 vs 室内”;
-
再一个方向表示“宏观场景 vs 局部物体”;
-
……
只不过这都混在一起,变成了 512 维、1024 维这样高维的向量空间。
所以:
语义坐标系 = 一个高维空间,
每个轴是模型自己学出来的“特征方向”,
轴本身未必可解释,但“距离关系是有意义的”。
4.4 放到 CLIP 里的理解:图和文在同一个语义坐标系

4.3 坐标系应用
比如在 “相似图片搜图 / 文本搜图”应用中:
-
你不需要显式去管“每一维代表什么”;
-
你只需要相信:
-
模型已经帮你把所有图 & 文放进一个语义坐标系;
-
在这个坐标系里,用内积 / 余弦做最近邻检索就表示“语义上很像”。
-
所以工程上可以完全把它当成黑盒子:
-
图片/文本 → embedding 向量
-
向量进 Faiss → 建索引
-
查询向量 → 最近邻 → 检索结果
理解“语义坐标系”的意义主要是:
-
你知道**“相似”是在一个学出来的高维空间里定义的,而不是简单的像素差**;
-
以后你想对比不同模型,你就是在对比:谁构造的“语义坐标系”更合理、结构更好。
五、总结
ViT 是一种“看图的神经网络结构”
CLIP 是一种“让图片向量和文本向量对齐的训练方法 + 成品模型”,而 CLIP 里常常把 ViT 当作看图片那一侧的大脑。语义坐标系是图像编码器与文本编码器 编码出来的向量所在的坐标空间,这个坐标空间设计是否合理,决定了图片或者文本在后续训练过程表达是否到位。
